Entwickler-Ecke
Windows API - Wieder Problem mit shellexecute!
Hendi48 - So 03.06.07 20:09
Titel: Wieder Problem mit shellexecute!
Hi, also ich hab wieder ein Problem mit ShellExecute:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure TMainForm.FlyFF1Click(Sender: TObject); var Reg: TRegistry; regPath: String; Dateiname : string; GGPath: String; PathString: String; Quelldatei, Zieldatei : string; OwnPath: String; begin Reg:=TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey('SOFTWARE\GalaNetEu\Flyff',false) then regPath:=reg.ReadString('App Path'); except showmessage('Fehler: Unable to read from Flyff''s registry'); end;
GGPath:=regPath+'\GameGuard\Splash.jpg'; if not DeleteFile(GGPath) then ShowMessage('Datei "'+Dateiname+'" konnte nicht gelöscht werden!'); sleep(100); OwnPath:=ExtractFilePath(ParamStr(0))+'Tools\Splash.JPG'; if not CopyFile(PChar(OwnPath), PChar(GGPath), true) then ShowMessage('Datei "'+Quelldatei+'" konnte nicht kopiert werden!');
PathString:=regPath+'\Flyff.exe';
if FileExists(PathString) then ShellExecute(Handle, 'open', PChar(PathString), nil, nil, SW_SHOWNORMAL) else showmessage('Flyff existiert nicht?! WTF?!'); Reg.Free; end; |
Also wenn man im Menü was auswählt, wird diese procedure gemacht hier, es startet auch soweit und so nur es kopiert dann ini dateien und ordner in den ordner wo das programm mit dem menü ist. Wie kann ich das verhindern?
Delete - Mo 04.06.07 00:39
Hendi48 hat folgendes geschrieben: |
Hi, also ich hab wieder ein Problem mit ShellExecute:
...
es kopiert dann ini dateien und ordner in den ordner wo das programm mit dem menü ist. Wie kann ich das verhindern? |
Was hat das nicht erwünschte Kopieren von Dateien mit ShellExecute zu tun?
Lösung deines Problems: Kopiere die Dateien einfach nicht. Oder allgemeiner ausgedrückt: "Der Computer tut, was du ihm sagts, nicht was du willst." Und du sagst ihm anscheinend, dass er die Dateien kopieren soll.
Hendi48 - Mo 04.06.07 13:27
nein, sag ich nicht. Ich sag das er EINE datei von dem ordner meines programm in den ordner des Spiels kopieren soll und dann das Spiel mit Shellexecute ausführen soll
Xion - So 24.06.07 10:40
Hi,
das hier ist in jedem fall problematisch: ExtractFilePath(ParamStr(0))
wenn du mit deinem programm irgendwo anders in der dateistruktur rummachst, verändert sich dieser parameter(soviel ich weiß), also entweder du tuts dann von anfang an in eine variable, oder du benutzt Application.ExeName
Xion
mkinzler - So 24.06.07 10:43
@Xion: Application.ExeName setzt auf ParamStr(0) auf.
Xion - So 24.06.07 10:47
echt? mist :oops:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!