Oppure

Loading
21/05/09 15:35
ilprogrammatore10
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
aaa
21/05/09 17:21
Il Totem
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:
Dim P() As Process = Process.GetProcesses()
For Each Proc As Process In P
  If P.MainWindowHandle = HandleDelForm Then
    'Il percorso dell'eseguibile è: P.MainModule.FileName 
  End If
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 (pinvoke.net/default.aspx/user32/…) 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.
aaa
21/05/09 17:34
ilprogrammatore10
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
aaa
21/05/09 17:39
theprogrammer
Processi nascosti?

Ovvero?
aaa
21/05/09 18:34
Il Totem
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.
aaa
21/05/09 19:05
theprogrammer
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' ...
aaa
23/05/09 16:49
Il Totem
Infatti io non lo sapevo. Ma ho visto che ci sono programmi che svolgono questa funzione.
aaa
23/05/09 17:31
theprogrammer
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 23/05/09 17:35
aaa