Runshell Phänomen.... Hilfe!!!

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

Hallo,
bin gerade etwas am verzweifeln.
Ich führe ein runshell durch:

Code: Alles auswählen

cmdline := LiniFile:ReadString('System','PRISMApfad', '\PRISMA') + '32\XML.EXE sel -T -N "SD=' + SD +'" -N "SI=' + SI +'" -t -m "//SI:Service [@Name=' +;
	 "'CertificateService'" + ']/SI:Versions/SI:Version [@Version='+"'6.0.0'" + ']/SI:' + EndpointTLS + ;
	 '" -v "@Location" -o " " Connector.Sds.xml > ' + cLokalPfad + '\TI\cCERTserviceTLS.txt'
StrFile(cmdline, cLokalPfad + '\TI\cmdline.bat')
Runshell( "", "c:\_prisma\ti\cmdline.bat",.F.,.T. )
Auf diversen Rechnern/ Betriebssystemen getestet. Läuft unter Windows 7 32/64 Bit problemlos.
Windows 10 64 Bit läuft.
Ein Rechner mit Windows 10 32 Bit macht Zicken
Starte ich die Batchdatei vom über die Runshell() bleibt die Datei cCERTserviceTLS.txt ohne Inhalt.
Starte ich die Batchdatei direkt

Code: Alles auswählen

F:\PRISMA32\XML.EXE sel -T -N "SD=http://ws.gematik.de/conn/ServiceDirectory/v3.1" -N "SI=http://ws.gematik.de/conn/ServiceInformation/v2.0" -t -m "//SI:Service [@Name='CertificateService']/SI:Versions/SI:Version [@Version='6.0.0']/SI:EndpointTLS" -v "@Location" -o " " Connector.Sds.xml > C:\_PRISMA\TI\xml.txt
bekomme ich ein sauberes Ergebnis.
Dies tritt momentan anscheinend nur auf diesem einen Rechner auf.

Habe ich Fehler im Aufruf runshell() ?
Gibt es andere Möglichkeiten?

Danke im Voraus

Gruß Stefan
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von HaPe »

Hallo Stefan !

Ohne alles genau angeschaut zu haben, hat der Problem-Rechner irgendwo ein Leerzeichen/Umlaut im Pfad :?:
Bei Arbeiten mit Verzeichnissen muss man das immer berücksichten :D
--
Hans-Peter
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Tom »

Ich würd's mal ohne Umleitung in die Textdatei ausprobieren und den Parameter wechseln, der das Anzeigefenster unterdrückt (der vorletzte, oder?), um zu sehen, was passiert. Der Rückgabewert kann man auch irgendwie abfangen (hab gerade keine Xbase++-Hilfe hier), also den OS-Errorcode, falls er nicht 0 ist.
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Werner_Bayern »

Schuss aus der Hüfte: Ein Rechte-Problem?
es grüßt

Werner

<when the music is over, turn off the lights!>
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von ramses »

Schuss aus der anderen Hüfte: cmdLine ist zu lang? (nach dem einsetzten der lokalen pfade) ich bin der Meinung das Limit lag/liegt bei 240 Zeichen.
Valar Morghulis

Gruss Carlo
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

Es funktioniert wahrscheinlich unter Windows 10 32Bit allgemein nicht.

unter Windows 7 32Bit 64Bit und unter Windows 10 64Bit läuft es problemlos.


und wie beschrieben:
Starte ich die erzeugte Batchdatei über den Explorer mit Doppelklick funktioniert das ganze
Eingabe "CMDLINE" in der DOS-Shell funktioniert ebenso.

Bin echt ratlos...

Gruß Stefan
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Tom »

Und was ist, wenn Du Deinem Runshell zusiehst?
Herzlich,
Tom
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Werner_Bayern »

Dann wäre er ein Spanner :badgrin:
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

Es ist anscheinend nur dieser eine, von Windows 7 auf Windows 10 upgedatete Rechner.

Ja, ich kann spannen... :D

Doch was ich sehe gefällt mir nicht.
Ich habe in die Batchdatei ein "PAUSE" eingefügt und den Runshell-Aufruf auf Vordergrund gestellt.
Bei allen getesteten Rechnern sehe ich mein Fenster, die ausgeführte Zeile und das "drücken Sie eine beliebige taste"

Auf dem speziellen Rechner sehe ich..... NICHTS, kein DOS-Fenster.
Die Batchdatei scheint aber zu laufen da mein Programm wartet (Aufruf war asynchron)

Grübel....

Gruß Stefan
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Tom »

Und jetzt dreimal schnell nacheinander sagen: Runshellspanner, Runshellspanner, Runshellspanner.

Ernsthaft. Man kann doch sichtbar machen, was im CMD-Fenster passiert, und die Ausgabe auch anhalten. Dann kann man sehen, was nicht funktioniert, ob irgendeine Datei nicht gefunden wird, ein Recht fehlt oder sowas. Und man kann sich den Betriebssystem-Fehlercode holen.
Herzlich,
Tom
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

