[WinApi, C++] Blokowanie Shutdown
Ostatnio zmodyfikowano 2017-05-17 22:27
jasiek1309 Temat założony przez niniejszego użytkownika |
[WinApi, C++] Blokowanie Shutdown » 2017-05-17 18:03:49 Witam, chcę zablokować shutdown w komputerze więc stworzyłem takie coś: #define _WIN32_WINNT 0x0500 #include <Windows.h> #include <Winuser.h> #include <iostream>
int main() { HWND win = GetConsoleWindow(); ShutdownBlockReasonCreate( win, "Bo nie" ); while( true ) Sleep( 10000 ); return 0; }
Z tym że jest mały problem: 'ShutdownBlockReasonCreate' was not declared in this scope Używam Code Block. Nie wiem czy jest to dobrze napisane bo słabo znam WinApi, więc jeśli ktoś ma jakiś pomysł co z tym zrobić to będę wdzięczny ;D |
|
jankowalski25 |
» 2017-05-17 19:29:35 |
|
jasiek1309 Temat założony przez niniejszego użytkownika |
» 2017-05-17 21:06:05 #define _WIN32_WINNT 0x0500 jest po to by GetConsoleWindow() działało i jak to usunę to obie funkcje nie działają #include <winuser.h> jest tak dla pewności że wszystko jest :p a i tak mi nie deklaruje tego ShutdownBlockReasonCreate() |
|
pekfos |
» 2017-05-17 21:22:17 Zmień na 0x0600. |
|
jasiek1309 Temat założony przez niniejszego użytkownika |
» 2017-05-17 21:24:51 dalej to samo :/ |
|
killjoy |
» 2017-05-17 21:42:31 Zawsze można na około: #define _WIN32_WINNT 0x0500 #include <Windows.h> #include <iostream> using namespace std;
typedef BOOL( WINAPI * ShutdownBlockReasonCreateD )( HWND hWnd, LPCWSTR pwszReason );
ShutdownBlockReasonCreateD ShutdownBlockReasonCreate;
int main() { HWND win = GetConsoleWindow(); HMODULE hUser32 = LoadLibrary( "User32.dll" ); ShutdownBlockReasonCreate =( ShutdownBlockReasonCreateD ) GetProcAddress( hUser32, "ShutdownBlockReasonCreate" ); cout << "ShutdownBlockReasonCreate addr: " <<( void * ) ShutdownBlockReasonCreate << endl; if( ShutdownBlockReasonCreate == NULL ) { cout << "Cannot find specified function!" << endl; return 1; } BOOL success = ShutdownBlockReasonCreate( win, L"bo tak" ); DWORD LE = GetLastError(); if( !success ) { cout << "ShutdownBlockReasonCreate failed LE:" << LE << endl; return 2; } else cout << "ShutdownBlockReasonCreate succeed!" << endl; while( true ) Sleep( 10000 ); return 0; }
|
|
jasiek1309 Temat założony przez niniejszego użytkownika |
» 2017-05-17 22:27:01 "Na około" ale działa XD Dzięki wielkie :D |
|
« 1 » |