|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1262
|
[C/C++]modifica data windows xp
esiste un modo x poter sapere se la data del pc viene modificata?
ho un programma che usa una funzione in c per acquisire la data dal pc, se pero viene modificata la data nel pc (manualmente) mi sfasa tutto, quindi dovrei sapere qnd la data viene cambiata, oppure usare un'altra data (escludiamo quelle via internet). grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
WM_TIMECHANGE, ma la documentazione non è molto chiara... non si capisce se viene inviato a tutte le finestre
|
|
|
|
|
|
#3 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
saranno solo le top-level penso, di solito per i messaggi broadcast è così. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Ma ciuerto, intendevo tutte le finestre top level
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1262
|
in ke senso nn a tutte le finestre?
io ho provato ad inserire questo nel mio programma if((WindowProcedure( hwnd, WM_TIMECHANGE, 0,0))==NULL) return 0; ma nn accade nulla se cambio la data |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Quote:
Codice:
#include <windows.h>
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
char szClassName[ ] = "CodeBlocksWindowsApp";
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
if (!RegisterClassEx (&wincl))
return 0;
hwnd = CreateWindowEx (
0, /* Extended possibilites for variation */
szClassName, /* Classname */
"Code::Blocks Template 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 */
);
ShowWindow (hwnd, nCmdShow);
while (GetMessage (&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_TIMECHANGE:
MessageBox(hwnd, "Il tempo è cambiato!", 0,0);
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1262
|
ah ok...era piu semplice del previsto:P
grazie mille (non palleggio ancora bene la gestione dei messaggi) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:46.




















