Salam
j'ai trouvé un code pour un programme qui install un hokk de clavier pour empecher la touche imprimer ecran.
Mais je compile le programme cela ne marche pas il ne me donne rien, aidez moi s'il vous plait .
voila le code :
la DLL :
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
61
62
63
64
65
66
67
#include <windows.h>
#define WH_KEYBOARD_LL     13
/*
typedef struct &#123;
    DWORD vkCode;
    DWORD scanCode;
    DWORD flags;
    DWORD time;
    ULONG_PTR dwExtraInfo;
&#125; KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; */

HINSTANCE moduleCourant;
HHOOK hookClavier;

LRESULT CALLBACK fonctionIntercepteClavierLowLevel &#40;int nCode, WPARAM wParam, LPARAM lParam&#41;
&#123;
        MessageBox&#40;NULL,"func",0,0 &#41;;
    if&#40;nCode == HC_ACTION&#41;
    &#123;
        KBDLLHOOKSTRUCT kbStruct = *&#40;&#40;KBDLLHOOKSTRUCT *&#41;lParam&#41;;
        switch&#40;wParam&#41;
        &#123;
            case WM_KEYDOWN&#58;
                if &#40;kbStruct.vkCode == VK_LWIN || kbStruct.vkCode == VK_RWIN&#41; // bloque touches windows
                    return 1;
                if &#40;kbStruct.vkCode == VK_ESCAPE && GetAsyncKeyState&#40;VK_CONTROL&#41;&#41; // bloque control+echap
                        return 1;
                if &#40;kbStruct.vkCode == VK_SNAPSHOT&#41; // bloque impr écran
                   return 1;
        &#125;
    &#125;
    return CallNextHookEx&#40;hookClavier, nCode, wParam, lParam&#41;;
&#125;

extern "C" __declspec&#40;dllexport&#41; int installeLeHookClavier&#40;&#41;
&#123;
    if&#40; !hookClavier &#41;
    &#123;
         MessageBox&#40;NULL,"install",0,0 &#41;;
        hookClavier  = SetWindowsHookEx&#40;WH_KEYBOARD_LL, fonctionIntercepteClavierLowLevel, moduleCourant, 0&#41;;
    &#125;
    return &#40;int&#41; hookClavier;
&#125;

extern "C" __declspec&#40;dllexport&#41; void ArreteLeHookClavier&#40;&#41;
&#123;
        MessageBox&#40;NULL,"arret",0,0 &#41;;
    if&#40;hookClavier&#41;
    &#123;
                  
        UnhookWindowsHookEx&#40;hookClavier&#41;;
        hookClavier = 0;
    &#125;
&#125;

BOOL WINAPI DllMain &#40;HINSTANCE hDll, DWORD dwReason, LPVOID Reserved&#41;
&#123;
    if &#40;dwReason == DLL_PROCESS_ATTACH&#41;
    &#123;
        moduleCourant = hDll;
    &#125;
    if &#40;dwReason == DLL_PROCESS_DETACH&#41;
    &#123;
        ArreteLeHookClavier&#40;&#41;;
    &#125;
    return 1;
&#125;
Le programme main :
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
#include <windows.h>
#include "resource.h"

#pragma comment&#40; lib, "hookToucheWindowsDll.lib" &#41;

//extern "C" int __stdcall installeLeHookClavier&#40;&#41;;

//extern "C" void __stdcall ArreteLeHookClavier&#40;&#41;;
typedef void &#40;*TEndFunc&#41;&#40;&#41;;
TEndFunc installeLeHookClavier;
TEndFunc ArreteLeHookClavier;
HINSTANCE hinstDLL;

int WINAPI WinMain&#40;HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow&#41;
&#123;
    hinstDLL = LoadLibrary&#40;"hook.dll"&#41;;
    installeLeHookClavier=&#40;TEndFunc&#41;GetProcAddress&#40;hinstDLL, "installeLeHookClavier"&#41;;
    ArreteLeHookClavier=&#40;TEndFunc&#41;GetProcAddress&#40;hinstDLL, "ArreteLeHookClavier"&#41;;
    installeLeHookClavier&#40;&#41;;
    Sleep&#40;60000&#41;;
    ArreteLeHookClavier&#40;&#41;;
    return 1;
&#125;
Merci d'avance.