在快速启动里,有一个按钮"显示桌面",点第一次,会隐藏所有窗口,再点一次,会显示所有窗口.如何在C#里,调用函数,实现这样的功能.(主要是因为在"显示桌面"的情况下,应用程序弹出的窗口,都无法看到.只有点击任务栏里的窗口,才可以看到.)
解决方案 »
- 提示str.Trim() 未将对象引用设置到实例,应该怎样将str中的数据引用
- 做了个自动更新程序,如何覆盖自己?
- C#中如何用richTextBox进行查找内容,像电子英语字典一样
- 请问怎么设置"input type=file"中textbox的内容?是不是textbox中的内容只能get,不能set?
- c# excel 双面打印
- 请各位大侠帮忙,关于用存储过程更新数据库问题,急.....
- c#中怎样获得标题栏,菜单栏和屏幕的size?
- 求立象214条码机接口编程代码(多帖高分相送)
- ****大型纳斯达克上市公司研发部招聘!****
- 为什么不能创建数据连接和数据适配器
- frameset 中页面跳转问题
- 我想重绘listview的垂直滚动条,请各位提供些资料
我的问题和这个类似:http://community.csdn.net/Expert/topic/3971/3971928.xml?temp=.5399286
请问,"显示桌面"这个操作,Windows是怎么处理的?应该不是对窗口最小化,也不是Hide().如何在程序里恢复"显示桌面".调用Show(),还是不显示,必须手工点击任务里的窗口条.
用SendKey.Send,好象没有"WIN"对应的键值哦.怎么在程序里模拟"WIND+D"?
http://blogs.msdn.com/robgruen/archive/2004/02/24/79294.aspx// Create an instance of the shell class Shell32.ShellClass objShel = new Shell32.ShellClass(); // Show the desktop ((Shell32.IShellDispatch4) objShel).ToggleDesktop(); // Do some operations here // Restore the desktop ((Shell32.IShellDispatch4) objShel).ToggleDesktop();
谢谢 Jim3(Jim) ,但我如何判断当前状态,用户是不是按下了"显示桌面"按钮呢?我有一个操作,必须在用户没有按下显示桌面的情况下执行.所以,需要:if (用户按下了显示桌面)
{
恢复桌面
}
而且,我按上面的方法,加入shell32.dll引用
再调用((Shell32.IShellDispatch4) objShel).ToggleDesktop();提示:
类型或命名空间名称“IShellDispatch4”在类或命名空间“Shell32”中不存在
Jim3(Jim) 能讲详细点吗?如何判断是否激活?
{
//恢复桌面并使自己获得焦点
}主要是因为不能确切得到当前桌面的状态,才使用辅助的方法:显示桌面时
this.Focused为false上述方法虽有缺陷,但希望能满足你的程序的要求
没用.在用户点了显示桌面按钮后,this.Show();
this.Activate();
this.Focus();都不能把窗口弹出来显示,虽然获得了焦点.
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop思路就是创建一个Windows的Shell对象
然后,调用 ToggleDesktop