如何制作自动关机程序?
就是我有个同学的朋友,她制作了一个程序,别人一运行,如果在10秒之内不输入“我是一只猪”就会自动关机。怎么做啊?用VB可以吗...
就是我有个同学的朋友,她制作了一个程序,别人一运行,如果在10秒之内不输入“我是一只猪”就会自动关机。怎么做啊?用VB可以吗
展开
展开全部
我这里有一段代码,去年写的。。希望对你有帮助。。。
//调整进程令牌特权,提权
VOID AdJustTokenPrivilege()
{
TOKEN_PRIVILEGES tkp;
HANDLE hToken;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
MessageBox(NULL,TEXT("打开进程令牌失败!"),TEXT("错误"),MB_OK|MB_ICONHAND);
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(NULL,TEXT("令牌使能操作失败!"),TEXT(""),MB_OK|MB_ICONHAND);
return;
}
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_BCWD:
{
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
}
break;
case IDC_BSD:
{
int ret=MessageBox(hwnd,TEXT("是否重启计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_REBOOT,0);
}
if(IDNO==ret)
{
return;
}
}
case IDC_BZX:
{
int ret=MessageBox(hwnd,TEXT("是否注销计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_LOGOFF,0);
}
if(IDNO==ret)
{
return;
}
}
break;
break;
default:
break;
}
}
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
//调整进程令牌特权,提权
VOID AdJustTokenPrivilege()
{
TOKEN_PRIVILEGES tkp;
HANDLE hToken;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
MessageBox(NULL,TEXT("打开进程令牌失败!"),TEXT("错误"),MB_OK|MB_ICONHAND);
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(NULL,TEXT("令牌使能操作失败!"),TEXT(""),MB_OK|MB_ICONHAND);
return;
}
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_BCWD:
{
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2);
}
break;
case IDC_BSD:
{
int ret=MessageBox(hwnd,TEXT("是否重启计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_REBOOT,0);
}
if(IDNO==ret)
{
return;
}
}
case IDC_BZX:
{
int ret=MessageBox(hwnd,TEXT("是否注销计算机?"),TEXT("警告"),MB_YESNO|MB_ICONHAND);
if(IDYES==ret)
{
AdJustTokenPrivilege();
ExitWindowsEx(EWX_LOGOFF,0);
}
if(IDNO==ret)
{
return;
}
}
break;
break;
default:
break;
}
}
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
深圳市容大彩晶科技有限公司
2024-11-15 广告
2024-11-15 广告
广告机代理优选容大彩晶,深圳市容大彩晶科技有限公司自2007年成立伊始,一直专注于液晶商用显示产品的技术研发及产品服务。公司依托具有自主研发能力、创新高效的技术团队,打造出行业优质商用液晶显示设备。容大彩晶产品涵盖商用液晶显示、多媒体广告机...
点击进入详情页
本回答由深圳市容大彩晶科技有限公司提供
2011-04-04
展开全部
Private Declare Function icePub_shutdown Lib "icePubDll.dll" () As Integer
Private Sub Form_Load()
Timer1.Interval = 1000 * 10
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim a2 As Integer
If Text1.Text<> "我是一只猪" Then
a2 = icePub_shutdown()
End If
Timer1.Enabled = False
End Sub
'download
http://dl.icese.net/dev.php?f=icePubDll.rar
Private Sub Form_Load()
Timer1.Interval = 1000 * 10
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim a2 As Integer
If Text1.Text<> "我是一只猪" Then
a2 = icePub_shutdown()
End If
Timer1.Enabled = False
End Sub
'download
http://dl.icese.net/dev.php?f=icePubDll.rar
参考资料: http://wenku.baidu.com/album/view/c56655bfc77da26925c5b0a4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询