![]() |
shellexecute... ich kriegs einfach nicht hin!
Hi, ich hoffe mir kann jemand helfen!
Ich bin schon seit stunden dabei mit einem programm ein anderes programm zu öffen, aber es will nicht klappen. Von 'Hand' gestartet funktionieren beide einwandfrei, nur eben anders nicht. Zudem sollte der Dateipfad möglichst irgendwie gefunden werden, damit das game auf jedem Pc funktioniert. Also extractFilePath oder so. bei shellexecute hab ich das problem das delphi mit: [Fehler] Menuprogrammpas.pas(36): Undefinierter Bezeichner: 'ShellExecute' mir einen Fehler ausspuckt. Was hab ich delphi getan das es mir das antut? Ich habe noch ein Problem, ich habe es schonmal irgendwie anders hinbekommen, aber mit Pfad, da kam die Meldung 'kein MCI gerät geöffnet' obwohl beim normalstart alles funktioniert! Hoffe jemand hat einen Tip, MfG Spiderpig |
Re: shellexecute... ich kriegs einfach nicht hin!
Sorry, aber nicht mal 5 Minuten Suche hätten Dir gesagt, dass Du die Unit ShellApi einbinden musst...
|
Re: shellexecute... ich kriegs einfach nicht hin!
sorry, aber das verstehe ich nicht
|
Re: shellexecute... ich kriegs einfach nicht hin!
Delphi-Quellcode:
uses Windows, ..., ShellApi;
|
Re: shellexecute... ich kriegs einfach nicht hin!
Zitat:
wenn du deine eigene ".exe" meinst, dann kannst du das mit
Delphi-Quellcode:
ermitteln!!
var
thepath: string; begin; thepath := extractfilepath(paramstr(0)); end; |
Re: shellexecute... ich kriegs einfach nicht hin!
Danke!
Bin ein bisschen neu... brauch ein bisschen länger xD |
Re: shellexecute... ich kriegs einfach nicht hin!
Tschuldigung für doppelpost,
aber jetzt kommt die fehlermeldung, kein MCI gerät geöffnet, wenn ich mein externes programm öffnen will. Starte ich es von Hand funktioniert es einwandfrei. Warum kommt dann diese Meldung? MfG Spiderpig |
Re: shellexecute... ich kriegs einfach nicht hin!
Welches Programm startest Du und wie?
|
Re: shellexecute... ich kriegs einfach nicht hin!
ich starte ein selbstgemachtes MoorhuhnArtiges Spiel, mit Sounds.
Zumindest will ich das MfG Spiderpig |
Re: shellexecute... ich kriegs einfach nicht hin!
Die Fehlermeldung mit dem MCI-Gerät kommt wahrscheinlich von einem TMediaplayer in deinem anderen Programm. Das hat aber mit ShellExecute nichts mehr zu tun -> Neuer Thread :wink:
|
Re: shellexecute... ich kriegs einfach nicht hin!
Und wie startest du das? (Codeschnipsel)
|
Re: shellexecute... ich kriegs einfach nicht hin!
Ist schon ein bisschen her, aber ich glaube gesagt bekommen zu haben das es so geht:
Delphi-Quellcode:
und dann kommt die MCI meldung
procedure TForm1.Item3Click(Sender: TObject);
begin pfad:=('xxxx\xxxx\xxxxx\data\Moorhuhn.exe'); ShellExecute(Handle, nil, PChar(pfad), nil, nil, SW_SHOW);; end; MfG Spiderpig |
Re: shellexecute... ich kriegs einfach nicht hin!
Probier mal, eine andere Anwendung zu starten. Wenn der Fehler dann nicht mehr kommt, siehe Beitrag #10.
|
Re: shellexecute... ich kriegs einfach nicht hin!
also andere dinge (zumindest Datein kann ich Problemlos öffnen)
Nur eben mein eigenes Programm nicht :( Wenn ich es von Hand starte funktioniert es aber immernoch, ich stehe vor einem Rätsel MfG Spiderpig |
Re: shellexecute... ich kriegs einfach nicht hin!
Probiers mal so
Delphi-Quellcode:
Den zweiten Parameter hab ich mal auf 'open' gesetzt und den Ordner der Anwendung hab ich im 5. Parameter (der genau dafür vorgesehen ist) übergeben.
procedure TForm1.Button1Click(Sender: TObject);
var AppPath, AppExe : string; begin AppPath := 'C:\xxxxxxxx\data'; AppExe := AppPath + '\Moorhuhn.exe'; ShellExecute(Handle, 'open', PChar(AppExe), nil, PChar(AppPath), SW_SHOW); end; |
Re: shellexecute... ich kriegs einfach nicht hin!
Danke kleinerDave,
funktioniert einwandfrei, auch wenn ich den Fehler nicht versteh, aber was solls, es funktioniert ja :-D THX :dp: :dp: MfG Spiderpig |
Re: shellexecute... ich kriegs einfach nicht hin!
Ich könnte mir fast vorstellen, dass du beim Laden einer Sounddatei in deinem anderen Programm kein ExtractFilePath verwendet hast. Ich meine das so:
Delphi-Quellcode:
Wenn du es so wie das erste hast, solltest du es dringend ändern, da die Datei sonst unter Umständen nicht gefunden wird.
var
Pfad: String; begin Pfad := 'SoundDatei.wma';//So hast du es wahrscheinlich Pfad := ExtractFilePath(ParamStr(0)) + 'SoundDatei.wma';//So soll es sein end; Mfg |
Re: shellexecute... ich kriegs einfach nicht hin!
Jaja, der relative Pfad, die Geißel des Programmierers ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 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