Autor Beitrag
TornadoakaKasin
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 17.02.09 15:13 
Jo Hey..
Über SuFu hab ich erstmal nichts gefunden deswegen frag ich lieber nach
Also..

Ich möchte ein Programm starten aber OHNE einen Pfad anzugeben sprich das Programm
soll sich die Dateien aus den Ordner suchen in dem er sich befindet (Soll nur ein Beispiel sein)
Sprich..
Geht das mit ShellExecute weil bisher musst ich ein Pfad dafür angeben
und dies war nicht grad mein Freund!

Das würde mir sehr viel Arbeit abnehmen :D


MfG Tornado aka Kasin ft. Kenru


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 17.02.2009 um 15:17
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 17.02.09 15:16 
Ich bin mir nicht sicher, aber eventuell hilft dir ExtractFileDir(ParamStr(0)) weiter. Damit bekommst du den Ordner heraus, in dem dein Programm liegt.

_________________
We are, we were and will not be.
TornadoakaKasin Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 17.02.09 15:20 
Und wo soll ich den genau einfügen??

ShellExecute(Application.Handle, 'open', PChar('Dasist ja der Pfad..'),
Nil, Nil, SW_NORMAL);

Muss ich den mit dem Pfad ersetzen?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 17.02.09 15:24 
Shellexecute erwartet nunmal einen vollständigen Pfad. Wenn du den nicht direkt hast, musst du (bzw. dein Programm) ihn zusammenbasteln aus den Informationen, die du so hast.

Wenn du z.B. ein anderes Programm ausführen willst, von dem du den Dateinamen kennst und die Tatsache, dass es sich im selben Verzeichnis befindet wie dein Programm, dann bekommt man den vollständigen Pfad über

ausblenden Delphi-Quelltext
1:
2:
ExtractFileDir(ParamStr(0)) + 'Anderes_Programm.exe'; 
// ich weiß nicht auswendig, ob da noch ein '\' rein muss oder nicht - ausprobieren!

_________________
We are, we were and will not be.
TornadoakaKasin Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 17.02.09 15:30 
Naja

Zitat:
[Fehler] Unit2.pas(41): Anweisung erforderlich, aber Ausdruck vom Typ 'String' gefunden
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 17.02.09 15:37 
Die Grundlagen sind dir aber schon klar, oder? Mit der Zeile, die ich gepostet habe bekommst du den vollständigen Dateinamen. So alleine darf der in einem Programm natürlich nicht stehen. Das sagt dann auch die Fehlermeldung: Das ist einfach ein String, aber es wird eine Anweisung erwartet.

Was soll er denn mit dem Pfad machen?

_________________
We are, we were and will not be.
TornadoakaKasin Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 17.02.09 15:46 
Er soll eine .EXE starten..
Naja bin noch soziemlich neu in Delphi..
Danke schonmal
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 17.02.09 15:56 
user profile iconTornadoakaKasin hat folgendes geschrieben Zum zitierten Posting springen:
Er soll eine .EXE starten..l

Das tust du mit ShellExecute.

_________________
PROGRAMMER: A device for converting coffee into software.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 17.02.09 19:05 
Mal ein wenig ausführlicher:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var sPfad: string;
begin
  sPfad := ExtractFilePath(ParamStr(0)) + 'Anwendung.exe';
  if ShellExecute(Handle,'open',PChar(sPfad),nil,nil,SW_SHOWNORMAL) < 33 then
    MessageBox(Handle,'Fehler beim Starten des Programms','Oha',MB_OK or MB_ICONERROR);
end;