Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Problem mit starten von Dateien. (https://www.delphipraxis.net/65716-problem-mit-starten-von-dateien.html)

fwsp 20. Mär 2006 14:48


Problem mit starten von Dateien.
 
hallo

ich habe nen launcher gebastelt aus dem programme aufgerufen werden, aus einem der aufgerufenen programme kann ne hilfe (.chm) gestartet werden. wenn ich den launcher umgehe und direkt das programm starte, kann ich wunderbar die hilfe aufrufen, mit dem launcher klappt das nicht.
kann mir jemand helfen?

hier ein bisschen code:

der aufruf des programms:
Delphi-Quellcode:
  1:
  begin
    ShellExecuteAndWait(0, 'open', PChar(Programm), nil, nil, sw_shownormal,
      True);
  end;
der aufruf der hilfe:
Delphi-Quellcode:
  begin
    ShellExecute(0, 'open', PChar('Help\musiksuite.chm'),
      Nil, Nil, sw_shownormal);
  end;
ps. hab schon versucht mit createprocess zu arbeiten, aber das ist ja auch nur für dateien gedacht.

Klaus01 20. Mär 2006 15:01

Re: Problem mit starten von Dateien.
 
Delphi-Quellcode:
ShellExecute(0, 'open', PChar('.\Help\musiksuite.chm'),
      Nil, Nil, sw_shownormal);
versuche es einmal mit .\ vor dem Help.

Grüße
Klaus

fwsp 20. Mär 2006 15:06

Re: Problem mit starten von Dateien.
 
funktioniert nicht.
welche bewandnis hat es mit '.\'?

Klaus01 20. Mär 2006 15:11

Re: Problem mit starten von Dateien.
 
das sagt dem Shellexecute das es die Datei in einem Unterverzeichnis des aktuellen Verzeichnisses suchen soll.

Bist Du Dir sicher das ShellExecute auch die Datei findet?
Bekommst Du eine Fehlermeldung?

Wenn die Hilfe in dem Unterverzeichnis Help von Deiner Anwendung steht
könntest Du auch mit
Delphi-Quellcode:
extractFilePath(application.ExeName)
sicherstellen, dass im richtigen Verzeichnis gesucht wird.

Grüße
Klaus

himitsu 20. Mär 2006 15:11

Re: Problem mit starten von Dateien.
 
Wie ist das aktive Verzeichnis?

Bei relativen Pfaden muß man halt aufpassen, von wo man diese aufruft.

Und sind vielleicht Leerzeichen im Dateinamen drin?
Wenn ja, dann muß der Name in " eingeschlossen werden ;)

Delphi-Quellcode:
ShellExecute(0, 'open', PChar('"Help\musiksuite.chm"'), Nil, Nil, sw_shownormal);

fwsp 20. Mär 2006 15:15

Re: Problem mit starten von Dateien.
 
mit dem absoluten pfad (Application.ExeName) klappt es danke.

Hador 20. Mär 2006 15:19

Re: Problem mit starten von Dateien.
 
Nimm mal folgendes:
Delphi-Quellcode:
  begin
    ShellExecute(0, 'open', PChar(ExtractFilePath(ParamStr(0)) + 'Help\musiksuite.chm'),
      Nil, Nil, sw_shownormal);
  end;
Denn somit hast du den korrekten arbeitspfad. Da andere wird immer dann nicht funktionieren, wenn der aktuelle Arbeitspfad von Win nicht dem Anwendungsverzeichnis entspricht.

EDIT: Hm ich glaub der rote Kasten hat Urlaub

himitsu 20. Mär 2006 18:29

Re: Problem mit starten von Dateien.
 
Zitat:

Zitat von Hador
Nimm mal folgendes:
Delphi-Quellcode:
  begin
    ShellExecute(0, 'open', PChar(ExtractFilePath(ParamStr(0)) + 'Help\musiksuite.chm'),
      Nil, Nil, sw_shownormal);
  end;

Spaßig wird es mit diesem Code aber, wenn mal eine Laufwerksangabe ("L:\Pfad...") im Dateinamen (wo jetzt also 'Help\musiksuite.chm' steht) vorhanden ist, oder der relative Pfad auf das Rootverzeichnis ("\Pfad...") des aktiellen Laufwerks zeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 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