Rechercher : dans
Par :

[VBA] récuper le handles d'une fenetre active

Dernière réponse le 17 mai 2009 à 18:57:08 goldenmike, le 17 avr 2009 à 18:04:39 
 Signaler ce message aux modérateurs

Bonjour,
J'aimerais en savoir pus sur l'utilisation , en Visual Basic .NET , de la facon de faire pour recupere le Handles d'une fenetre.
J'ai beaucoup cherché sur le net : la seul piste est FindWindow ... Mais comment l'utiliser ?

Ex : ma fenetre s'appelle mprog : je veux faire de l'opcity dessus : comment?

Depuis 5 jours je cherche ... Aidez - moi svp ... :)

Merci d'avance. //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Con­figuration: Linux
Firefox 3.0.8
Microsoft Visual Basic 2008
256 MB
65 GB
1 copine

Meilleures réponses pour « [VBA] récuper le handles d'une fenetre active » dans :
Montrer une copie d'écran VoirParfois, on a besoin de montrer une copie d'écran ou une image sur un forum. voici les étapes pour y parvenir : SOMMAIRE 1 - Faire la copie d'écran ou de la fenêtre active 2 - Créer et sauvegarder l'image sur le disque dur 2.1 - Ouvrir...
Visionneuse de fenêtres - flip 3D VoirVisionneuse de fenêtres 1. Top Desk 2. Yod’m 3D 3. Modotate 3D 4. SmartFlip CONCLUSION Depuis la sortie de Windows Vista, le dernier OS de Microsoft, bien des utilisateurs de Windows XP ou antérieur, jalousent la visionneuse de...

1

goldenmike, le 17 avr 2009 à 18:38:26
  • +1

Up //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Répondre à goldenmike

2

Lupin.A, le 17 avr 2009 à 19:21:12
  • +2

Bonjour,

Exemple type VB2008:

Imports System.Diagnostics.Process
Imports System.Text

