作者 主題: 如何讓Windows 2000定時重開機?  (閱讀 4001 次)

0 會員 與 1 訪客 正在閱讀本文。

myz

  • 活潑的大學生
  • ***
  • 文章數: 433
    • 檢視個人資料
如何讓Windows 2000定時重開機?
« 於: 2002-09-12 03:13 »
如何讓Windows 2000定時重開機?
不知道要執行哪個程式能讓windows 2000執行重新開機指令,

我知道 c:>rundll32.exe user32.dll,LockWorkStation能鎖住工作站,
不知道有沒有類似的指令參數能在命令狀態下達指令方式重新開機??

thanks.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5409
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
如何讓Windows 2000定時重開機?
« 回覆 #1 於: 2002-09-12 09:04 »
內定的指令不清楚... 不過如果有 c compiler, 可以自已寫一個來用.

代碼: [選擇]

#include <windows.h>

#pragma comment(lib, "advapi32.lib")
#pragma comment(lib, "user32.lib")

int main(int argc, char *argv[])
{
    HANDLE hToken;
    LUID luid;
    TOKEN_PRIVILEGES tkp;
    int flag;

    if (argc != 2 && argc != 3) {
        printf("syntax: ExitWin <logoff | poweroff | shutdown | reboot> [force]\n");
        return 0;
    }

    if (stricmp(argv[1], "logoff") == 0)
        flag = EWX_LOGOFF;
    else if (stricmp(argv[1], "poweroff") == 0)
        flag = EWX_POWEROFF;
    else if (stricmp(argv[1], "shutdown") == 0)
        flag = EWX_SHUTDOWN;
    else if (stricmp(argv[1], "reboot") == 0)
        flag = EWX_REBOOT;
    else {
        printf("syntax: ExitWin <logoff | poweroff | shutdown | reboot> [force]\n");
        return 0;
    }

    if (argc == 3) {
        if (stricmp(argv[2], "force") == 0)
            flag |= EWX_FORCE;
        else {
            printf("syntax: ExitWin <logoff | poweroff | shutdown | reboot> [force]\n");
            return 0;
        }
    }

    //
    // Retrieve a handle of the access token
    //
    OpenProcessToken(GetCurrentProcess(),
        TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);

    //
    // Enable the SE_SHUTDOWN_NAME privilege
    //
    LookupPrivilegeValue((LPSTR) NULL, SE_SHUTDOWN_NAME, &luid);

    tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Luid = luid;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

    AdjustTokenPrivileges(hToken,
        FALSE,
        &tkp,
        sizeof(TOKEN_PRIVILEGES),
        (PTOKEN_PRIVILEGES) NULL,
        (PDWORD) NULL);

    ExitWindowsEx(flag, 0);
    return 0;
}

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
如何讓Windows 2000定時重開機?
« 回覆 #2 於: 2002-09-12 09:17 »
放在batch file在"排定的工作"可以嗎?

yousee

  • 訪客