Entwickler-Ecke
Windows API - Externe .Exe öffnen
der organist - Mo 20.10.08 17:10
Titel: Externe .Exe öffnen
Hi Leutz,
ich habe nun das Forum durchforstet, so dass die Suchfunktion schon bald heiß laufen müsste (man findet Themen, die sagen dann aber andere wichtige Sachen, wie variable Pfade sind böse. Da solle man besser mit
ExtractFilePath(ParamStr(0)) arbeiten).
Jedenfalls:
Mein Programm soll eine Textdatei auslesen und wenn der Text
'run' ist, soll ein anderes programm gestartet werden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Timer1Timer(Sender: TObject); var TFile : TextFile; status : String; begin AssignFile (TFile,path+'control.txt'); Reset (TFile); ReadLn (TFile, status); CloseFile (TFile); if status = 'run' then begin ShellExecute(Handle,'open',PChar(path+'Taustakuvakello.exe'),nil,nil,SW_MINIMIZE); end; end; |
Der Pfad wird folgendermaßen erstellt:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormCreate(Sender: TObject); begin path := ExtractFilePath (ParamStr(0)); path := copy(path,1, Length(path)-17); end; |
Ich hab den Pfad mehrmals überprüft, den String mehrmals neu geschrieben, aber es passiert nichts.
Boldar - Mo 20.10.08 17:14
Wenn es 17 Zeichen weniger sind, muss es length(path)-18 heissen, da strings bei 0 beginnen...
jaenicke - Mo 20.10.08 17:19
Boldar hat folgendes geschrieben : |
| Wenn es 17 Zeichen weniger sind, muss es length(path)-18 heissen, da strings bei 0 beginnen... |
Tun sie nicht, DeinString[1] ist das erste Zeichen...
jakobwenzel - Mo 20.10.08 17:22
Aber wer sagt, dass der Verzeichnisname immer 17 Zeichen hat?
-->Mit Pos den passenden Backslash finden und da abschneiden
(Vllt gehts auch, einfach ..\ anzuhängen.)
der organist - Mo 20.10.08 17:25
Der Pfad stimmt aber so, denn (a) ich habe in mehrmals per Label anzeigen lassen (war richtig) und (b) befindet sich im gleichen Ordner wie die Exe das gelesene Dokument. Wenn ich den Pfad auch nur irgendwie ändere (an der Länge), dann gibt es einen Error, dass er die Datei (bei AssignFile) nicht gefunden hat. Dementsprechend muss das so richtig sein.
Naja, mit den 17 Zeichen, das handelt sich ja um einen speziellen Ordner, in dem sich das öffnende Programm befindet.
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!