Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   ShellExecute (https://www.delphipraxis.net/204573-shellexecute.html)

Kratos 9. Jun 2020 07:56

AW: ShellExecute
 
Danke euch!
Ich werde mir die Komponente mal anschauen :)

VG Kratos

creehawk 26. Mär 2021 15:27

AW: ShellExecute
 
Ich wollte jetzt nicht einen neuen Threat für Shell Execute aufmachen , daher:

Die folgende Codezeile

Code:
   ShellExecute(Handle,'open', PChar('C:\Users\....\Projekte\PKM\XML\json2xml.exe modinfo.json'), nil, nil, SW_normal);
ruft das Programm json2xml.exe auf das die Datei info.json in eine XML umwandelt. Sollte man denken. Fehlercode 2 wird geliefert, ergo "Datei nicht gefunden".

WENN ich das zu Fuß mache - Windows+R - oder cmd aufrufe im ensprechenden Verzeichns und dann eben "json2xml.exe modinfo.json" starte eght das anstandslos.

Was zum Henker mache ich falsch?

DeddyH 26. Mär 2021 15:41

AW: ShellExecute
 
Du musst das aufzurufende Programm und die Parameter trennen.
Delphi-Quellcode:
ShellExecute(Handle,'open', PChar('C:\Users\....\Projekte\PKM\XML\json2xml.exe'), 'modinfo.json', nil, SW_normal);
Wobei die relative Pfadangabe natürlich auch noch ein Problem darstellen kann.

creehawk 26. Mär 2021 15:54

AW: ShellExecute
 
Gefällt ihm auch nicht. Jetzt kommt Fehlercode 42.... Woran erinnert micht das?

creehawk

TiGü 26. Mär 2021 15:59

AW: ShellExecute
 
Zitat:

Zitat von creehawk (Beitrag 1486150)
Gefällt ihm auch nicht. Jetzt kommt Fehlercode 42.... Woran erinnert micht das?

Das du die Doku nicht gelesen hast?
Zitat:

If the function succeeds, it returns a value greater than 32.
https://docs.microsoft.com/en-us/win...-shellexecutea

Delphi.Narium 26. Mär 2021 16:00

AW: ShellExecute
 
Wo liegt denn die modinfo.json?

Eventuell gibst Du da auch mal den vollständigen Pfad an.

Oder: https://docs.microsoft.com/en-us/win...-shellexecutea

Das Arbeitsverzeichnis anstelle des dritten Nil?

creehawk 26. Mär 2021 16:09

AW: ShellExecute
 
Also das mit der 42 ist mir schon klar. Was aber nichts daran ändert das die Funktion kein Ergbnis zeitigt. Und ich verwende ShellExecute und nicht ShellExecuteA
Ersteres liefert mit 42, letzteres 2.

Und selbst wenn ich überall in Shellexeute den Pfad angebe passiert nichts.

Das Fenster geht allerdings sehr kurz auf - und wieder zu.
creehawk

Delphi.Narium 26. Mär 2021 16:37

AW: ShellExecute
 
Die Parameter für ShellExecute, ShellExecuteA und ShellExecuteW sind gleich, ebenfalls deren Rückgabewerte und deren Verhalten im Erfolgs- bzw. Fehlerfalle. Sind unterscheiden sich im Typ der Aufrufparameter zwischen PChar, PAnsiChar und PWideChar. Ein Blick in die Delphisourcen kann hier hilfreich sein.

Und Fenster kurz auf bedeutet nur, dass nicht auszuschließen ist, dass ShellExecute arbeitet, das ist aber nicht gleichbedeutend damit, dass auch json2xml.exe korrekt arbeiten kann bzw. muss.

Es wäre also zu prüfen, ob der Aufruf von ShellExecute scheitert oder dieser zwar erfolgreich ist, aber json2xml.exe bei der Erledigung seiner Aufgabe ein Problem hat.

creehawk 26. Mär 2021 17:12

AW: ShellExecute
 
Tja, danke für die vielen Antworten.

Bleibt letztlich wohl nur das die json2xml.exe ein Problem hat. Warum das dann allerdings zu Fuß geht...

creehawk

Delphi.Narium 26. Mär 2021 17:19

AW: ShellExecute
 
Zufuß geht, weil Aufruf zufuß korrekt ist.

Wenn's per ShellExecute nicht geht, liegt es daran, dass dann dort der Aufruf nicht korrekt ist, etwas anderes in der Systemumgebung erwartet wird, ...

Viele mögliche Ursachen.

Schonmal 'ner Batch für den Aufruf des Programmes geschrieben?
Dort am Ende ein Pause eingefügt, dann die Batch per ShellExecute aufgerufen und, vor dem Wegdrücken der Pausemeldung, mal die Ausgabe angesehen?

Hilft oft unermesslich viel weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz