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
- [DllImport("shell32.dll",EntryPoint="#60")]
- internalstaticexternintSHShutdownDialog(intsig);
- /**/
- ///<summary>
- ///调用关闭对话框
- ///</summary>
- ///
- publicstaticintInvokeShutdownDialog()
- {
- returnSHShutdownDialog(0);
- }