IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Composant FINDER pour pointer une fenêtre et obtenir le handle


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut Composant FINDER pour pointer une fenêtre et obtenir le handle
    Bonjour,
    Je cherche un composant ou une méthode pour obtenir le handle d'une fenêtre (n'importe quelle appli ouverte) en pointant dessus !

    un peu comme dans cette appli
    Nom : FINDER.gif
Affichages : 980
Taille : 230,6 Ko

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Qu'Est-ce que tu entends par composant ?
    Tu cherches quelque chose que tu peux utiliser à partir d'Excel (Application) ou d'un de tes programmes ?
    MPi²

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Oui un composant pour mettre sur un Userform excel et en cliquant dessus je pourrai pointer l'appli qui m'intéresse pour obtenir son windows handle .


    Par exemple je veux récupérer le handle d'une autre session de Excel

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Peux-tu s'il te plait être plus précis ?
    Veux-tu dire extraire le handle d'une fenêtre sur laquelle tu mets ton curseur ? (si oui : facile)
    ou
    Autre chose (et quoi) ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    oui c'est ça

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bien.
    Petite expérience :
    - un userform et ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
     
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
     
    Private Sub UserForm_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        Dim Pt As POINTAPI
        GetCursorPos Pt
        MsgBox "cette fenêtre a pour handle : " & WindowFromPoint(Pt.X, Pt.Y)
    End Sub
    Lance le userform
    Click où tu veux sur ce userform et garde enfoncé le bouton de ta souris
    Bouton gardé enfoncé, rends-toi où tu veux (la fenêtre que tu veux) et libère le bouton --->> regarde

    Autre manière (somme toute identique) si tu préfère :
    un label label1 ajouté et -->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
     
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
     
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If Button <> 2 Then Exit Sub ' j'ai choisi ici le bouton droit (mais ce n'est qu'un choix)
        Dim Pt As POINTAPI
        GetCursorPos Pt
       Label1.Caption = WindowFromPoint(Pt.X, Pt.Y)
    End Sub
    Tu clique du droit, garde enfoncé et te "balades" où tu veux. Regarde ce qui se passe dans le label.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Merci pour ce code,
    mais en fait le déplacement reste dans le formulaire,

    J'ai besoin de trouver le Handle d'une FENETRE PARENT comme WORD OU OUTLOOK.

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    c'est pas parce que le userform est modal que du coup t'es bloqué pour changer de fenêtre parente ?

    en passant par un userform non modal, tu peux probablement changer "d'application" et pointer sur word ou autre ?

  9. #9
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Non ca ne change rien.

    J'ai trouvé une solution avec une dll
    http://www.codeproject.com/Articles/...e-Mouse-Events
    mais je préférerai un code entierement dans Excel ou avec des composants standards

  10. #10
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Quand j'ai testé la proposition de unparia, j'avais justement passé le userform en non modal

    suivant "l'endroit" où je relâchais le clic souris, le numéro renvoyé changeait. y compris si je relâchait le clic sur un fenêtre word.

    il était identique pour chaque "relâchement" effectué au même endroit, et j'ai donc dû en déduire à tort que c'était ce que tu cherchais

  11. #11
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Coucou, les zamis
    Testé, re-testé et re-re-testé ! Mon code ne se "trompe" pas ... (et pour cause !)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  12. #12
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Effectivement cela fonctionne, je l'utilisais mal car il faut au départ cliquer sur une zone vide du formulaire et j'avais un label trop gros.


    un petit ajout le nom de la fenetre
    et une option que l'userform soit toujours visible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
     
    Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
     
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
        (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
     
    Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
                                        ByVal lpClassName As String, _
                                        ByVal lpWindowName As String) As Long
     
    Private Declare Function SetWindowPos Lib "user32" ( _
                                         ByVal hwnd As Long, _
                                         ByVal hWndInsertAfter As Long, _
                                         ByVal X As Long, _
                                         ByVal Y As Long, _
                                         ByVal cx As Long, _
                                         ByVal cy As Long, _
                                         ByVal wFlags As Long) As Long
     
     Const HWND_TOPMOST = -1
     Const HWND_NOTOPMOST = -2
     Const SWP_NOMOVE = &H2
     Const SWP_NOSIZE = &H1
     
     
    '* The GetCursorPos function retrieves the cursor’s position, in screen coordinates.
     Function GetWindowTitle(CoordX As Long, CoordY As Long) As String
        Dim strTitle As String
        strTitle = String(255, Chr$(0))
        GetWindowText WindowFromPoint(CoordX, CoordY), strTitle, 255
        strTitle = Left$(strTitle, InStr(strTitle, Chr$(0)) - 1)
        GetWindowTitle = strTitle
    End Function
     
     
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
        If Button <> 2 Then Exit Sub    ' j'ai choisi ici le bouton droit (mais ce n'est qu'un choix)
        Dim Pt As POINTAPI
        GetCursorPos Pt
        Label1.Caption = WindowFromPoint(Pt.X, Pt.Y)
        Label2.Caption = GetWindowTitle(Pt.X, Pt.Y)
    End Sub
     
     
    Private Sub UserForm_Initialize()
     
    'pour que l'userform soit toujours visible
        mlHwnd = FindWindow("ThunderDFrame", Me.Caption)    'Change to match your userforms caption
        Do While mlHwnd = 0
            mlHwnd = FindWindow("ThunderDFrame", Me.Caption)    'Change to match your userforms caption
            DoEvents
        Loop
        'Set topmost
        SetWindowPos mlHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    End Sub

  13. #13
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Tu as l'as l'essentiel, maintenant.
    A savoir : déterminer le handle d'une fenêtre sous le curseur à partir des coordonnées du curseur.
    On en fait ensuite ce que l'on veut et comme on le veut. Y compris (mais pas uniquement) en utilisant Application.Ontime (pourquoi pas ?) et s'affranchir ainsi des évènements du userform.
    Voilà. Le reste n'est que conception, à partir de là.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  14. #14
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Merci Unparia,

    Encore une chose comme trouver le Handle de l'application parente ?

  15. #15
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Parente de quelle fenêtre ?
    Donne un exemple.

    Après réflexion,je ne pense pas que tu cherches à extraire le handle de là où tu pars (cela, tu sais sûrement déjà le faire), mais celui d'une fenêtre qui contiendrait un contrôle (externe, donc), sur lequel tu mettrais ton curseur.
    Si tel est le cas, les fonctions GetAncestor et GetParent de la librairie user32 de l'Api de Windows sont clairement ta solution.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  16. #16
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    +1
    trop fort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Declare Function GetAncestor Lib "user32.dll" ( _
                                        ByVal hwnd As Long, _
                                        ByVal gaFlags As Long) As Long
     
    Const GA_ROOTOWNER As Long = 3&
     
     
    Sub getappli()
      AppHWnd = GetAncestor(UserFormHWnd, GA_ROOTOWNER)
    end sub

  17. #17
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bien.
    Problème objet de cette discussion résolu ?
    (une partie de pêche m'attend, maintenant).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour a tous
    oliv intéressante ton idée
    je me suis donc amusé a faire le mien

    comme je ne voulais pas faire une boucle perpétuelle j'utilise le keydown de l'usf

    il suffit de loader le userform et de déplacer la souris dans l'écran sans toucher au bouton de la bestiole
    et taper la touche "X"

    exemple fichier joint
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour patricktoulon
    J'ai déjà eu l'occasion de parler de cette manière (utilisation de la position du curseur) de détermination du handle d'une fenêtre.
    Le reste (la méthode utilisée pour ce qui touche la position du curseur) est secondaire et dépend surtout de la finalité recherchée. Dans certain cas de figure, il arrive même que l'on ne déplace absolument pas le curseur mais que l'on parcoure, pixel par pixel, la totalité de l'écran jusqu'à y trouver quelque-chose de particulier révélateur de ce que l'on est aux coordonnées intéressantes et on lance alors la fonction WindowFromPoint en lui passant directement ces coordonnées (celle de la boucle, là où on l'arrête).
    Tu vois pourquoi j'ai mis l'accent sur cette fonction seule et que j'ai parlé de "conception" pour les autres aspects.
    Ceci étant dit :
    - j'évite personnellement l'utilisation d'un évènement clavier alors que je suis sur mon userform (multiples raisons). On peut très bien s'y prendre autrement, également avec le clavier et sans boucle et sans évènement clavier du userform. Mais (une autre fois) on traite là autre chose que ce qui était demandé, à savoir : extraction du handle de la fenêtre "pointée" (quelle que soit, donc, la méthode mise en oeuvre pour pointer). Et dans le cas où l'on met en oeuvre un balayage que j'ai cité au-dessus, on ne "pointe" même pas.
    - comme je le dis dans ma premère phrase, j'ai déjà eu l'occasion d'exposer ici de genre de mécanisme. Si la finalité, toutefois, est la même que celle exposée à l'époque (robotisation d'une application externe) : garder à l'esprit que toutes ces manoeuvres auront l'effet d'un coup d'épée dans l'eau si le créateur de l'appli considérée à prévu des barrières (qui peuvent être variées, voire en outre conjuguées).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonsoir unparia
    Dans certain cas de figure, il arrive même que l'on ne déplace absolument pas le curseur mais que l'on parcoure, pixel par pixel, la totalité de l'écran jusqu'à y trouver quelque-chose de particulier révélateur de ce que l'on est aux coordonnées intéressantes et on lance alors la fonction WindowFromPoint en lui passant directement ces coordonnées (celle de la boucle, là où on l'arrête).
    alors la!!: utiliser cette conception est a mon gout pire que les autres sachant que je bosse sur un écran tv parcourir pixel par pixel c'est de la cloonerie

    surtout sachant que l'on peut lister les fenêtres affichées a l'écran comme je l'ai démontré dans la discutions web téléchargement. a partir de la les apis windowfrompoint et autre sont complètement inutiles
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Composant COM pour ajouter une GUI à un script
    Par omen999 dans le forum Vos Contributions VBScript
    Réponses: 3
    Dernier message: 14/02/2008, 00h01
  2. APi pour mettre une fenêtre sous les icones du bureau.
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 28
    Dernier message: 20/03/2007, 13h14
  3. Réponses: 12
    Dernier message: 03/03/2007, 00h52
  4. pour pointer une matrice
    Par kikisens dans le forum C++
    Réponses: 8
    Dernier message: 24/10/2006, 18h45
  5. [Debutant(e)]Quel composant utiliser pour faire une grille
    Par elitost dans le forum Composants
    Réponses: 7
    Dernier message: 21/06/2004, 20h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo