Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[WinApi, C++] Blokowanie Shutdown

Ostatnio zmodyfikowano 2017-05-17 22:27
Autor Wiadomość
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ś:

C/C++
#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
P-161227
jankowalski25
» 2017-05-17 19:29:35
[MSDN] ShutdownBlockReasonCreate

Requirements

Minimum supported clientWindows Vista (desktop apps only)
Minimum supported serverWindows Server 2008 (desktop apps only)

[MSDN] Modifying WINVER and _WIN32_WINNT
C/C++
#define _WIN32_WINNT_WIN2K 0x0500 //Windows 2000

Dopisano:
#include <Winuser.h>
Dlaczego? Przecież wystarczy
#include <windows.h>
, co masz wyraźnie napisane we wskazanej tabelce.
P-161232
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()
P-161234
pekfos
» 2017-05-17 21:22:17
Zmień na 0x0600.
P-161235
jasiek1309
Temat założony przez niniejszego użytkownika
» 2017-05-17 21:24:51
dalej to samo :/
P-161236
killjoy
» 2017-05-17 21:42:31
Zawsze można na około:
C/C++
#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;
}
P-161237
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
P-161239
« 1 »
  Strona 1 z 1