Gå til innhold

Knapp -> skjerm av/på


Anbefalte innlegg

Skrevet
Men når eg skal kopliere, kjem waningen opp. Eg brukar Dev-C++.

5864489[/snapback]

 

Hva med å ikke bry seg om dem? Hvis du tar en titt i mappen der du lager programmet ditt finner du .exe filen. Det er bare Dev-C++ som liker å gi deg advarsler....

Videoannonse
Annonse
Skrevet

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);
}

Skrevet (endret)
Let bedre, eller slå opp i manualen til Dev-C++..

5867874[/snapback]

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

Endret av tsg1zzn
Skrevet

Jeg har ikke sett gjennom noen kode, men om han bare får en warning, så blir han nødt til å gjøre det jo... Warnings er bare warnings på samme måte som at errors er errors.

Skrevet
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...

Skrevet

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.

 

5870788[/snapback]

 

:thumbup:

 

 

Har trådstarter hatt noen suksess med prosjektet?

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å
×
×
  • Opprett ny...