Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Verificare se un processo.bin è aperto
Forum - C# / VB.NET - Verificare se un processo.bin è aperto

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
cristian3095 (Normal User)
Pro


Messaggi: 66
Iscritto: 24/09/2010

Segnala al moderatore
Postato alle 16:04
Venerdì, 15/10/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

  1. Dim processo() As Process
  2.         processo = Process.GetProcessesByName("Fiesta",My.Computer.Name)
  3.         If processo.Length > 0 Then
  4.              MsgBox("l'applicazione_verrà_interrotta",MsgBoxStyle.Information)
  5.             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
PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Up
1
Down
V
Segnala al moderatore
Postato alle 15:58
Sabato, 16/10/2010
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.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM
Avatar
pinotarallino (Normal User)
Newbie


Messaggi: 11
Iscritto: 09/10/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 20:36
Venerdì, 15/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.


Pinotarallino
PM
Avatar
cristian3095 (Normal User)
Pro


Messaggi: 66
Iscritto: 24/09/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 21:32
Venerdì, 15/10/2010
vorrei farlo fare automaticamente al programma se si può perchè ogni volta è una rottura :rofl:

PM
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 22:03
Venerdì, 15/10/2010
se ti può interessare esiste questa funzione:

Codice sorgente - presumibilmente Plain Text

  1. 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

  1. Dim listaprocessi() As Process
  2.         listaprocessi = Process.GetProcesses
  3.         For Each p As Process In listaprocessi
  4.             If p.ProcessName = "nomeprocesso" Then  'il nome processo è senza l'estensione (quindi .bin nel tuo caso)
  5.                 MsgBox("l'applicazione verrà interrotta", MsgBoxStyle.Information)
  6.                 p.CloseMainWindow()
  7.             End If
  8.         Next



spero di essere stato d'aiuto e di non aver confuso le idee :rotfl:

PM
Avatar
cristian3095 (Normal User)
Pro


Messaggi: 66
Iscritto: 24/09/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 23:23
Venerdì, 15/10/2010
:k: ok...questo funziona e innanzi tutto ti ringrazio...e se volessi sapere anche quando questo processo viene chiuso? :-|

PM
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 15:09
Sabato, 16/10/2010
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 :)

PM
Avatar
cristian3095 (Normal User)
Pro


Messaggi: 66
Iscritto: 24/09/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 19:33
Sabato, 16/10/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 :heehee:

PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Up
0
Down
V
Segnala al moderatore
Postato alle 20:39
Sabato, 16/10/2010
Testo quotato


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.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM
Pagine: [ 1 2 ] Precedente | Prossimo