''' <summary>
''' Exemple de capture du Handle
''' du process actif
''' </summary>
''' <remarks></remarks>
Public Class Form1

    Sub CaptureProcessActif()
        Dim Message As New StringBuilder
        Dim Proc As Process

        Proc = System.Diagnostics.Process.GetCurrentProcess
        Message.AppendLine("Nom du process : " & Proc.ProcessName)
        Message.AppendLine("Numéro du PID : " & Proc.Id)
        Message.AppendLine("Handle du process : " & Proc.Handle.ToString)

        MessageBox.Show(Message.ToString)

        Debug.Print(Proc.ProcessName)
        Debug.Print(Proc.Id)
        Debug.Print(Proc.Handle)
    End Sub

End Class
'


Notez qu'il est possible de parcourrir tous les process en action !

    Sub CreerListeProcess()

        Dim ProcessList As System.Diagnostics.Process()
        Dim Proc As System.Diagnostics.Process
        Dim LaListe As New ArrayList

        ProcessList = System.Diagnostics.Process.GetProcesses()
        For Each Proc In ProcessList
            LaListe.Add(Proc.ProcessName)
        Next

    End Sub


Lupin ~L'essentiel est invisible pour les yeux~
  ~On ne voit bien qu'avec le coeur~

Répondre à Lupin.A

3

goldenmike, le 17 avr 2009 à 19:56:21
  • +1

Merci beaucoup !
MESSAGE A LUPIN.A
Merci !
J'ai tout de meme quelques questions :
- comment je fais pour recuper le Handles de mon processus ?? Tu n'as pas repondu a ma question .. :)

Merci d'avance //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Répondre à goldenmike

4

Lupin.A, le 17 avr 2009 à 20:16:39
  • +2

Re:

    Sub CreerListeHandle()

        Dim ProcessList As System.Diagnostics.Process()
        Dim Proc As System.Diagnostics.Process
        Dim LaListe As New ArrayList
        Dim MonHandle As System.IntPtr

        ProcessList = System.Diagnostics.Process.GetProcesses()
        For Each Proc In ProcessList
            If (Proc.ProcessName.ToUpper = "EXCEL") Then
                Debug.Print(Proc.ProcessName)
                MonHandle = Proc.Handle
                LaListe.Add(MonHandle)
            End If
        Next

    End Sub


Lupin ~L'essentiel est invisible pour les yeux~
  ~On ne voit bien qu'avec le coeur~

Répondre à Lupin.A

5

goldenmike, le 17 avr 2009 à 20:19:11
  • +1

Merci !
Juste une derniere question : comment puis-je recuper le nom du processus de mon programme ?
Dois-je mettre le .exe avec ? //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Répondre à goldenmike

6

Lupin.A, le 17 avr 2009 à 20:35:12
  • +2

Re:

Non, l'extension n'est pas requise à moins de cas spéciaux qui me serait
inconnu à ce jour.

Pour être certain du nom, utilise ce code pour faire afficher tous les noms :

    Sub CreerListeNomProcess()

        Dim ProcessList As System.Diagnostics.Process()
        Dim Proc As System.Diagnostics.Process
        Dim Message As New StringBuilder

        ProcessList = System.Diagnostics.Process.GetProcesses()
        For Each Proc In ProcessList
            Message.AppendLine(Proc.ProcessName)
        Next

        MessageBox.Show(Message.ToString)

    End Sub


Lupin
~L'essentiel est invisible pour les yeux~
  ~On ne voit bien qu'avec le coeur~

Répondre à Lupin.A

7

goldenmike, le 17 avr 2009 à 21:10:18
  • +1

Merci !
Tu es mon sauveur !
Je mets +1 a chaque message + resolu : Je suis super-mega-top-content ce soir quant tu te coucheras tu pourras etre fier de toi ... Tu as fait 1 heureux ....
for i = 0 to 1000
print("MERCI")

@+ //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Répondre à goldenmike

8

goldenmike, le 17 avr 2009 à 21:19:58
  • +1

Juste un dernier truc :
Maintenant que je suis sur du nom de mon processus , comment je fasi pour lui attribuer de l'opacité , du Size ?
C'etait mon premier but et j'espere que metre de l'opcaité / size est possible en VB..


Merci d'avance . //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Répondre à goldenmike

9

Lupin.A, le 17 avr 2009 à 23:25:18
  • +2

Re:

En fait, j'avais bien compris que c' était ton objectif :-)

Le paramètre [ Size ] est effectivement en général un paramètre en lecture/écriture.

Le paramètre [ Opacité ] est un paramètre qui m'est inconnu tant par son
type que ses méthodes et attributs.

N'ayant pas encore utilisé ces paramètres, je ne puis te guider davantage.

Google devrait combler ce manque à finir !

Tout le code déposé ici à été trouvé à l'aide de la toile, j'ai bien sur renommer
les objets pour bien comprendre ce que je codais car il y a souvent des erreurs à
corriger. J'y ai trouvé comment utilisé un crayon, une brosse pour dessiner
des formes.

J'ai pu te répondre car je travaille moi-même sur une version d'un gestionnaire
de tâches personnalisé, mais c'est ma deuxième application maison VB2008.

Lupin ~L'essentiel est invisible pour les yeux~
  ~On ne voit bien qu'avec le coeur~

Répondre à Lupin.A

10

goldenmike, le 18 avr 2009 à 16:30:26
  • +1

OK , merci tout de meme !
Dommage que tu ne saches pas comment mettre le Size / Opacity .... Ce serait SU-PER !

Mais bon ... J'ai deja beaucoup appris alors merci encore !

@+ //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Répondre à goldenmike

11

 goldenmike, le 17 mai 2009 à 18:57:08
  • +1

Up //Dual - Boot Ubuntu Intrepid Ibex 8.10 / Windobe XP
//Seul un geek sait pourquoi la Peugeot 404 n'existe pas.

Répondre à goldenmike