![]() |
Shellexecute
Hi@all
ich wollte mit Shellexecute ein Programm aufrufen.
Delphi-Quellcode:
leider wird aber nur der Projektordner geöffnet, oder muss das Programm(ADRESS.exe) auch in Projektordner liegen?
ShellExecute(Application.MainForm.Handle, nil, PChar(ExtractFilePath('ADRESS.exe')),nil,nil, SW_SHOWNORMAl);
|
Re: Shellexecute
ExtractFilePath gibt auch nur den Pfad zurück, da musst du den kompletten dateinamen reinschreiben ;)
|
Re: Shellexecute
Hallo SilvermoonGirl,
also kein wunder das er den ordner öffnet, du extrahierst ja auch den Pfad der exe datei - lass das mit dem extractfilepath einfach weg, dann wird es funktionieren. Mfg -arrgh wie schnell doch hier immer alle sind... |
Re: Shellexecute
und wenn sich der Pfad des Programms ändern sollte?
|
Re: Shellexecute
Den Pfad inklusive Dateinamen deines Programmes bekommst du mit ParamStr(0).
|
Re: Shellexecute
@WtF
da tut sich dann aber gar nix, nich mal eine Fehlermeldung |
Re: Shellexecute
Hallo,
ich glaube du meinst sowas:
Delphi-Quellcode:
ShellExecute(Application.MainForm.Handle, nil, PChar(ExtractFilePath(Application.ExeName) + '\ADRESS.exe'),nil,nil, SW_SHOWNORMAl);
|
Re: Shellexecute
probier mal
Delphi-Quellcode:
als parameter
'./Address.exe'
|
Re: Shellexecute
Hi und schönen guten morgen....
versuchs mal damit.....
Delphi-Quellcode:
funzt bei mir wunderbar.... :thuimb:
ShellExecute(Application.Handle,'open',pchar(ExtractFilePath(ParamStr(0))+'ADRESS.exe'),nil,nil,SW_SHOW);
therian [edit=Luckie]Delphi-Tags korrigiert. Mfg, Luckie[/edit] |
Re: Shellexecute
sorry garby leider tut sich auch bei deinem Vorschlag nix
|
Re: Shellexecute
was gibt Shelleexecute zurück:
Zitat:
|
Re: Shellexecute
Bei Garby musst du den '\' auch weglassen.
|
Re: Shellexecute
funktioniert leider auch nicht bei mir;-(((((((
@ therian |
Re: Shellexecute
sorry :shock:
hab grad nen fehler ausgemerzt.... therian :lol: |
Re: Shellexecute
Also, das geht zu 100%:
Delphi-Quellcode:
ShellExecute(Form1.Handle, 'open', pchar(ExtractFilePath(ParamStr(0)) + 'ADRESS.exe'), nil, nil, SW_SHOW);
|
Re: Shellexecute
@matze den "/" hatte ich schon rausgelassen :wink:
|
Re: Shellexecute
Hallo SilverMoonGirl,
die Funktion ShellExecute zeigt Dir keine Fehlermeldung an (wirft keine Exception) sondern hat spezielle Rückgabewert, um ein Problem zu signalisieren. Falls den Fehlerfall trotzdem durch eine delphi-typische Exception abbilden möchtest, könntest Du folgendes Probieren:
Delphi-Quellcode:
Die Fehlermeldung sollte Dir nun anzeigen, wo das Problem liegt.
if ShellExecute(...) <= 32 then
RaiseLastOSError; |
Re: Shellexecute
Zitat:
Aber ich hab noch mehr verändert ;) z.B.: Form1.handle |
Re: Shellexecute
lol
Alle posten wie wild wenn mal eine Programmiererin eine Frage stellt - echt cool. Hast du es jetzt eigentlich hinbekommen @SilverMoonGirl Mfg |
Re: Shellexecute
@all vielen Dank erstmal für eure Hilfe, funktioniert aber trotzdem nicht, oder muss ich da noch was anderes beachten(shellapi hab ich schon eingebunden)
|
Re: Shellexecute
Nö, mehr muss du nicht machen.
|
Re: Shellexecute
Also für den code mal aus:
Code:
Dieser sollte ohne zu zucken , wenn das windows verzeichnis denn so lautet, den explorer aufrufen - wenn das nicht geht, weiß ich auch nich weiter
shellexecute(Application.MainForm.Handle, nil, 'C:\winnt\explorer.exe',nil,nil, SW_SHOWNORMAl);
Mfg |
Re: Shellexecute
Zitat:
|
Re: Shellexecute
Hast du deine exe auch wirklich im Programmordner? keine Unterordner & Co?
|
Re: Shellexecute
toll@matze
aber warum gehts dann trotzdem nicht *grübel*verzweifel* |
Re: Shellexecute
den explorer öffnet sich@WtF *nu gar nix mehr versteh*
|
Re: Shellexecute
[OT]4 Posts um 14:39 :lol:[/OT]
|
Re: Shellexecute
Zitat:
|
Re: Shellexecute
Übrigrens muss man keinen Dateipfad angeben, wenn die auszuführende exe in dem Ordner liegt in dem das Programm ist :wink:
Na Jetzt brauchst du nur noch den Dateipfad anzugeben und dann hast du es lol :thuimb: |
Re: Shellexecute
Zitat:
|
Re: Shellexecute
@luckie gar nichts, jedenfalls sagt er mir nix(s*ofort den tip von choose ausführ*)
@WtF ich weiß nicht ob ich mich falsh ausgedrückt habe, also die ADRESS.exe liegt nicht im Projektordner |
Re: Shellexecute
Hey Luckie ich glaube du wiederholst dich! :mrgreen:
@SilvermoonGirl - vieleicht liegst an der adress.exe? edit: dann schreib doch einfach mal den gesamten pfad von der adress.exe dahin wo das mit dem explorer steht! |
Re: Shellexecute
das kann doch nicht so schwer sein! ich benutz shellexecute in fast jedem programm und es geht immer
shellexecute(Handle,nil,'hier den kompletten pfad zu exe!! (C:\windows\beispiel.exe)',nil,nil,SW_NORMAL); |
Re: Shellexecute
Zitat:
Delphi-Quellcode:
ShowMessage(IntToStr(Shellexecute(...)));
|
Re: Shellexecute
Mit paramstr(0) gelangt man in den Projektordner, das ist natürlich dann fehl am Platz.
|
Re: Shellexecute
hab ich gerade gemacht, das funktioniert!!!!
das nützt mir aber nix, weil sich der Pfad der exe ändern kann |
Re: Shellexecute
|
Re: Shellexecute
@luckie da kommt eine 42
|
Re: Shellexecute
Na dann sieht das ganze doch ganz anders aus, oder hattest du erwähnt das sich der pfad ändert?
Naja, also muss du, bevor du sie ausführst auf der ganzen festplatte suchen oder wie? Registriere doch eine globale variable wo der Pfadname drinsteht. In wie fern ändert sich denn der pfad? mfg |
Re: Shellexecute
OK, hiermit schmneiße ich alles hin. Das kann doch nicht so schwer sein uns eine Zahl mitzuteilen. :evil:
Liegt die Adress.exe immer im Verzeichnis von deinem Programm, in dem du Shellexecute aufrufst? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz