Einzelnen Beitrag anzeigen

LAWn-M0W3R

Registriert seit: 31. Jul 2006
Ort: Potsdam / Berlin
38 Beiträge
 
#1

Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 04:05
"Hallo Welt",
lange blieb ich nun von Delphi fern und beschäftigte mich mit anderen Dingen, wie Arbeiten und PHP proggen. Nun wollte ich im Internet mal wieder ein Spiel spielen, musste dafür 1000nde Updates und Mods laden, die man alle einzeln über Parameter beim Exe-Start des Hauptspiels aufrufen kann. Mein Rechner ist aber eine lahme Klapperkiste und ich kann nicht alle Mods in einen Ordner packen, sonst fängt er an zu spinnen. Man kann in den Parametern einen oder mehrere Ordner angeben in dem sich Mods befinden. Also hab' ich mir ein Programm geschrieben, das das Spielverzeichnis scannt, die Mods findet und auflistet, so dass ich sie dann bequem per Häkchen-Setzen mit dem Spiel laden kann.
Nun das Problem: Mein Programm funktioniert perfekt, aber das Spiel scheint irgendwie Notiz davon zu nehmen, dass es von einem Programm gestartet wird und schmiert ab! Ich hab es mit ShellExecute, mit WinExec probiert und sogar temporäre Bat-Dateien ausspucken lassen, um das Programm zu starten: Es geht nicht. Nur, wenn die Bat-Datei im Spielordner selbst liegt und auch dann muss man sie ja aus dem Ordner heraus öffnen, denn das Spiel schmiert auch ab, wenn ich es mit einer Bat-Datei (kann auch im selben verzeichnis sein) mit einer strikten Pfadangabe öffne. Es funktioniert also nur die relative Pfadangabe! Das Programm kann ich aber leider nicht in meinem Spieleverzeichnis ablegen, weil die Game-Server jenes scannen und viele Admins vermuten dann, ich wäre ein Cheater und schmeißen mich raus.
Hier nochmal zusammenfassend...
Bat-Datei, mit der es funktioniert:
Zitat:
start FLASHPOINTRESISTANCE.EXE -nosplash -nomap -mod=@BWCTI -mod=@CoC -mod=@Sebnam
Bat-Datei, mit der es nicht funktioniert:
Zitat:
start F:\WinProgramme\Gamez\OperationFlashpoint\FLASHPOI NTRESISTANCE.EXE -nosplash -nomap -mod=@BWCTI -mod=@CoC -mod=@Sebnam
Delphi-Code, mit dem es auch nicht klappt:
ShellExecute(Application.Handle,PAnsiChar('open'),PAnsiChar(GetRegData+'\FLASHPOINTRESISTANCE.EXE'),PAnsiChar('-nosplash -nomap' +isChecked),nil,SW_Normal); (mit GetRegData hole ich mir die genaue Pfadangabe; IsChecked packt die angewählten Mods dazu)

Spiel, das auf diese Weise leider nicht funktioniert, aber sehr empfehlenswert ist:
"Operation Flashpoint Resistance 1.96" (kam noch 2001 raus)

Weiß jemand vielleicht, wie man eine Datei (scheinbar) aus ihrem Ordner heraus startet oder habt ihr vielleicht noch eine andere Idee?! Ich kann mir das ja auch nicht erklären, warum die Hersteller solche Sicherheitsfetischisten sind, aber ich würde mich auf jeden Fall freuen, wenn ihr mir helft und ich noch etwas von meinem Prog und dem Spiel hab'!
Grüße
Max
  Mit Zitat antworten Zitat