AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11
Thema durchsuchen
Ansicht
Themen-Optionen

"Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

Ein Thema von hoika · begonnen am 6. Mai 2022 · letzter Beitrag vom 6. Mai 2022
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

"Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 15:09
Hallo,
ich bekomme beim Aufruf einer Bat-Datei per ShellExecuteEx unter Win11 die obige Fehlermeldung.

Aber nur an einem einzigen Rechner.
Und klar ist das ein Kunden-Rechner ... ;(

Ich habe den Windows Defender im Verdacht, ein externer Virenscanner ist nicht drauf.
Ich finde aber keine Einstellung für geblockte Programme nicht.

Irgendwie hat sich auch die ganze Oberfläche bei Win11 nat. wieder geändert ...


Hat jemand einen Tipp für mich?


PS:
Das Programm selbst läuft ohne Probleme.
Auch der Start z.B. von gbak (Backup-Programm von Firebird) klappt.
Heiko

Geändert von hoika ( 6. Mai 2022 um 15:12 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 15:29
Google liefert keinen einzigen Treffer für "externer prozess nicht möglich".
Bist du dir sicher dass das die Fehlermeldung ist? Noch besser wäre der Rückgabewert von ShellExecuteEx() , dann müsste man nicht erst Textbausteine rückübersetzen und zu Fehlercodes zuordnen...

Falls du den Rückgabewert im Fehlerfall nicht mitloggst kann man vlt. im Windows Event Log etwas finden.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 15:37
Hallo,
stimmt, eines der Eventlogs müsste den haben.

Danke
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 16:35
Hallo,

toll, Fehlermeldung wurde von uns "erfunden"

Delphi-Quellcode:
if CreateProcess then
begin
end
else
begin
  MessageBox(.. "externer Prozess nicht möglich");
end;
Und nein, nat. wird GetLastError nicht ausgewertet und angezeigt oder geloggt ...
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 16:43
Normalerweise schreibt man dann aber „Es ist ein Fehler aufgetreten“, so dass man gleich weiß, dass man an der Stelle geschlampt hat <sarcasm off>.
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
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 16:44
Normalerweise schreibt man dann aber „Es ist ein Fehler aufgetreten“, so dass man gleich weiß, dass man an der Stelle geschlampt hat <sarcasm off>.
Ach komm. So genau will es doch keiner Wissen.

GetLastErrorCode schon ausgewertet?
Das ist bei sowas zwingend abzufragen.
Am besten im Programm in Logdatei schreiben lassen, falls man die Nummer dem Anwender nicht zumutet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 18:04
Ist das nun der Fehlercode von ShellExecute, oder kommt der Fehler in der Batch?
OK, sowas macht man natürlich nicht.
GetLastError, SysErrorMessage, RaiseLastOSError und dann Fehlercode mit Nummer, Text und einem Zusatztext, damit man weiß wo im Programm (wenn man nicht schon Fehlerdialog mit Debuginfos hat)

Fehlerbehandlung mit MessageBoxen ist eh total krank, da man dort nicht mit TryFinally arbeiten kann.



Statt .BAT ein .CMD probiert?

CreateProcess statt ShellExecute.

....



Ist das Programm unsigniert
oder hat "böse" Wörter im Namen (setup usw.),
bzw. wie heißt die Batch?


Echt mal, warum kommt niemand auf die Idee den ErrorCode mit auszugeben?
Oder schaut selber nach, welcher Fehler das ist und gibt eine suchbare Bezeichnung an?
Der engliche Text oder den Name der Konstante, so ala ERROR_NO_PROC_SLOTS.




"geht nicht" oder einfach ein TerminateProcess als Reaktion, reicht vollkommen aus, wenn man sowieso zu nix Lust hat. (Letzteres macht Eurekalog und Co. auch gern, wenn ihnen was nicht gefällt)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 6. Mai 2022 um 18:10 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 20:27
Hallo,
nat. ist die Exe signiert (extended val.). pah

GetLastError, und der ganze andere Kram, pah

OK, mein Vorgänger kannte das nicht wirklich ...

Zitat:
warum kommt niemand auf die Idee den ErrorCode
Weil es auf dem eigenem Rechner und keinem Testrechner der Firma auftritt, Herr Naseweis

Nein, im Ernst, es zeigt wieder.
Aufruf fremden Codes komplett kapseln.

jaja, olle Besserwisser
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 21:18
Och, kapseln ist nicht unbedingt nötig, aber eine gute Fehlerbehandlung (ordentliche Auswertung aller Rückgabewerte) ist Gold wert.

Hätte man aber vorher die Fehlerbehandlung halbwegs richtig gemacht, dann hätte man jetzt mehr Infos ... gerade weil es ein Kundensystem ist und ihr in dem Moment nicht davor sitzt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: "Externer Prozess nicht möglich" bei ShellExecuteEx, Win11

  Alt 6. Mai 2022, 21:26
Delphi-Quellcode:
if not CreateProcess(...) then
  RaiseLastOSError; // das Minimum, was man nach Belieben ausbauen kann
...

Delphi-Quellcode:
if not CreateProcess(...) then begin
  Err := GetLastError;
  //raise Exception.CreateFmt('irgendwas: %d %s', [Err, SysErrorMessage(Err)]);
  E := EOSError.Create('irgendwas: ' + SysErrorMessage(Err));
  E.ErrorCode := Err; // ja, ist irgendwie total krank, dass Borland/Codegear/Embarcadero seit Jahrzehnten die passenden überladenen Contructoren vergessen hat.
  raise E;
end;
...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 6. Mai 2022 um 21:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:03 Uhr.
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