AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ShellExecute

Ein Thema von Kratos · begonnen am 8. Jun 2020 · letzter Beitrag vom 26. Mär 2021
Antwort Antwort
Kratos

Registriert seit: 15. Okt 2019
52 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: ShellExecute

  Alt 9. Jun 2020, 07:56
Danke euch!
Ich werde mir die Komponente mal anschauen

VG Kratos
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
243 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: ShellExecute

  Alt 26. Mär 2021, 15:27
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#3

AW: ShellExecute

  Alt 26. Mär 2021, 15:41
Du musst das aufzurufende Programm und die Parameter trennen.
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
243 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: ShellExecute

  Alt 26. Mär 2021, 15:54
Gefällt ihm auch nicht. Jetzt kommt Fehlercode 42.... Woran erinnert micht das?

creehawk
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: ShellExecute

  Alt 26. Mär 2021, 15:59
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
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#6

AW: ShellExecute

  Alt 26. Mär 2021, 16:00
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?
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
243 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: ShellExecute

  Alt 26. Mär 2021, 16:09
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

Geändert von creehawk (26. Mär 2021 um 16:21 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#8

AW: ShellExecute

  Alt 26. Mär 2021, 16:37
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.

Geändert von Delphi.Narium (26. Mär 2021 um 16:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#9

AW: ShellExecute

  Alt 26. Mär 2021, 17:28
Du musst das aufzurufende Programm und die Parameter trennen.
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.
Den zweiten Satz gelesen?


Kein Arbeitsverzeichnis angegeben und auch bei modinfo.json kein Pfad.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:03 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