warning C4390: ';' : Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt



  • HANDLE hToken;
       TOKEN_PRIVILEGES tkp;
       if (!OpenProcessToken(GetCurrentProcess(),
       TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken));
       LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); // warning C4390: ';' : Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
       tkp.PrivilegeCount = 1;
       tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
       AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
       (PTOKEN_PRIVILEGES)NULL, 0);
       if (GetLastError() != ERROR_SUCCESS);
       if (!ExitWindowsEx(EWX_SHUTDOWN, 0)); // warning C4390: ';' : Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
    
    // Windows 2000/NT/XP Runterfahren
    /////////////////////////////////////////////////////////
    
       ExitWindowsEx(EWX_SHUTDOWN,0); // warning C4390: ';' : Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
    
    // Windows 95/98/ME Runterfahren
    /////////////////////////////////////////////////////////
    

    Warum bekomme ich an diesen Stellen fehler?



  • eine If setzte eine Anweisung **voraus
    Die Strucktur ist

    if (!ExitWindowsEx(EWX_SHUTDOWN, 0))
    {
    }

    Bitte das ; entfernen es heißt nicht
    if (!ExitWindowsEx(EWX_SHUTDOWN, 0));
    sondern
    if (!ExitWindowsEx(EWX_SHUTDOWN, 0))

    Ein ; am ende ignoriert zwar nicht die Anweisung
    wird aber dennoch nicht sauber ausgeführt

    Vossy**



  • So jetz sind es noch 2 warnungen:

    HANDLE hToken;
       TOKEN_PRIVILEGES tkp;
       if (!OpenProcessToken(GetCurrentProcess(),
       TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken));
       LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); // warning C4390: ';' : Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
       tkp.PrivilegeCount = 1;
       tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
       AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
       (PTOKEN_PRIVILEGES)NULL, 0);
       if (GetLastError() != ERROR_SUCCESS);
       if (!ExitWindowsEx(EWX_SHUTDOWN, 0)) // warning C4390: ';' : Leere kontrollierte Anweisung aufgetreten; ist dies beabsichtigt?
    
    // Windows 2000/NT/XP Runterfahren
    /////////////////////////////////////////////////////////
    
       ExitWindowsEx(EWX_SHUTDOWN,0);
    
    // Windows 95/98/ME Runterfahren
    /////////////////////////////////////////////////////////
    


  • HANDLE hToken;
       TOKEN_PRIVILEGES tkp;
       if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
       LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
       tkp.PrivilegeCount = 1;
       tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
       AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
       (PTOKEN_PRIVILEGES)NULL, 0);
       if (GetLastError() != ERROR_SUCCESS)
       if (!ExitWindowsEx(EWX_SHUTDOWN, 0))
    

    So habe ich keine fehler möchte jetz aber nich neustarten müste aber so gehen oder?



  • nein jetz fahrt er nicht runter aber ich weis nich warum?



  • HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
    LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
    if (GetLastError() == ERROR_SUCCESS)
    { if(ExitWindowsEx(uFlags , 0)) return true;
    }
    return false;



  • Die Anfrage ist zwar schon eine Weile her, aber so gehts

    [cpp]
    HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
    LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
    if (GetLastError() == ERROR_SUCCESS)
    { if(ExitWindowsEx(uFlags , 0)) return true;
    }
    return false;


Anmelden zum Antworten