Stoppe ich den entsprechenden Prozess unter Windows: Windows-Hostprozess(RunDLL32)
wird das Ausführen der Batchdatei beendet.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von ramses »

Hast du die länge der Kommandozeile geprüft? Wie lange ist die? Es gibt eine Längenbegrenzung. Irgendwo so ab 240 Zeichen beginnen die Probleme.
Valar Morghulis

Gruss Carlo
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

An der Länge kann es doch nicht liegen sonst würde es auf anderen Rechnern nicht funktionieren.

Und wenn ich die Batchdatei direkt starte ( DOS Fenster oder Doppelklick im Explorer ) dann läuft die Batchdatei ja auch auf diesem Rechner.
Nur bei der Übergabe mit Runshell eben auf diesem einen Rechner nicht.

Gruß Stefan
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Tom »

Geht RunShell() überhaupt?
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von AUGE_OHR »

versuch das ganze per "ShellExecuteA"
gruss by OHR
Jimmy
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

Also.....
Die Länge der Batchdatei hat immer um die 400 Zeichen.
Runshell() - wie am Anfang beschrieben - funktioniert auf allen Betriebssystemen (Windows7 32/64 Bit,Windows10 64 Bit)
Bei Windows 10 32 Bit Rechnern tritt das Problem bei bestimmten Rechnern auf.+
Aktuell: 64 Rechner mit Windows 10 32 Bit -> alles funktioniert wie es soll, 2 Rechner eben nicht.
Auch die Rechner, auf denen es nicht funktioniert, sind von den Updates her auf de neuesten Stand.

Das ist doch irgendwo unlogisch oder?

Starte ich die vorliegende Batchdatei CMDLINE.BAt über Doppelklick im Explorer oder per Aufruf in der DOS Shell wird der Befehl sauber abgearbeitet.
Nur bei einem Aufruf aus der Anwendung heraus passiert.... nix!

Gruß Stefan
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

Mit Shellexecute geht auf den betreffenden PC's auch nichts...
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von georg »

Hallo, Stefan -


folgende Erfahrung habe ich gemacht: wenn etwas mit Xbase++ nicht so funktioniert, wie es funktioneren sollte, versuche ich ein kleines Programm zu schreiben, das es ermöglicht, den Fehler nachzuvollziehen. Also ein kleines Programm, das einen Befehl ausführt, im Debugger laufen lassen und sehen, was passiert. Funnktioniert das Minimal-Programm auf dem PC, liegt es irgendwo im Deinem Code verbuddelt (ist zumindest bei mir meistens so, dass ich irgendwas im Programmcode gemacht habe, das die Ursache für das "seltsame" Verhalten ist).

Funktioniert ein RunShell() mit was Simplen wie "dir *.* > meinergebnis.txt", ist Suchen angesagt.

Funktioniert so ein einfacher RunShell() nicht, würde ich nochmals die Einstellungen prüfen (SET in der Befehlszeile) und sie mit einem anderen Rechner vergleichen, wo es funktioniert. Wirst Du nicht fündig, wäre ein PDR an Alaska angesagt.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von AUGE_OHR »

mini990 hat geschrieben: Do, 27. Jun 2019 20:08 Mit Shellexecute geht auf den betreffenden PC's auch nichts...
hm ... :-k

schon mal ein

Code: Alles auswählen

SLEEP(100)
vor dem RunShell() / ShellExecuteA() versucht :?:
ist der Alaska "SMB2-Patch" installiert :?:

---
Gedanke :idea:
zuerst wird eine CMD geschrieben ... aber die muss noch nicht auf der HDD / SSD sein sondern landet im lokalen Cache.
gruss by OHR
Jimmy
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von ramses »

Hallo Stefan

versuche mal folgende Zeile:

Code: Alles auswählen

Runshell( "C/ START c:\_prisma\ti\cmdline.bat",nil,.F.,.T. )
Ach ja, die Batch Datei muss am ende eine Zeile mit dem Befehl EXIT haben. Sonst bleibt dir das CMD Fenster offen stehen.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Tom »

Nein, das stimmt nicht. Ein Batch, das geendet hat, beendet auch den Befehlsprozessor.
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von ramses »

Hallo Tom

ein normales Batch schon.

Versuche doch bitte mal eines so zu starten wie ich erwähnt habe:

Code: Alles auswählen

Runshell( "C/ START c:\_prisma\ti\cmdline.bat",nil,.F.,.T. )
Wenn du dies tust wirst du mit eigenen Augen sehen dass ohne EXIT am Ende des Batch das CMD Fenster offen bleibt!!
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von Tom »

Verstehe, stimmt. 😎
Herzlich,
Tom
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Runshell Phänomen.... Hilfe!!!

Beitrag von mini990 »

@Ramses: geht auch nicht, trotzdem danke!

Gruß Stefan
Antworten