cristian3095 (Normal User)
Pro
Messaggi: 66
Iscritto: 24/09/2010
|
ho creato un progetto banale in VB 2005 che praticamente conta i minuti in cui il pc è acceso.....siccome gioco ad un gioco online....quando c'è il processo del mio file aperto il gioco mi rallenta anche di molto...quindi volevo interrompere il timer che conta i minuti in modo da ridurre gli effetti.......ho provato con questo codice ma non va....il processo si chiama "Fiesta.bin"
Codice sorgente - presumibilmente VB.NET |
Dim processo() As Process processo = Process.GetProcessesByName("Fiesta",My.Computer.Name) If processo.Length > 0 Then MsgBox("l'applicazione_verrà_interrotta",MsgBoxStyle.Information) End If
|
così facendo non funziona......non mi manda quel messaggio....come posso fare?
Ultima modifica effettuata da cristian3095 il 15/10/2010 alle 16:06 |
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
Ti suggerisco di non sviluppare questa funzionalità all'interno di una normale windows application, ma di fare piuttosto un windows service.
Un servizio è fatto apposta per fare da demone e girare ad un livello tale da ottimizzare le prestazioni di attività in avvio in background e gestire facilmente l'avvio, la sospensione e lo stop del servizio stesso.
|
|
pinotarallino (Normal User)
Newbie
Messaggi: 11
Iscritto: 09/10/2010
|
se vuoi farlo da codice non saprei ma se per te è importante solo terminare il programmino vai su gestione attività che sicuramente ci sarà sul tuo computer, tra le attività in corso fai tasto destro sul tuo programma e premi termina processo.
|
|
cristian3095 (Normal User)
Pro
Messaggi: 66
Iscritto: 24/09/2010
|
vorrei farlo fare automaticamente al programma se si può perchè ogni volta è una rottura
|
|
noitide (Normal User)
Pro
Messaggi: 107
Iscritto: 24/06/2009
|
se ti può interessare esiste questa funzione:
Codice sorgente - presumibilmente Plain Text |
Environment.TickCount.ToString
|
che restituisce in millisecondi da quanto tempo è acceso il pc.. che forse è più comodo che eseguire un timer all'avvio e lasciarlo aperto consumando risorse
così facendo forse dovresti evitare di spegnere il programma quando accendi il gioco, anche se non è molto chiaro se alla chiusura del gioco vuoi riavviare il programmino o cosa. comunque il problema del codice che hai postato è chiaramente che l'applicazione non può sapere quando si apre il processo, quindi ti consiglierei di mettere un timer che esegue ogni 1 o 2 secondi le azioni che hai postato tu e se posso permettermi di darti un suggerimento usa questo codice che forse è più corretto e un po meno "brutale"
Codice sorgente - presumibilmente VB.NET |
Dim listaprocessi() As Process listaprocessi = Process.GetProcesses For Each p As Process In listaprocessi If p.ProcessName = "nomeprocesso" Then 'il nome processo è senza l'estensione (quindi .bin nel tuo caso) MsgBox("l'applicazione verrà interrotta", MsgBoxStyle.Information) p.CloseMainWindow() End If Next
|
spero di essere stato d'aiuto e di non aver confuso le idee |
|
cristian3095 (Normal User)
Pro
Messaggi: 66
Iscritto: 24/09/2010
|
ok...questo funziona e innanzi tutto ti ringrazio...e se volessi sapere anche quando questo processo viene chiuso?
|
|
noitide (Normal User)
Pro
Messaggi: 107
Iscritto: 24/06/2009
|
intendi il tuo processo Fiesta.bin?? se si, per capire quando viene chiuso devi necessariamente lasciare aperta l'applicazione che hai creato, altrimenti non c'è alcun modo per saperlo.. per quanto mi risulta
|
|
cristian3095 (Normal User)
Pro
Messaggi: 66
Iscritto: 24/09/2010
|
allora se il processo "Fiesta.bin" è aperto non devo chiudere il programma ma semplicemente stoppare tutti i timer tranne uno che ogni 2 min controllerà se il processo è ancora aperto e fin qua ci sono....il problema è capire quando questo processo viene chiuso in quanto quando succede questo deve riattivare i timer come prima in modo da far funzionare il programma come prima.
Non ho voluto utilizzare la tua funzione che mi dice da quanto tempo è acceso il pc, perchè è troppo semplice e siccome non sono molto bravo in VB preferisco sperimentare qualcosa di nuovo anche perchè il prossimo anno sarò al triennio nel ramo Informatico
|
|
netarrow (Admin)
Guru^2
Messaggi: 2502
Iscritto: 12/05/2004
|
Non ho voluto utilizzare la tua funzione che mi dice da quanto tempo è acceso il pc, perchè è troppo semplice e siccome non sono molto bravo in VB preferisco sperimentare qualcosa di nuovo anche perchè il prossimo anno sarò al triennio nel ramo Informatico .
|
Scusa ma è una contraddizione in termini: "siccome non conosco bene vb.net e sto facendo una cosa nel modo sbagliato, nel momento in cui ho la soluzione giusta, che è pure più semplice, continuo ad usare quella sbagliata, così imparerò bene vb.net."
E' esattamente il contrario, abituarti a usare le soluzioni sbagliate ti farà continuare ad usare male la tecnologia che stai studiando. |
|