亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1315 | 回復(fù): 0
打印 上一主題 下一主題

急!】vc++6.0的程序通過(guò)kernel-win32在linux下運(yùn)行,卻無(wú)法在程序中關(guān)機(jī),怎么辦? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-04-08 22:38 |只看該作者 |倒序?yàn)g覽
vc++6.0下采用了兩種windows的關(guān)機(jī)的代碼(附在后面),均可以在win2000下順利關(guān)機(jī)。
但把程序的可執(zhí)行文件(f.exe)拷貝到linux下通過(guò)kernel-win32來(lái)執(zhí)行,卻不能關(guān)機(jī)(雖然程序中的其他功能可以實(shí)現(xiàn))。當(dāng)程序運(yùn)行到關(guān)機(jī)的那些代碼時(shí),只是簡(jiǎn)單的關(guān)閉當(dāng)前的應(yīng)用程序窗口。
現(xiàn)在的問(wèn)題是:
1。windows下還有沒(méi)有其他的“實(shí)現(xiàn)關(guān)機(jī)功能的代碼”?也許那些代碼可以在kernel-win32下關(guān)閉計(jì)算機(jī)
2。有沒(méi)有其他的辦法實(shí)現(xiàn)如下功能:在vc6程序中編程,轉(zhuǎn)到linux下關(guān)機(jī)
3. 腦子里有一個(gè)思路但不知怎么實(shí)現(xiàn),請(qǐng)高手指點(diǎn)一二,謝謝。
   思路如下:在linux下編寫一個(gè)程序a,a實(shí)現(xiàn)功能如下:
  (1)調(diào)用通過(guò)kernel-win32調(diào)用我的vc下的可執(zhí)行程序f.exe(這個(gè)步驟已經(jīng)實(shí)現(xiàn)了)
  (2)當(dāng)f.exe退出后,調(diào)用linux下關(guān)機(jī)的命令(如:system("sudo halt -f -p")),但這樣帶來(lái)的問(wèn)題是需要輸入超級(jí)用戶的密碼。

   對(duì)于步驟(2)的要求是:(a)已經(jīng)知道超級(jí)用戶的密碼,(b)但不能出現(xiàn)輸入密碼的過(guò)程(希望輸入密碼的過(guò)程由自己編程序來(lái)自動(dòng)完成)

//.........程序中的2種關(guān)機(jī)代碼如下.....
bool MySystemShutDown1()
{
        HANDLE hToken;
        TOKEN_PRIVILEGES tkp;

        // Get a token for this process.

        if (!OpenProcessToken(GetCurrentProcess(),
        TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
                return( FALSE );

        // Get the LUID for the shutdown privilege.

        LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
        &tkp.Privileges[0].Luid);

        tkp.PrivilegeCount = 1; // one privilege to set
        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

        // Get the shutdown privilege for this process.

        AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
        (PTOKEN_PRIVILEGES)NULL, 0);

        if (GetLastError() != ERROR_SUCCESS)
                return FALSE;

        // Shut down the system and force all applications to close.

        if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
                return FALSE;

        return TRUE;
}
//.............
void MySystemShutDown2()
{
                // TODO: Add your control notification handler code here
        OSVERSIONINFO OsInfo;
        OsInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
        GetVersionEx(&OsInfo);

        if(OsInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
        {
                HANDLE hToken;
                TOKEN_PRIVILEGES tkp;
                if(!OpenProcessToken(GetCurrentProcess(),
                        TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
                {
                        //MessageBox("");
                        return;
                }
                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)
                {
                        //MessageBox("");
                        return;
                }
                if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0))
                {
                        //MessageBox("");
                }
        }

}
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP