Programm wird nicht beendet

Anfängerfragen zum Programmieren mit PureBasic.
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Programm wird nicht beendet

Beitrag von enigma »

Hallo,
ich bin absoluter Anfänger in PB und möchte ein kleines Prog schreiben das ein fremdes Programm startet und nach einer bestimmten Zeit wieder beendet.

Mit:
processID.l = RunProgram("xxx","","",#PB_Program_Open)
Delay(600000)
KillProgram(processID)
CloseProgram(processID)

funzt das so wie ich es will - nur nicht bei allen Programmen. :evil:

Das Prog auf das es mir ankommt hat eine Abfrage: Willst du wirklich das Programm beenden?
Ist das der Grund warum das Programm nicht beendet wird? Wenn ja, wie kann ich mein Vorhaben anders realisieren?

Jeder Tip wird dankbar angenommen.

Gruß
Enigma
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

Re: Programm wird nicht beendet

Beitrag von ts-soft »

Du kannst es z.B. mit der AutoWin_Include machen: http://www.purebasic.fr/german/viewtopi ... 24#p267424
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
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Re: Programm wird nicht beendet

Beitrag von enigma »

Danke für den Tip. Werde ich mal testen.

Gruß
Enigma
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

Re: Programm wird nicht beendet

Beitrag von ts-soft »

ungefähres Vorgehen mit AutoWin:
Programm beenden, warten mit "AW_WinActive()" bis der Dialog auftaucht und dann mit "AW_ControlClick() "
den "Ja" Button clicken.

Den Rest wirst Du selber ausprobieren müssen.

Gruß
Thomas

PS: AutoWin als Include verwenden, UserLib ist veraltet.
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
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Re: Programm wird nicht beendet

Beitrag von enigma »

Danke, ich werde mich mal daran machen und mich dann wieder melden.

Gruß
Enigma
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Re: Programm wird nicht beendet

Beitrag von enigma »

So, nachdem ich nun wochenlang versucht habe mit AutoWin mein Problem zu lösen bin ich auch zu einem Ergebnis gekommen: Ich bin einfach zu blöd oder zu alt oder beides. :oops:

Meine Lösung sieht nun so aus:

Code: Alles auswählen

Res=RunProgram ("XXX","","")
   Delay(900000)
    OpenConsole()
    Res=RunProgram ("taskkill.bat")
    Delay(2000)
    CloseConsole()
in der taskkill.bat steht nur der Consolenbefehl taskkill mit dem Parameter /F.

Damit wird das Programm brutal ohne Nachfrage beendet. Ich würde das gern anders lösen aber ich weiß nicht wie. Vielleicht kann mir jemand ein kleines Muster schreiben aus dem auch ich schlau werde.

Habe die Hoffnung noch nicht ganz aufgegeben.

Gruß
Enigma
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Programm wird nicht beendet

Beitrag von NicTheQuick »

Warum nicht gleich mit den passenden PB-Befehlen?

Code: Alles auswählen

Define Res.i = RunProgram ("XXX","","")
If (Res)
	Delay(900000)
	If (IsProgram(Res))
		KillProgram(Res)
	EndIf
EndIf
enigma
Beiträge: 52
Registriert: 13.09.2011 13:52

Re: Programm wird nicht beendet

Beitrag von enigma »

danke für die schnelle Antwort aber leider läüft das so nicht.
Mein Prog öffnet beim Beenden ein Abfragefenster: Willst du wirklich ... ? Und an dieses Fenster komme ich nicht dran um zu sagen: Ja, ich will.
Darum habe ich gehofft das mit der vorgeschlagenen AutoWin zu lösen. Aber wie gesagt zu blöd.

Gruß
Enigma
Antworten