Gå til innhold

Knapp -> skjerm av/på


Anbefalte innlegg

Videoannonse
Annonse

Sett sammen denne med koden for å slå skjermen av og på.

 

#include <windows.h>

#define SB_EVENT_HOTKEY_REMOTE 0
#define SB_EVENT_HOTKEY_KEYBOARD 1


/*  This function is called by the Windows function DispatchMessage()  */
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
 switch (message) {
   case WM_HOTKEY:
     if (wParam == SB_EVENT_HOTKEY_REMOTE || wParam == SB_EVENT_HOTKEY_KEYBOARD) {
       MessageBox(0, "Wow!", "", 0);
     }
     break;
   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;
}

HWND Window(HINSTANCE hThisInstance, int nCmdShow) {
 HWND hwnd;               /* This is the handle for our window */
 WNDCLASSEX wincl;        /* Data structure for the windowclass */
 char szClassName[ ] = "SkyCalc";

 /* 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;

 /* 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 */
        "Windows App",       /* Title Text */
        WS_OVERLAPPEDWINDOW, /* default window */
        CW_USEDEFAULT,       /* Windows decides the position */
        CW_USEDEFAULT,       /* where the window ends up on the screen */
        544,                 /* The programs width */
        375,                 /* 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, nCmdShow);
 return hwnd;
}

int Loop() {
 MSG messages;            /* Here messages to the application are saved */
   /* 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);
 }
   /* The program return-value is 0 - The value that PostQuitMessage() gave */
 return messages.wParam;
}

int Gui(HINSTANCE hThisInstance, int nCmdShow) {
 HWND hWnd;
 hWnd = Window(hThisInstance, nCmdShow);
 // Sleep button / remote control
 if (RegisterHotKey(hWnd, SB_EVENT_HOTKEY_REMOTE, 0, VK_SLEEP) == 0) {
   return GetLastError();
 }
 // Ctrl + Win + Alt + M
 if (RegisterHotKey(hWnd, SB_EVENT_HOTKEY_KEYBOARD, MOD_CONTROL | MOD_ALT | MOD_WIN, 'M') == 0) {
   return GetLastError();
 }
 if (hWnd) {
   return Loop();
 }
}

// Main
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
 LPSTR lpszArgument, int nCmdShow) {
 return Gui(hThisInstance, nCmdShow);
}

Lenke til kommentar
Det hjelper nok ikke hvor mye han leter. Den koden kommer ikke til å kompilere hvis ikke main returnerer int istedenfor void.

5868551[/snapback]

 

My bad.

 

Tok det for gitt at han hadde endret void main til int main, og bare satt igjen med Warning:...

 

Siden det bare er to feil i listen, og trådstarter har studert programmering i to år, så mener jeg det er en berettiget antagelse.

 

Men men...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...