Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr (https://www.delphipraxis.net/190997-cmd-exe-c-durch-shell-aufruf-klappt-unter-win-10-nicht-mehr.html)

wschrabi 29. Nov 2016 10:20

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
ja danke herzlich, war eifrig am Werken, .
ja das mit den `war von hier: http://stackoverflow.com/questions/8...hs-with-spaces
:?:

Aviator 29. Nov 2016 10:33

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
Tja. Da haben sich unsere Antworten irgendwo überschnitten. :shock:

Aber bitte merke dir für deine nächsten Fragen, dass du auch auf die Fragen von anderen Forenteilnehmern eingehen solltest. Ansonsten kann nicht oder nur sehr schlecht geholfen werden.

Aber schön das es jetzt funktioniert. :thumb:

Dalai 29. Nov 2016 13:10

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
[sarcasm] Jep, mache ich auch immer so - wenn etwas in der CMD nicht funktioniert, klemme ich die PowerShell noch davor. So richtig von hinten durch die Brust ins Auge.
[/sarcasm]

Mal im Ernst: ich bin mir ziemlich sicher, dass dir der Rückgabewert von ShellExecute verraten hätte, wo es klemmt. Und damit hätte man die Problematik gezielter lösen können als mit so einem ... sehr seltsamen Konstrukt.

Grüße
Dalai

Aviator 29. Nov 2016 13:27

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
Zitat:

Zitat von Dalai (Beitrag 1354935)
[sarcasm] Jep, mache ich auch immer so - wenn etwas in der CMD nicht funktioniert, klemme ich die PowerShell noch davor. So richtig von hinten durch die Brust ins Auge.
[/sarcasm]

Mal im Ernst: ich bin mir ziemlich sicher, dass dir der Rückgabewert von ShellExecute verraten hätte, wo es klemmt. Und damit hätte man die Problematik gezielter lösen können als mit so einem ... sehr seltsamen Konstrukt.

Grüße
Dalai

Der Meinung bin ich auch. Aber wenn es für ihn jetzt funktioniert und er auf Fragen nicht antworten will, dann kann ihm keiner helfen.

sakura 29. Nov 2016 14:12

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
Zitat:

Zitat von wschrabi (Beitrag 1354878)
Der Shell aufruf muss folgendermaßen lauten:
Delphi-Quellcode:
 C:\Windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -NoExit c:\windows\system32\cmd.exe /C "type C:\Users\O_SCHR~1\AppData\Local\Temp\SQLIteIMportScript.txt| C:\Users\o_schrabm\Documents\Programming\CitaviISBNLinker\Win32\Debug\sqlite3.exe C:\Users\O_SCHR~1\AppData\Local\Temp\aaa_1eww"

Und wenn PowerShell nicht installiert ist (ist immerhin eine OPTIONALE Komponente)...?

...:cat:...

wschrabi 29. Nov 2016 18:57

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
ja ich habs mit cmd.exe probiert aber das hat nicht geklappt, weis auch nicht. Mir hat einer gesagt man muss die powershell verwenden. Müßte es nur mit cmd.exe auch unter win 10 gehen?
Jetzt hab ich eine Checkbox wo man zwischen Powershell und cmd.exe schalten kann. DOCH das cmd.exe klappt nicht, nur die Powershell.
der Cmd.exe wird einfach abgewürgt. Wenn mir jemand sagen kann wie ich den Rückgabewert (ausser true/false meiner Wait routine) ermittlen kann - wüßte ich mehr.

Delphi-Quellcode:
            if checkbox8.Checked then
               begin
               myshell:='C:\Windows\syswow64\WindowsPowerShell\v1.0\powershell.exe';
               myshellarg:=' -noExit c:\windows\system32\cmd.exe /C " type '+gettempdirectory+'SQLIteIMportScript.txt'+'| '+ myapp+' '+uniconnection2.Database+' " ';
               end
            else
               begin  
               myshell:='c:\windows\system32\cmd.exe';
               myshellarg:=' /C " type '+gettempdirectory+'SQLIteIMportScript.txt'+'| '+ myapp+' '+uniconnection2.Database+' " ';
               end;
            WriteLogMemo(Format(' DEBUG: SHell: %s %s ',[myshell,myshellarg]));
            //exeRet:=StartandWait('c:\windows\system32\cmd.exe','/C '+ myapp+' '+uniconnection2.Database+' < '+gettempdirectory+'SQLIteIMportScript.txt');
            //C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
            exeRet:=StartandWait(myshell,myshellarg);

wschrabi 29. Nov 2016 18:59

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
Aviator. also der Rückgabe wert war true lt. meiner Wait Routine. ODer wie kann ich den Rückgabewert erfragen? (Sorry für die bloede frage, aber ich lern gern dazu.)

nahpets 29. Nov 2016 19:37

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
ShellExecute ist eine Funktion mit einem nummerischen Rückgabewert.

Gibt man in die Suchmaschine seiner Wahl z. B. "ShellExecute ReturnCode" ein, so erhält man einen Link auf folgende Seite: https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

Dort ist detailiert beschrieben, was der erhaltene Rückgabewert bedeutet.

Dabei sind nur Rückgabewerte <= 32 von Bedeutung.

Methode extrem unelegant:
Delphi-Quellcode:
ShowMessage(IntToStr(ShellExecute ( 0, nil, PChar('cmd.exe'), PChar('/C '+ myapp), nil, SW_HIDE));


[mal ganz böse]
Rückgabewerte von Funktionen können bei der Fehlersuche durchaus hilfreich sein. Insbesondere, wenn man sie auswertet ;-)
[/mal ganz böse]

[praktische Erfahrung]
Die Auswertung von Rückgabewerten kann stunden-, tage-, ja sogar wochenlange Fehlersuche gegen 0 reduzieren ;-)
[/praktische Erfahrung]

wschrabi 29. Nov 2016 19:45

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
Danke jetzt weiß ich bescheid. AUch habe ich die Ursache für das NICHT FUNKTIONIEREN des cmd.exe gefunden.
WENN ICH das Delphi Prg als ADMINISTRATOR ausführe, siehe an da klappt das cmd.exe
KOmischerweise ging das ohne Admin REchte zuhause auch. Aber am WORKPLACE muss man Admin rechte haben.

Jetzt ist das Problem gelöst, auch hätte der Rückgabewert vielleicht nichts gebracht, weil ja der cmd.exe nicht ausführbar war.
Danke an alle die geholfen haben.

:-D

himitsu 29. Nov 2016 19:53

AW: cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
 
Vermutlich weil die auf Arbeit schlauer sind und den von dir gestarteten Programmen nicht "immer" automatisch Adminrechte geben.


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

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