Rückgabewert eines Processes abfragen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Wireless
Beiträge: 4
Registriert: 27.01.2006 13:35

Rückgabewert eines Processes abfragen

Beitrag von Wireless »

Ich möchte ServicePacks von MS automatisch verarbeiten.

Ich werde aus meinem Programm heraus ein Verzeichnis mit allen Patches scannen und die noch nicht installierten ServicePacks der Reihenfolge nach mit Parametern für Quitinstallation ausführen.

Hierzu benötige nur noch einen kleinen Tipp:

Wie kann ich den "Status" oder "Rückgabewert" --wie es auch immer heißen mag--, der gestarteten Datei (Process) abfragen.
Ich meine hierbei nicht: "Datei geschlossen" etc. Ich suche viel mehr den Rückgabewert der Datei.

Beispiel: 3010 entspricht "Reboot wird benötigt!

Für Anregungen schon vielen Dank!

Gruß
Wireless
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Mit ner Batchdatei, einfach %errorlevel% auswerten, ist der einfachste Weg.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

Also ne Datei selber kann dir keine Messages senden. Du meinst sicher das das Setup was einen Patch isntalliert Messages zurück liefert oder?
Wenn du das meinst kommt es wieder drauf an ob das Setup überhaupt solche Messages zurück gibt oder ob es selber entscheidet (anhand von nem Messagerequester den du ja mit ja oder nein für nen neustart bestätigen kannst).

Gruß,
Nico
Benutzeravatar
Wireless
Beiträge: 4
Registriert: 27.01.2006 13:35

Beitrag von Wireless »

Leute, Ihr seit fix!

@nicolaus: Richtig, das Setup-Programm liefert den Wert. Die KBxxxx.exe von MS liefern diese Werte in Form von Zahlen!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Guck Dir mal diesen Thread an, ist aber nicht unbedingt für Einsteiger geeignet: http://forums.purebasic.com/german/view ... light=pipe

Die Ausgabe erfolgt IMHO in der Umgebungsvariable %errorlevel%, genauso wie es der End-Befehl von PB auch kann.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Wireless
Beiträge: 4
Registriert: 27.01.2006 13:35

Beitrag von Wireless »

@ts-soft: Tja, das bringt mich weit nach vorn. Ich dachte, mir postet hier einer einen Einzeiler. Weitgefeht! Da muss ich jetzt wohl durch. Bis jetzt verstehe ich nur Bahnhof, aber mal schauen, ob ich verstehe. Das wird allerdings eine kleine Weil dauern. Erstmal vielen Dank!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ehrlich gesagt finde ich Dein Vorhaben nicht sehr gut.
1. derjenige hat Internet, dann ist alles vorhanden, wenn er möchte
2. er hat keins, dann wird das meiste auch nicht benötigt.
3. Mithilfe eines Installers, sollte es einfacher und sicherer gehen, wobei
ich dann von so normalen sachen wie msxml usw. ausgehe

Selbst diese ServicePack CDs, die man so im Internet bekommt, haben mir mein System schon unbrauchbar gemacht.

Ohne Wissen des Users solltest Du sowas in keinem Falle tun, ich würde Dich bei Mißerfolg verklagen :wink:

Nur so am Rande mein Senf dazu

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Wireless
Beiträge: 4
Registriert: 27.01.2006 13:35

Beitrag von Wireless »

@ts-soft: Ich verstehe dein Antwort. Allerdings habe ich einen Kollegen, die Aufgabe mit Hilfe des Windows-Scripting gelöst hat. Dieser Kollge möchte allerdings diesen und andere Features in ein Programm eingearbeitet haben.

Das Programm wird später als Vorbereitung für Rechner zu Softwareverteilung eingesetzt. Um nicht jedesmal jeden Rechner in einem großen Netzwerk Updates ziehen zu lassen, soll die Routine unterstützen.

So kam es zu der Aufgabe!

Gruß
Ron
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Für solche Aufgaben ist ja AutoIt besonders geeignet, hab da mal ne schöne Wrapper-Lib gemacht, mit includierter DLL, so das diese nicht erforderlich ist.
Kannste Dir ja mal ansehen, wenn Du möchtest:
http://www.purebasic.ts-soft-online.de/ ... toitx3.zip
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Wireless hat geschrieben:@ts-soft: Ich verstehe dein Antwort. Allerdings habe ich einen Kollegen, die Aufgabe mit Hilfe des Windows-Scripting gelöst hat. Dieser Kollge möchte allerdings diesen und andere Features in ein Programm eingearbeitet haben.
Hiho!
Wenn ihr dieses Problem schon gelöst habt, dann baut diese "Lösung" doch einfach in die .exe ein?
Man könnte die Script-Befehle über die .exe an den Scripting-Host senden. So ist das Script für den Normaluser unsichtbar, und ihr habt eine kompakte .exe .

Ansonsten ist dein Vorhaben mal ne ganz witzige Idee, da ich auch meine Updates nicht von MS direkt ziehe, sondern von Homepages, die die .msi/.exe dafür bereitstellen. Wenn man die dann alle in einem Ordner hat, und nur dein Proggi ausführen braucht, wär es gut.

Vorschlag für dein "Progrämmchen":
Das Programm solange in den Autostart schieben, sodass der Vorgang weitgehend automatisiert wird - auch wenn ein Reboot benötigt wird. :allright:

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten