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

ASP.NET
用ASP.NET缓存提高站点性能
ASP.NET 中处理页面“回退”的方法
利用ASP.NET的三种缓存提高站点性能
Session丢失的解决办法小结
.Net中VSS实现版本控制管理的方法
ASP.NET中如何防范SQL注入式攻击
十天学会ASP.net之第三天
.NET Ajax的无刷新技术实例详解
剖析C# 2.0泛型类的创建和使用
解析在ASP.NET中调用存储过程的方法
在ASP.NET中使用AJAX的简单方法
DataGrid表头不动,表身动
结合JavaScript与ASP.NET Web窗体进行程序开发
asp.net里面的身份验证和授权
ASP.NET生成高质量缩略图通用函数(c#代码)
在C#中建立复杂的、灵活的SQL查询/命令
基于C#的接口基础教程之一
基于C#的接口基础教程之二
基于C#的接口基础教程之三
基于C#的接口基础教程之四

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 175 ::
收藏到网摘: 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; }