Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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.

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?

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.

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

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.

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

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo