ckmarkhsu 7 發表於 April 5, 2005 檢舉 Share 發表於 April 5, 2005 印象中用API可以做到關閉程式我晚點幫你翻一下書....不過其他控制就不太可能除非那個程式有提供自己的API供你使用不然很難... 鏈接文章 分享到其他網站
語易奇 10 發表於 April 6, 2005 檢舉 Share 發表於 April 6, 2005 最初由 ckmarkhsu 發表剛剛去查 應該是不行 控制命令提示字元,自動輸入 shutdown 輸入能嗎?shutdown 好像還有一個參數,可以設定幾秒後關機... 鏈接文章 分享到其他網站
ckmarkhsu 7 發表於 April 6, 2005 檢舉 Share 發表於 April 6, 2005 我看錯問題了我以為是"自動關閉程式"原來是關機Orz那可以做到 方法 還是晚點在查XD 鏈接文章 分享到其他網站
極‧KID 11 發表於 April 6, 2005 檢舉 Share 發表於 April 6, 2005 自動關機...寫個控制滑鼠命令的程式不就得了...只要加上時間設定...到了時間就自動按開始→關機... 鏈接文章 分享到其他網站
ckmarkhsu 7 發表於 April 6, 2005 檢舉 Share 發表於 April 6, 2005 WIN9x系列比較容易解決 winNT系列我找到的資料是這樣http://www.hosp.ncku.edu.tw/~cww/htmapi19.htm如何讓 Windows(95 及 NT) 重新開機?原始來源:王國榮Windows 95 重新開機十分簡單,只要呼叫 ExitWindowsEx API 函數就可以了, 例如: API 宣告式: Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long , _ ByVal dwReserved As Long) As Long Private Enum HowExitConst EWX_LOGOFF = 0 ' 登出 EWX_REBOOT = 2 ' 重開機 EWX_SHUTDOWN = 1 ' 關機 EWX_FORCE = 4 ' 強制關機 End Enum 呼叫敘述: Call ExitWindowsEx(how, 0) ' how 等於 EWX_LOGOFF 、 EWX_REBOOT 、EWX_SHUTDOWN 、 或EWX_FORCE但是這個方法並不能對 NT 關機或重新開機, 原因是 NT 比較著重安全性(Security),而為了讓 NT 關機或重新開機, 則必須在呼叫 ExitWindowsEx 之前, 呼叫AdjustToken 副程式就對了。AdjustToken 副程式的細節如下:1. API 的宣告: Enum HowExitConst EWX_FORCE = 4 ' 強制關機 EWX_LOGOFF = 0 ' 登出 EWX_REBOOT = 2 ' 重開機 EWX_SHUTDOWN = 1 ' 關機 End Enum Const TOKEN_ADJUST_PRIVILEGES = &H20 Const TOKEN_QUERY = &H8 Const SE_PRIVILEGE_ENABLED = &H2 Const ANYSIZE_ARRAY = 1 Private Type LUID lowpart As Long highpart As Long End Type Private Type LUID_AND_ATTRIBUTES pLuid As LUID Attributes As Long End Type Private Type TOKEN_PRIVILEGES PrivilegeCount As Long Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES End Type Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _ ByVal dwReserved As Long) As Long Private Declare Function GetCurrentProcess Lib "kernel32" () As Long Private Declare Function LookupPrivilegeValue Lib"advapi32.dll" Alias _ "LookupPrivilegeValueA" (ByVal lpSystemName As String, _ ByVal lpName As String, lpLuid As LUID) As Long Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" _ (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, _ NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, _ PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long Private Declare Function OpenProcessToken Lib "advapi32.dll" _ (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _ TokenHandle As Long) As Long2. AdjustToken 副程式:Private Sub AdjustToken() Dim hdlProcessHandle As Long Dim hdlTokenHandle As Long Dim tmpLuid As LUID Dim tkp As TOKEN_PRIVILEGES Dim tkpNewButIgnored As TOKEN_PRIVILEGES Dim lBufferNeeded As Long hdlProcessHandle = GetCurrentProcess() OpenProcessToken hdlProcessHandle,(TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY), _ hdlTokenHandle 'Get the LUID for shutdown privilege. LookupPrivilegeValue "","SeShutdownPrivilege", tmpLuid tkp.PrivilegeCount = 1 ' One privilege to set tkp.Privileges(0).pLuid = tmpLuid tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED 'Enable the shutdown privilege in the access token of this process. AdjustTokenPrivileges hdlTokenHandle, False, tkp, Len(tkpNewButIgnored), _ tkpNewButIgnored, lBufferNeededEnd Sub3. 呼叫的範例: AdjustToken Call ExitWindowsEx(how, 0) 'how 等於 EWX_LOGOFF 、 EWX_REBOOT 、 EWX_SHUTDOWN、 或EWX_FORCE在 Windows 95 底下呼叫了 AdjustToken 也沒關係,因為 Windows 95 並不會理會安全性的設定。 鏈接文章 分享到其他網站
jimmykuo 10 發表於 April 6, 2005 作者 檢舉 Share 發表於 April 6, 2005 謝摟~有了這個我的惡作劇程式能更上一城樓@@"(開玩笑的) 鏈接文章 分享到其他網站
Recommended Posts
請登入後來留意見
在登入之後,您才能留意見
立即登入