View Full Version : [Visual Basic] Terminare processo alla chiususra di un programma
igormaiden
27-08-2011, 09:40
avrei bisogno se possibile di eseguire l'operazione di cui all'oggetto
ho scritto questo semplice script che mi apre i 3 programmi insieme
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """C:\Program Files (x86)\JoyToKey\JoyToKey.exe"""
WshShell.Run """C:\Giochi\rFactor F1 - Copia\rf_HighVoltage\rF_HighVoltage.exe"""
WshShell.Run """C:\Giochi\rFactor F1 - Copia\rFactor.exe"""
e vorrei aggiungere un instruzione per cui alla chiususra di rFactor in automatico si chiudano anche gli altri 2 programmi, ma non so come fare
igormaiden
29-08-2011, 17:56
up
igormaiden
31-08-2011, 00:36
c'è nessuno che riesce a darmi una mano? :(
ciao, io ti direi di creare un timer che controlla se tra i processi attivi ci sia rFactor.exe, se non c'è allora killi gli altri, ma in vb non saprei aiutarti, non lo conosco troppo bene. credo che la strada sia questa.
igormaiden
31-08-2011, 22:25
ah, per me va bene qualsiasi soluzione
mi daresti delle dritte su come fare per fare quello che proponi?
grazie
ah, per me va bene qualsiasi soluzione
mi daresti delle dritte su come fare per fare quello che proponi?
grazie
ok :) allora se per te non è un problema il linguaggio allora facciamo una via di mezzo : VB.NET
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
'allo scoccare del timer cerchi il processo principale (in genere lo trovi con solo il nome senza .exe)
Dim processoPrincipale = Process.GetProcessesByName("processoPrincipale")
'controlli che esista ancora il processo principale
If processoPrincipale.Length = 0 Then
'killi gli altri processi
Process.GetProcessesByName("processoDaChiudere")(0).Kill()
Process.GetProcessesByName("AltroProcessoDaChiudere")(0).Kill()
Me.Timer1.Enabled = False
End If
End Sub
'avvia i processi
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'avvii il processo che "comanda" (rFactor)
Process.Start("C:\Percorso\ProcessoPrincipale.exe")
'e quelli da chiudere alla chiusura del principale
Process.Start("C:\Percorso\processoDaChiudere.exe")
Process.Start("C:\Percorso\AltroProcessoDaChiudere.exe")
'abiliti il timer dopo l'apertura dei processi
Me.Timer1.Enabled = True
End Sub
aggiungi un timer che chiama Timer1_Tick, e un bottone che chiama Button1_Click, imposti i percorsi per avviare i processi di rFactor come principale e gli altri come secondari (da chiudere se si chiude rFactor), questo nell'avvio, mentre nel sub del timer usi solo i nomi (senza percorso e senza .exe).
Alla chiusura di rFactor si chiuderanno (entro il tempo impostato nel timer) anche gli altri.
ciao.
P.S.
ovviamente vuole essere solo uno spunto, magari potresti cercare di non killarli e chiuderli normalmente... fai un po di prove con la Process
igormaiden
01-09-2011, 01:51
il mio "per me va bene qualsisasi soluzione" non era intesto che conosco bene i linguaggi per cui posso fare tutto....:D...in realtà ci capisco ben poco ed è per questo che chiedevo aiuto
mmh, infatti non ho capito proprio tutto di quello che hai postato...anzi
cosa dovrei fare con questo codice?
potresti essere un po' più dettagliato?
fa conto di spiegarlo ad uno che non sa niente...o quasi :D
lo script che ho postato nel primo post, l'ho trovato in rete e adattato alle mie necessità, non è frutto del mio sapere :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.