当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 程序控制开始菜单的弹出 C#

ASP.NET
深入理解__doPostBack 客户端调用服务端事件
asp.net(c#)利用构造器链的代码
asp.net Repeater绑定时使用函数
asp.net下linkbutton的前后台使用方法
ASP.NET编程中经常用到的27个函数集
asp.net高效替换大容量字符实现代码
asp.net(c#) ubb处理类
ASP.NET中的跳转 200, 301, 302转向实现代码
C#中的委托和事件学习(续)
asp.net网站安全从小做起与防范小结
asp.net 网页编码自动识别代码
asp.net HttpWebRequest自动识别网页编码
asp.net中调用winrar实现压缩解压缩的代码
dz asp.net论坛中函数--根据Url获得源文件内容
.NET 扩展实现代码
用Jquery访问WebService并返回Json的代码
asp.net(c#)判断远程图片是否存在
asp.net保存远程图片的代码
Asp.Net类库中发送电子邮件的代码
ASP.NET表单验证方法详解

ASP.NET 中的 程序控制开始菜单的弹出 C#


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 236 ::
收藏到网摘: n/a


基本思路为,寻找开始菜单按钮窗口,并模拟用户单击
void pop() { User32.EnumWindows(new EnumProc(Enum), 0); } private bool Enum(IntPtr hWnd, uint param) { User32.STRINGBUFFER buffer=new User32.STRINGBUFFER(); User32.GetClassName(hWnd, ref buffer, 256); if (buffer.szText == "Shell_TrayWnd") { User32.EnumChildWindows(hWnd, new EnumProc(Enum2), 0); return false; } else return true; } IntPtr lastForeGroundWindow; private bool Enum2(IntPtr hWnd, uint param) { User32.STRINGBUFFER buffer = new User32.STRINGBUFFER(); User32.GetClassName(hWnd, ref buffer, 256); if (buffer.szText == "Button") { if (User32.SendMessage(hWnd, WndMsg.BM_GETSTATE, 0, 0) == User32.BST_PUSHED) { User32.SetForegroundWindow(lastForeGroundWindow); } else { lastForeGroundWindow = User32.GetForegroundWindow(); User32.SetForegroundWindow(hWnd); User32.PostMessage(hWnd, WndMsg.BM_CLICK, 0, 0); } return true; } else return false; }