AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein cmd.exe /c durch Shell Aufruf klappt unter WIN 10 nicht mehr
Thema durchsuchen
Ansicht
Themen-Optionen

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

Offene Frage von "wschrabi"
Ein Thema von wschrabi · begonnen am 28. Nov 2016 · letzter Beitrag vom 30. Nov 2016
Antwort Antwort
Seite 3 von 4     123 4      
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#21

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

  Alt 29. Nov 2016, 11:20
ja danke herzlich, war eifrig am Werken, .
ja das mit den `war von hier: http://stackoverflow.com/questions/8...hs-with-spaces

Geändert von wschrabi (29. Nov 2016 um 11:26 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#22

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

  Alt 29. Nov 2016, 11:33
Tja. Da haben sich unsere Antworten irgendwo überschnitten.

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.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#23

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

  Alt 29. Nov 2016, 14:10
[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
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#24

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

  Alt 29. Nov 2016, 14:27
[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.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#25

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

  Alt 29. Nov 2016, 15:12
Der Shell aufruf muss folgendermaßen lauten:
 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)...?

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#26

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

  Alt 29. Nov 2016, 19:57
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);

Geändert von wschrabi (29. Nov 2016 um 20:09 Uhr)
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#27

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

  Alt 29. Nov 2016, 19:59
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.)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#28

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

  Alt 29. Nov 2016, 20:37
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: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]
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#29

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

  Alt 29. Nov 2016, 20:45
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.

  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 29. Nov 2016, 20:53
Vermutlich weil die auf Arbeit schlauer sind und den von dir gestarteten Programmen nicht "immer" automatisch Adminrechte geben.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 05:43 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