Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi shellexecute... ich kriegs einfach nicht hin! (https://www.delphipraxis.net/112923-shellexecute-ich-kriegs-einfach-nicht-hin.html)

Spiderpig_GER_15 29. Apr 2008 17:24


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

Die Muhkuh 29. Apr 2008 17:33

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...

Spiderpig_GER_15 29. Apr 2008 19:44

Re: shellexecute... ich kriegs einfach nicht hin!
 
sorry, aber das verstehe ich nicht

Die Muhkuh 29. Apr 2008 19:45

Re: shellexecute... ich kriegs einfach nicht hin!
 
Delphi-Quellcode:
uses Windows, ..., ShellApi;

lbccaleb 29. Apr 2008 19:56

Re: shellexecute... ich kriegs einfach nicht hin!
 
Zitat:

Zitat von Spiderpig_GER_15
Zudem sollte der Dateipfad möglichst irgendwie gefunden werden, damit das game auf jedem Pc funktioniert. Also extractFilePath oder so.
MfG
Spiderpig



wenn du deine eigene ".exe" meinst, dann kannst du das mit


Delphi-Quellcode:
var
  thepath: string;
begin;
  thepath := extractfilepath(paramstr(0));
end;
ermitteln!!

Spiderpig_GER_15 30. Apr 2008 23:18

Re: shellexecute... ich kriegs einfach nicht hin!
 
Danke!

Bin ein bisschen neu... brauch ein bisschen länger xD

Spiderpig_GER_15 30. Apr 2008 23:25

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

Die Muhkuh 30. Apr 2008 23:28

Re: shellexecute... ich kriegs einfach nicht hin!
 
Welches Programm startest Du und wie?

Spiderpig_GER_15 7. Mai 2008 15:03

Re: shellexecute... ich kriegs einfach nicht hin!
 
ich starte ein selbstgemachtes MoorhuhnArtiges Spiel, mit Sounds.

Zumindest will ich das

MfG Spiderpig

Fussball-Robby 7. Mai 2008 15:16

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:

TeronG 7. Mai 2008 15:18

Re: shellexecute... ich kriegs einfach nicht hin!
 
Und wie startest du das? (Codeschnipsel)

Spiderpig_GER_15 7. Mai 2008 15:29

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:
procedure TForm1.Item3Click(Sender: TObject);
begin
pfad:=('xxxx\xxxx\xxxxx\data\Moorhuhn.exe');

ShellExecute(Handle, nil, PChar(pfad), nil, nil, SW_SHOW);;
end;
und dann kommt die MCI meldung

MfG

Spiderpig

Fussball-Robby 7. Mai 2008 15:31

Re: shellexecute... ich kriegs einfach nicht hin!
 
Probier mal, eine andere Anwendung zu starten. Wenn der Fehler dann nicht mehr kommt, siehe Beitrag #10.

Spiderpig_GER_15 7. Mai 2008 17:17

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

littleDave 7. Mai 2008 17:34

Re: shellexecute... ich kriegs einfach nicht hin!
 
Probiers mal so

Delphi-Quellcode:
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;
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.

Spiderpig_GER_15 7. Mai 2008 17:39

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

Fussball-Robby 7. Mai 2008 18:16

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:
var
  Pfad: String;
begin
  Pfad := 'SoundDatei.wma';//So hast du es wahrscheinlich
  Pfad := ExtractFilePath(ParamStr(0)) + 'SoundDatei.wma';//So soll es sein
end;
Wenn du es so wie das erste hast, solltest du es dringend ändern, da die Datei sonst unter Umständen nicht gefunden wird.

Mfg

DeddyH 7. Mai 2008 18:24

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