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

Windows Discussion :

Aide pour simuler des clics droits qui sont bloqués !


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Aide pour simuler des clics droits qui sont bloqués !
    Salut,
    je suis assez debutant en programmation et je fais que du dev-c++ (fenetre ms-dos :/) et enfait j'avais fait un programme pour m'aider a jouer a un jeu du genre replacer mes potion de vie ou faire des sort de regen tout seul, enfin tout les truc long et ennuyant.
    (ps: certains programme gerer par des manette de jeu fonctionne encore)

    mais depuis 10jours les commande de gestion du clavier et de la souris sont desactiver

    alors si l'on pouvait m'aider en m'expliquant comment passer ce probleme :/

    1) comment le jeu peut-il detecter la different entre mon prog et des vrai click de souris ou de clavier ?
    http://tcharles.developpez.com/simul/#quoi
    -le jeu utilise des hook ? si oui ya t-il moyen de les contrer ?


    2) j'ai trouver un programme fait par qqn d'autre (il y a 2ans) fait pour ce jeux et pour passer ce probleme (le jeu avait deja blocker le prog puis reactiver puis rebloquer recement )
    je programme c'est :
    -une petite fenetre windows inactif
    -lorsqu'on appui sur une touch : (F10) il se met en marche :
    -a) il ferme explorer.exe (processus) et le relance (je sais pas pq? mais il doit sans doute y avoir une bonne raison
    -b) il se met en mode : TOUJOURS VISIBLE AU PREMIER PLAN (meme si une application est au premier plan le prog reste visible par dessus)
    -c) SI le jeu est lancer il simule des click droit et se maximise (auto-maximisation et click en permanence, j'entend par maximise -> se mettre au premier plan != different du point (b) qui etait tjs visible au premier plan meme si il n'etait pas au premier plan)
    -d) si on reappui sur F10 ca retourne en inactivite -> (a)

    voila si qqn pouvait m'aider svp : soit en me disant s'il y a moyen de bloquer les hook (1) ou en me donnant un ptit schema (squelette) du programme (2) sinon au moins me donner les commandes : TOUJOURS VISIBLE et SE METTRE AU PREMIER PLAN pour une fenetre windows (je programme en dev-cpp) je prefere un ptit squelette car j'ai encore jamais manipuler de fenetre window

    enfin merci a tous d'avance d'au moins mettre se que vous savez sur le sujet

    [BONNE ANNéE 2006 A TOUS !!!]

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    pas tres motiver pour repondre

    enfin j'ai deja trouver une commande : setAlwaysOnTop
    mais je sais pas exactement comment l'utiliser > ca me dit "undeclared" :/
    qu'elle libraire je dois inclure pour user cette fonction ?

    merci a tous

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Rien sur MSDN: SetAlwaysOnTop n'existe pas.

    Regarde plutôt du coté de SetWindowPos...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    oui, je me suis tromper -> c'est une commande java apparament

    merci Médinoc, je vais voir

    enfait voila le programme que j'aimerai refaire (source code)
    http://upload.net.chez-alice.fr/bestautodl/autodl.exe

    -> lorsqu'on appui sur f10 il se met en mode tjs visible au premier plan (meme si ce n'est pas l'application selectionner)

    et si le jeux est lancer il simule de click droit et s'auto selectionne en permanence (vraiment au premier plan)

    -> si qqn pouvait me donner un code source semblable svp




    EDIT


    ah je commence a trouver
    SetActiveWindow(hwnd);

    mais je sais pas trop comment traiter une fenetre windows :/
    la fonction (MAIN) dans les fenetre c'est : int WINAPI WinMain ??
    si oui, ou dois inserer ma fonction :

    do SetActiveWindow(hwnd); while(1);

    ?toute a la fin juste avant le crochet de fermeture ?

    sinon c'est quoi la fonctione :
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

    apres la main fonction ? :s (desoler ya pas plus noob que moi -> j'essaye d'apprendre )

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    hwnd = CreateWindowEx (
    WS_EX_TOPMOST,
    szClassName,
    "AutoSkill",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, /
    CW_USEDEFAULT,
    175,
    75,
    HWND_DESKTOP,
    NULL,
    hThisInstance,
    NULL
    );

    Wow je commence a trouve
    lors de la declaration de la fonction je dois mettre : WS_EX_TOPMOST

    EDIT

    SetWindowPos(hwnd,HWND_TOPMOST,1,1,300,300,SWP_SHOWWINDOW);



    merci Médinoc, j'avance de plus en plus.
    merci de continuer a poster vos idee, ou toute aide

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    ok, a ce stade -> je cherche mnt a kill le processus eplorer.exe et a le relancer

    merci de vos proposition

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    #include <windows.h>

    /* Declare Windows procedure */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    POINT pt;
    /* Make the class name into a global variable */
    char szClassName[ ] = "WindowsApp";
    void dim(int &X, int &Y)
    {
    int savy,savx;
    GetCursorPos(&pt);
    savy=pt.y;
    savx=pt.x;
    SetCursorPos(pt.x+3000,pt.y+3000);
    GetCursorPos(&pt);
    X=pt.x+1;
    Y=pt.y+1;
    pt.x=savx;
    pt.y=savy;
    SetCursorPos(pt.x,pt.y);
    }

    short Mask = 32768;
    int WINAPI WinMain (HINSTANCE hThisInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpszArgument,
    int nFunsterStil)

    {
    bool active=0;
    int X,Y;
    dim(X,Y);


    HWND hwnd; /* This is the handle for our window */
    MSG messages; /* Here messages to the application are saved */
    WNDCLASSEX wincl; /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
    wincl.style = CS_DBLCLKS; /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL; /* No menu */
    wincl.cbClsExtra = 0; /* No extra bytes after the window class */
    wincl.cbWndExtra = 0; /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND +3;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
    return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
    0, /* Extended possibilites for variation */
    szClassName, /* Classname */
    "AutoSkill", /* Title Text */
    WS_OVERLAPPEDWINDOW, /* default window */
    CW_USEDEFAULT, /* Windows decides the position */
    CW_USEDEFAULT, /* where the window ends up on the screen */
    175, /* The programs width */
    0, /* and height in pixels */
    HWND_DESKTOP, /* The window is a child-window to desktop */
    NULL, /* No menu */
    hThisInstance, /* Program Instance handler */
    NULL /* No Window Creation data */
    );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);
    SetWindowPos(hwnd,HWND_NOTOPMOST,0,Y-60,175,0,SWP_SHOWWINDOW);


    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
    /* Translate virtual-key messages into character messages */
    TranslateMessage(&messages);
    /* Send message to WindowProcedure */
    DispatchMessage(&messages);
    if (GetKeyState(VK_F10) & Mask)
    {
    if (active)
    {
    active=0;
    SetWindowPos(hwnd,HWND_NOTOPMOST,0,Y-60,175,0,SWP_SHOWWINDOW);
    }
    else
    {
    active=1;
    SetWindowPos(hwnd,HWND_TOPMOST,0,0,175,75,SWP_SHOWWINDOW);
    }
    Sleep(800);
    }

    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
    }


    /* This function is called by the Windows function DispatchMessage() */

    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (message) /* handle the messages */
    {
    case WM_DESTROY:
    PostQuitMessage (0); /* send a WM_QUIT to the message queue */
    break;
    default: /* for messages that we don't deal with */
    return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
    }
    ah oui aussi, comment on fait pour que l'aplication n'apparaise pas dans la barre de tache de window (a coter du menu demarer) ? quand l'aplication se minimiser elle se met en bas a gauche de l'ecran avec une taille minimal :

    merci de vos sugestion

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Bon voila j'ai presque fini
    (je suis un peu decu car j'ai pas recu beacoup d'aider alors que qqn m'avait dit que j'en recevrais tout plein ici :/
    enfin bref c'est pas grave et je tiens encore a remercier : Médinoc)


    sinon j'ai encore un tout petit probleme svp
    lorsque je travailler avec un fenetre ms-dos meme si la fenetre n'etait pas au premier plan elle pouvait recevoir une commande pour commencer l'execution (du genre F10) mais ca ne fonctione pas avec ma fenetre windows :/ si j'appui sur F10 mais que la fenetre n'est pas au premier plan -> mon execution ne demare pas


    HELP PLEASE

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    ok, JE CROIS QUE MAINTENANT C'EST MA TOUTE DERNIERE QUESTION :
    lorsque l'on cree une fenetre windows -> il y a automatiquement une icone qui apparait dans la barre de taches si l'aplication est lancer => comment ne pas faire apparaitre cette icone ?

    merci

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    tu crées une fenêtre invisible et tu passes son HWND au paramètre hWndParent de CreateWindow() quand tu crées ta fenêtre principale: Une fenêtre non-fille qui possède un parent n'a pas de bouton dans la barre des tâches. (Et si le parent est invisible, lui non-plus n'a pas de bouton --> Aucun bouton dans la barre des tâches)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    Je ne sais pas trop si ce comportement est "standard".
    Y'a pas d'icone si c'est une toolwindow, sinon tu peux la retirer
    http://www.developpez.net/forums/viewtopic.php?t=270399
    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
    bool HideAndShowWindow&#40; HWND hWnd &#41;
    &#123;    
        &#58;&#58;CoInitialize&#40; NULL &#41;;
    
        ITaskbarList *taskbar;
        HRESULT hr = &#58;&#58;CoCreateInstance&#40;
            CLSID_TaskbarList,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_ITaskbarList,
            reinterpret_cast<LPVOID*>&#40; &taskbar &#41; &#41;;
    
        if &#40; FAILED&#40; hr &#41; &#41;
        &#123;
            return false;
        &#125;
    
        if &#40; taskbar->HrInit&#40;&#41; != NOERROR &#41;
        &#123;
            taskbar->Release&#40;&#41;;
            &#58;&#58;CoUninitialize&#40;&#41;;
            return false;
        &#125;
    
        // masquer
        if &#40; taskbar->DeleteTab&#40; hWnd &#41; != NOERROR &#41;
        &#123;
            taskbar->Release&#40;&#41;;
            &#58;&#58;CoUninitialize&#40;&#41;;
            return false;
        &#125;
    
        &#58;&#58;Sleep&#40; 2000 &#41;;
    
        // montrer
        if &#40; taskbar->AddTab&#40; hWnd &#41; != NOERROR &#41;
        &#123;
            taskbar->Release&#40;&#41;;
            &#58;&#58;CoUninitialize&#40;&#41;;
            return false;
        &#125;
        &#58;&#58;Sleep&#40; 2000 &#41;;
    
        // activer
        if &#40; taskbar->ActivateTab&#40; hWnd &#41; != NOERROR &#41;
        &#123;
            taskbar->Release&#40;&#41;;
            &#58;&#58;CoUninitialize&#40;&#41;;
            return false;
        &#125;            
    
        taskbar->Release&#40;&#41;;
        &#58;&#58;CoUninitialize&#40;&#41;;
        return true;
    &#125;

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
          hwnd = CreateWindowEx &#40;
               WS_EX_TOOLWINDOW,        // ne cree pas d'icone dans la barre de tache  
               szClassName,      
               "AutoSkill",     
               WS_OVERLAPPEDWINDOW, 
               CW_USEDEFAULT,       
               CW_USEDEFAULT,     
               175,                
               0,                
               HWND_DESKTOP,                  
               NULL,              
               hThisInstance,      
               NULL             
               &#41;;
    voila il me suffisait de rajouter une ligne dans la declaration
    mon projet est presque fini et en principe je n'ai plus de question alors un tout grand merci à Médinoc & Aurelien.Regat-Barrel

Discussions similaires

  1. [PowerShell] Besoin d'aide pour listage des droits sur répertoire
    Par pastis 51 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 25/09/2013, 10h28
  2. Réponses: 6
    Dernier message: 24/04/2010, 18h49
  3. Besoin d'aide pour utilisation des trie
    Par bluecurve dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2005, 08h04
  4. [Persistance]Aide pour sauver des données en XML
    Par le Daoud dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/06/2005, 13h39
  5. [CR8.5] Aide pour lier des etats
    Par Silvinho42 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 28/04/2005, 10h11

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