Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Dateipfad

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.07.2012, 19:52 Uhr
Lajah250



Hallo,

Ich erstelle gerade einen kleinen Launcher. Im großen und ganzen funktioniert er, nur jetzt hat sich ein Problem herausgestellt. Und zwar nicht jeder hat die exe im gleichen Pfad liegen.
Meine Button und die zugehörige Action schauen wie folgt aus:


C++:
    case WM_CREATE:
    {
           CreateWindow(TEXT("button"), TEXT("Play"),    
                     WS_VISIBLE | WS_CHILD ,
                     400, 230, 95, 95,        
                     hwnd, (HMENU) 1, NULL, NULL);    

        CreateWindow(TEXT("button"), TEXT("Updater"),    
                     WS_VISIBLE | WS_CHILD ,
                     300, 300, 80, 25,        
                     hwnd, (HMENU) 2, NULL, NULL);    
        break;
    }

      case WM_COMMAND:
      {
       if (LOWORD(wParam) == 1) {
           ShellExecute(GetDesktopWindow(), "open", "C:\\Programme\\Ada Online\\game\\Ada Online.exe", 0, 0, SW_SHOWNORMAL);
           PostQuitMessage(0);
       }

       if (LOWORD(wParam) == 2) {
           ShellExecute(GetDesktopWindow(), "open","C:\\Programme\\Ada Online\\Updater.exe", 0, 0, SW_SHOWNORMAL);
       }

       break;
       }


Habe gedacht ich kann das mit folgendem Pfad Lösen:

C++:
C:\\...\\Ada Online\\Updater.exe"


Aber dann findet er die exe nicht, den er findet sie nur wenn ich den ganzen Pfad angebe. Gibt es eine andere möglichkeit wie ich das Problem lösen kann?

Vielen dank für eure Hilfe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.07.2012, 15:30 Uhr
TOSHMAX



Wie unterscheiden sich die Pfade genau?
Falls es sich immer um den Programme Ordner handelt (also "C:\Programme" oder "C:\Program Files"), der lässt sich z. B. mit SHGetFolderPath auslesen.
Es wird schwierig, wenn sich die Dateien in benutzerdefinierten Ordnern befinden, die nicht vom System verwaltet werden. Manche Programme schreiben hierfür ihren Installationspfad in die Registry, aber wie das bei diesem aussieht kann ich dir nicht sagen. Du kannst natürlich auch das ganze Dateisystem durchsuchen, aber das wiederrum kostet immens Zeit.

Am einfachsten wird es sein, wenn dein Programm aus dem Ordner "...\Ada Online\\" heraus gestartet wird. Dann kannst du mit relativen Pfaden arbeiten, also z. B. "game\\Ada Online.exe" und "Updater.exe". Das ganze muss allerdings einmal manuell im richtigen Ordner eingerichtet werden.

Dieser Post wurde am 24.07.2012 um 15:31 Uhr von TOSHMAX editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: