注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

K8拉登哥哥's Blog

K8搞基大队[K8team] 信息安全 网络安全 0day漏洞 渗透测试 黑客

 
 
 

日志

 
 

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

2011-04-04 04:56:15|  分类: C#.NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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

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

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

等等,

那也许第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.         internal static extern int SHShutdownDialog(int sig); 
  3.         /**/
  4.         /// <summary>
  5.         /// 调用关闭对话框
  6.         /// </summary>
  7.         ///
  8.         public static int InvokeShutdownDialog()
  9.         {
  10.             return SHShutdownDialog(0);
  11.         }
  评论这张
 
阅读(967)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016