`
hulianwang2014
  • 浏览: 686913 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

C#打开系统的关机/重启对话框

 
阅读更多

CSDN上的问题:http://community.csdn.net/Expert/TopicView1.asp?id=4301626

要求显示系统的关机/重启对话框,即“开始->关机...”所出来的对话框

在网上搜索了一下,Shell32.dll中存在着微软未公开的几个函数:

SHRestartSystemMB@12@59NONAME
SHShutDownDialog@4@60NONAME
SHRunDialog@24@61NONAME
SHChangeIconDialog@16@62NONAME
SHGetExtension@4@31NONAME
SHAddBackslash@4@32NONAME
SHGetFileName@4@34NONAME
SHPathIsRelative@4@40NONAME
SHPathIsExe@4@43NONAME
SHFileExists@4@45NONAME
SHGetPathArgs@4@52NONAME
SHGetShortPathName@4@92NONAME
SHObjectProperties@16@178NONAME

等等,

那也许第60个函数就是想要的功能了。
因为以前经常用rundll32来运行dll库中的函数,所以尝试了一下:

rundll32.exe shell32.dll @60 运行结果:丢失条目 @60

使用Depends查看shell32.dll,在E列中会有个#,VB导出函数时也用#,继续尝试
rundll32.exe shell32.dll #60 运行成功,出来了系统的关机对话框

所以编程时,也可以导出这个函数调唤系统的关机对话框,参考:
http://www.chez.com/haar/ada/ada.htm
http://www.frontfree.net/view/article_220.html
http://www.cstudyhome.com/wenzhang06/ReadNews.asp?NewsID=3349

下面是代码:

  1. [DllImport("shell32.dll",EntryPoint="#60")]
  2. internalstaticexternintSHShutdownDialog(intsig);
  3. /**/
  4. ///<summary>
  5. ///调用关闭对话框
  6. ///</summary>
  7. ///
  8. publicstaticintInvokeShutdownDialog()
  9. {
  10. returnSHShutdownDialog(0);
  11. }


分享到:
评论

相关推荐

    C#定时关机源代码

    C#源代码小工具不需要安装,直接使用。 能倒计时关机,可以设置小时,分... 也能指定时间关机,如:2015年11月11日11:11:11关机 可以设置事件为关机,重启,注销。 在关机前最后一分钟会弹出对话框,可以设置延时关机。

    C#.net_经典编程例子400个

    294 实例205 怎样隐藏鼠标 294 实例206 允许和禁止用户关机 295 实例207 锁定计算机 296 7.5 系统设置 297 实例208 设置系统输入法 297 实例209 设置桌面颜色 298 实例210 鼠标...

    C#程序开发范例宝典(第2版).part08

    实例044 在关闭窗口前加入确认对话框 46 实例045 通过子窗体刷新父窗体 47 实例046 拖动无边框窗体 51 1.14 其他技术 52 实例047 禁用窗口上的关闭按钮 52 实例048 实现动态系统托盘图标 53 实例049 实现气泡...

    C#程序开发范例宝典(第2版).part02

    实例044 在关闭窗口前加入确认对话框 46 实例045 通过子窗体刷新父窗体 47 实例046 拖动无边框窗体 51 1.14 其他技术 52 实例047 禁用窗口上的关闭按钮 52 实例048 实现动态系统托盘图标 53 实例049 实现气泡...

    C#程序开发范例宝典(第2版).part12

    实例044 在关闭窗口前加入确认对话框 46 实例045 通过子窗体刷新父窗体 47 实例046 拖动无边框窗体 51 1.14 其他技术 52 实例047 禁用窗口上的关闭按钮 52 实例048 实现动态系统托盘图标 53 实例049 实现气泡...

    C#程序开发范例宝典(第2版).part13

    实例044 在关闭窗口前加入确认对话框 46 实例045 通过子窗体刷新父窗体 47 实例046 拖动无边框窗体 51 1.14 其他技术 52 实例047 禁用窗口上的关闭按钮 52 实例048 实现动态系统托盘图标 53 实例049 实现气泡...

    vc++ 开发实例源码包

    内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加...

    vc++ 应用源码包_1

    内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加...

    vc++ 应用源码包_2

    内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加...

    vc++ 应用源码包_3

    内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加...

    vc++ 应用源码包_6

    内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加...

    vc++ 应用源码包_5

    内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加...

Global site tag (gtag.js) - Google Analytics