社区
网络编程
帖子详情
快帮帮我!!如何实现在win98 and win2000下的远程关机??
Archerkids
2003-04-25 09:17:08
如何用vc实现在win98 and win2000下的远程关机和重启(可以在远程机上加载一定的程序,最好给出源代码)
...全文
39
8
打赏
收藏
快帮帮我!!如何实现在win98 and win2000下的远程关机??
如何用vc实现在win98 and win2000下的远程关机和重启(可以在远程机上加载一定的程序,最好给出源代码)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liangrq
2003-05-16
打赏
举报
回复
可以使用不InitiateSystemShutdown在NT和2000下关机,98和me没机器试。
guoyin
2003-04-26
打赏
举报
回复
BOOL WINAPI PL_ExitWindow(UINT uFlag)
{
HANDLE hToken = NULL;
TOKEN_PRIVILEGES tkp;
BOOL fResult = FALSE;
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
if(LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid))
{
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0))
{
return ::ExitWindowsEx(uFlag, 0);
}
}
}
return ::ExitWindowsEx(uFlag, 0);
}
void CShutDownDlg::OnOK()
{
OSVERSIONINFO ver;
ZeroMemory(&ver, sizeof(OSVERSIONINFO));
ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&ver);
int nID = GetCheckedRadioButton(IDC_RADIO_LOGOFF, IDC_RADIO_SHUTDOWN);
BOOL bForce = ((CButton*)GetDlgItem(IDC_CHECK_FORCE))->GetCheck();
int nSel = nID - IDC_RADIO_LOGOFF;
UINT uFlag = bForce ? EWX_FORCE : 0;
switch(nSel)
{
case 0:
uFlag |= EWX_LOGOFF;
break ;
case 1:
uFlag |= EWX_REBOOT;
break ;
case 2:
{
if(ver.dwMajorVersion <= 4)
{
uFlag |= EWX_SHUTDOWN;
}
else
{
uFlag |= (EWX_SHUTDOWN | EWX_POWEROFF);
}
}
break ;
}
CDialog::OnOK();
PL_ExitWindow(uFlag);
}
Archerkids
2003-04-26
打赏
举报
回复
那,2000 or NT该怎么做??
qiufuwang
2003-04-26
打赏
举报
回复
up
etboy327
2003-04-25
打赏
举报
回复
必须在远程机上加载一定的程序。
1。对于98,简单! ExitWindowsEx(具体参数); 就ok了。
当然你要建立一个侦听的SOCKET,收到信息进行判断,决定是否关机,不要告诉我
你不懂网络编程。
2。对于2000,首先要获得关机的权限,不然你只能做到注销。
代码如下:
static HANDLE hToken;
static TOKEN_PRIVILEGES tp;
static LUID luid;
OpenProcessToken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ;
LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME, &luid );
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL );
然后就和98一样了。
BTW,哥们,你给的分少了点吧!
shilong
2003-04-25
打赏
举报
回复
InitiateSystemShutdown不支持95,98,ME
Archerkids
2003-04-25
打赏
举报
回复
用InitiateSystemShutdown实现??
Archerkids
2003-04-25
打赏
举报
回复
我的意思是想用SE_RAMOTE_SHUTDOWN_NAME不需要SOCKET即可以实现的!!再帮帮我吧多谢!!
WEB开发文档2 总结
转自:http://blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在内存中的图象显示到客户端Microsoft IE WebControls下载地址如何在DATAGRID中使用JAVASCRIPT脚本控制DataGrid中连接到下一页显示数据下载中文名文件时保存文件名乱码问题关于用ASP.net绘图的问题,请大虾指教那
SCO FAQ2
Q:我在REALTEK网站上下载了8139 FOR SCO 5.0.X的驱动,安装后配置NETCONFIG,
但是怎么也不能上网,怎么样判断我安装的驱动是正确的呢?我PING 127.0.0.1是**的,
但ping 手工分配的IP 192.168.15.18却不行,这表示我的驱动没有安装正确吧?。我的计
算机是在VLAN中的,还应该配置一个网关,不知道怎么样配置呀?(如我将SCO的计算机分 配一个静态IP为192.168.15.18 还应配置一个
600个问与答
http://faq.xunweb.org/itfaq/mfcbasic/ 怎样彻底结束一个线程?(2006-06-04) v怎么样以纯idispatch方式而不是引入类型库的方法调...
SCO UNIX 一些经验(转)
SCO UNIX 一些经验(转)[@more@]其实这些在坛子里搜一下者找得到的,不过闲来没事还是整理了一下贴出来,(昨天的贴子内容都 有一部分)希望对初学者能有所帮助和启发。都是以Q: A:的形式贴出来的,其中也有很少一点是自...
VxWorks FAQ 中文版
前言(Surface): 随着国内使用VxWorks的用户越来越多,为了方便VxWorkers少走一些弯路,特别推出了中文FAQ,其中 很多的FAQ来自comp.os.vxworks和原创。(很多FAQ都可以在该新闻组找到英文版) 文档的FAQ总共分为7大类: 1.入门F
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章