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 - Path da form handle?
Forum - C# / VB.NET - Path da form handle?

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
ilprogrammatore10 (Normal User)
Newbie


Messaggi: 13
Iscritto: 21/05/2009

Segnala al moderatore
Postato alle 17:35
Giovedì, 21/05/2009
Ciao a tutti,
Vi ringrazio in anticipio per la vostra attenzione,
volevo sapere (dopo ore di dannatissimo gogglaggio) se è possibile
ricavare il path dell'eseguibile dall'handle di un form.

Confido in voi :hail:

ilprogrammatore10

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 19:21
Giovedì, 21/05/2009
Se il form appartiene alla tua applicazione, basta Application.ExecutablePath. Se il form appartiene ad un'altra applicazione, ci sono due casi:
- Se il form è la finestra principale, allora puoi scorrere tutti i processi in esecuzione e confrontare l'handle del form con quello della finestra ad essi associata:
Codice sorgente - presumibilmente VB.NET

  1. Dim P() As Process = Process.GetProcesses()
  2. For Each Proc As Process In P
  3.   If P.MainWindowHandle = HandleDelForm Then
  4.     'Il percorso dell'eseguibile è: P.MainModule.FileName
  5.   End If
  6. Next


- Se il form non è la finestra principale, allora puoi provare per prima cosa ad usare il codice sopra riportato. Quindi, una volta ottenuto l'handle della finestra principale del processo, usare la funzione EnumChildWindows (http://pinvoke.net/default.aspx/user32/EnumChildWindows.html) dell'api di Windows per enumerare tutte le form figlie di questa e vedere se ce n'è qualcuna il cui handle corrisponde a quello che cerchi.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
ilprogrammatore10 (Normal User)
Newbie


Messaggi: 13
Iscritto: 21/05/2009

Segnala al moderatore
Postato alle 19:34
Giovedì, 21/05/2009
grazie totem per la tua risposta....
Ma ancora il problema non l'ho risolto.
Infatti, io utilizzao l'handle per trovare anche i processi nascosti, e di conseguenza non posso utilizzare il codice da te riportato, perchè molto probabilmente non troverebbe il processo.
Grazie ancora

Help me!!:hail:

Ciaoo!!

ilprogrammatore10

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:39
Giovedì, 21/05/2009
Processi nascosti?

Ovvero?


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:34
Giovedì, 21/05/2009
Processi che il task manager - e di conseguenza anche la classe process - non sono in grado di rivelare. Se è così, allora non puoi farlo. Devi documentarti su come visualizzare i processi nascosti.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:05
Giovedì, 21/05/2009
Testo quotato

Postato originariamente da Il Totem:

Processi che il task manager ...



Avevo capito il senso, ero un po' sarcastico ... :)

In realta' NON dovrebbero esistere processi "nascosti" (che dispongono di un handle, fra l'altro ...) e volevo qualche dettaglio in piu' ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:49
Sabato, 23/05/2009
Infatti io non lo sapevo. Ma ho visto che ci sono programmi che svolgono questa funzione.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:31
Sabato, 23/05/2009
Testo quotato

Postato originariamente da Il Totem:

Infatti io non lo sapevo. Ma ho visto che ci sono programmi che svolgono questa funzione.



Programmi che svolgono quale "funzione"? Quali programmi?

A parte i virus che si basano su rootkit (e su cui il discorso si farebbe comunque troppo lungo e complesso), NON e' possibile nascondere processi.

Ovviamente altro discorso si deve fare per i device driver, di cui e' comunque fattibile un elenco.

Comunque, a parte questi discorsi, che ci portano da altre parti, chi aveva posto la domanda partiva da un handle di un form. Quindi esiste un form e un handle, non vedo come il processo possa essere "nascosto" ...

Ultima modifica effettuata da theprogrammer il 23/05/2009 alle 19:35


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:47
Domenica, 24/05/2009
Non aspettarti una risposta da me, è ilprogrammatore10 che l'ha detto.

Comunque, se provi a enumerare le finestre attive con EnumWindow, vedrai che ne ne sono molte che sono senza titolo e non hanno interfaccia. Questo significa che non tutti i processi senza interfaccia sono privi di finestre (sembra uno dei quesiti di logica dei test di ingresso XD).


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo