| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 933 人关注过本帖
标题:在c#中怎样实现开机关机
只看楼主 加入收藏
spygk
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-3-19
收藏
 问题点数:0 回复次数:4 
在c#中怎样实现开机关机
那位大侠知道赶快说说
搜索更多相关主题的帖子: 开机 
2005-07-17 10:51
程序人
Rank: 2
等 级:新手上路
威 望:3
帖 子:195
专家分:0
注 册:2005-4-5
收藏
得分:0 
你可以在百度上搜索一下,有原代码的!!

洒家靠!悟空:我给你说过N遍了,叫你不要说我帅!虽然我承认我很帅!!
2005-07-17 12:48
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
收藏
得分:0 
郁闷,还是得来API
以下是引用eastsnake在2005-4-25 9:17:09的发言:

using System; using System.Runtime.InteropServices; class shoutdown{ [StructLayout(LayoutKind.Sequential, Pack=1)] internal struct TokPriv1Luid { public int Count; public long Luid; public int Attr; }

[DllImport("kernel32.dll", ExactSpelling=true)] internal static extern IntPtr GetCurrentProcess();

[DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true)] internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);

[DllImport("advapi32.dll", SetLastError=true)] internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid);

[DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true)] internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);

[DllImport("user32.dll", ExactSpelling=true, SetLastError=true)] internal static extern bool ExitWindowsEx(int flg, int rea);

internal const int SE_PRIVILEGE_ENABLED = 0x00000002; internal const int TOKEN_QUERY = 0x00000008; internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; internal const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; internal const int EWX_LOGOFF = 0x00000000; internal const int EWX_SHUTDOWN = 0x00000001; internal const int EWX_REBOOT = 0x00000002; internal const int EWX_FORCE = 0x00000004; internal const int EWX_POWEROFF = 0x00000008; internal const int EWX_FORCEIFHUNG = 0x00000010;

private static void DoExitWin(int flg) { bool ok; TokPriv1Luid tp; IntPtr hproc = GetCurrentProcess(); IntPtr htok = IntPtr.Zero; ok = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, ref htok); tp.Count = 1; tp.Luid = 0; tp.Attr = SE_PRIVILEGE_ENABLED; ok = LookupPrivilegeValue(null, SE_SHUTDOWN_NAME, ref tp.Luid); ok = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero); ok = ExitWindowsEx(flg, 0); }

public static void Main() { Console.WriteLine("正在关闭计算机……"); // 修改 EWX_SHUTDOWN 或者 EWX_LOGOFF, EWX_REBOOT等实现不同得功能。 // 在XP下可以看到帮助信息,以得到不同得参数 // SHUTDOWN /? DoExitWin(EWX_SHUTDOWN); } }


寻求挑战,追求完美 Oh,my god!
2005-07-18 16:22
spygk
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-3-19
收藏
得分:0 
怎样才能重启,锁定计算机
2005-07-19 10:10
houyunqing
Rank: 1
等 级:新手上路
帖 子:476
专家分:0
注 册:2005-4-1
收藏
得分:0 
想了解更多参考一下这两个地方吧: http://www.yesky.com/321/1640321.shtml//专门是说关机,重新启动的... http://bbs.bc-cn.net/bbs/dispbbs.asp?BoardID=117&ID=22064//调用API要点

寻求挑战,追求完美 Oh,my god!
2005-07-19 16:48
快速回复:在c#中怎样实现开机关机
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035704 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved