AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Exe-Datei aus anderem Ordner öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

Exe-Datei aus anderem Ordner öffnen

Ein Thema von LAWn-M0W3R · begonnen am 24. Sep 2007 · letzter Beitrag vom 24. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 06:32
Und wenn du manuell in den Ordner wechselst?
Markus Kinzler
  Mit Zitat antworten Zitat
LAWn-M0W3R

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

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 16:35
gute Idee und so einfach. gestern Nacht war ich viel zu verpennt um darauf zu kommen! Leider weiß ich auch nicht, wie ich das Verzeichnis wechsle, ohne wieder eine Bat-Datei auszuspucken, was ja sehr unschön ist! Wenn du mir das auch noch sagen könntest wäre ich glücklich...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 16:37
du hast bei Shellexecute einen Parameter der das Arbeitsverzeichnis angibt (der Parameter der bei dir noch nil ist)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 16:38
Zitat von Delphi-Hilfe:
Die Prozedur ChDir wechselt das aktuelle Verzeichnis.
Das wäre auch noch eine Möglichkeit.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 16:42
stimmt. auch eine Möglichkeit.

Was mich gerade wieder traurig stimmt ist, dass jemand eine Funktion verwendet von der er wohl gar nicht wirklich die Parameterbedeutung kennt obwohl diese in der Hilfe zu finden ist. Es kann doch nicht so schwer sein sich mal die Hilfe anzuschauen
Mir wäre als Endnutzer mulmig wenn ich ein Programm nutzen soll wo der Programmierer dinge drin verwendet hat ohne die genaue Funktion zu kennen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 16:47
Zitat von SirThornberry:
Mir wäre als Endnutzer mulmig wenn ich ein Programm nutzen soll wo der Programmierer dinge drin verwendet hat ohne die genaue Funktion zu kennen.
Ich möchte lieber nicht wissen, bei wievielen Programmen das schon bei mir der Fall ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
LAWn-M0W3R

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

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 16:51
Danke erst einmal. Ich werd' gleich mal weiter rumprobieren. @Thornberry: die Funktion kenne ich, aber irgendwie mache ich doch noch etwas falsch:
ShellExecute(Application.Handle,PAnsiChar('f:'),PAnsiChar('cd '+GetRegData),PAnsiChar('FLASHPOINTRESISTANCE.EXE'),PAnsiChar('-nosplash -nomap' +isChecked),SW_Normal);
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 16:56
Code:
HINSTANCE ShellExecute(

    HWND hwnd,   // handle to parent window
    LPCTSTR lpOperation,   // pointer to string that specifies operation to perform
    LPCTSTR lpFile,   // pointer to filename or folder name string
    LPCTSTR lpParameters,   // pointer to string that specifies executable-file parameters
    LPCTSTR lpDirectory,   // pointer to string that specifies default directory
    INT nShowCmd    // whether file is shown when opened
   );
lpOperation -> 'open'
lpFile -> 'Pfad\DeineExe.exe'
lpParameters -> '-p blabb'
lpDirectory ->'Pfad zum Verzeichnis von DeineExe.exe'

So in der Art (meine Beispieldaten sind natürlich zu ersetzen).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
LAWn-M0W3R

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

Re: Exe-Datei aus anderem Ordner öffnen

  Alt 24. Sep 2007, 17:17
So, ihr Helden!
Vielen Dank für eure Hilfe. Für alle, die solche Deppen sind wie ich: So sieht das ganze jetzt aus und läuft perfekt:
Delphi-Quellcode:
uses ...ShellAPI;
-----------------
ChDir(GetRegData);
  if ShellExecute(Application.Handle,PAnsiChar('open'),PAnsiChar('FLASHPOINTRESISTANCE.EXE'),PAnsiChar('-nosplash -nomap' +isChecked),nil,SW_ShowNormal)<32
    then Mprot.Lines.Add('Error while starting game!')
    else Mprot.Lines.Add('starting game...');
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz