C#实现 Win+D不让窗体最小化

如题C#实现不让窗体最小化Win+D也不能最小化就跟QQ主窗体的是一样的QQ里是C++调用的WindowsAPI函数setparent()方法吧?C#我不会用。。网上说有... 如题
C#实现 不让窗体最小化 Win+D 也不能最小化 就跟QQ 主窗体的是一样的
QQ里是C++调用的Windows API 函数 setparent()方法吧?
C# 我不会用。。
网上说有一种方法是 调用setparent()方法把 窗体的 父容器设置为桌面
但是 我不会调用诶。。有哪位高手肯赐教。。感激不尽。
展开
 我来答
百度网友b406023
2010-09-09 · TA获得超过144个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:83.6万
展开全部
API正是神奇!!

今天看到个SetParent这个函数有点神奇就测试了一个果然不同凡响!1

如果在.net中做一个顶级窗体很简单

可是当你点显示桌面的时候他回最小化!

怎么才能使它不最小化呢?在必须在它的SizeChanged事件里面写:

if (this.WindowState==FormWindowState.Minimized)
{
this.WindowState=FormWindowState.Normal;
}

可是你如果SetParent函数就不用在这里写了!

申明:

[DllImport("user32.dll", EntryPoint="SetParent")]
public static extern int SetParent (int hWndChild, int hWndNewParent);

这个函数的第一个参数的要是要一个要处理第 窗口的句柄

第二个参数为你要把这个窗口放到上面的那个窗口的句柄:

如果你用SetParent(this.Handle.ToInt32(),this.Handle.ToInt32());

窗体就是定级窗体了且不会因为你按了显示桌面它最小化!

同样如果你能得到桌面窗体的句柄那么窗体将会永远在任何窗体的最下面!!

可是怎么得到桌面的窗口的句柄呢!!

呵呵!!

API提供了一找窗口句柄的APIFindWindow (string lpClassName,string lpWindowName);

lpClassName参数为窗口所属的类名lpWindowName为窗口的标题

呵呵

现在我们就可以用这函数得到桌面窗口的句柄了

FindWindow("Progman", "Program Manager");

现在它就能返回桌面窗口的句柄了

嘿嘿

再用SetParent函数将窗体填加到桌面上看看!!

嘿嘿是不是很爽啊!!!!

http://blog.csdn.net/hawk521/archive/2006/08/25/1119012.aspx
曾春冬0H
2010-09-09
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
要像QQ那样只要将窗体的属性ShowInTaskbar设置成false就行了,然后在拉一个notifyIcon控件(添加一个停放在任务栏上的图标程序),然后再添加一个点击图标程序时激发的事件就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-09-08
知道答主
回答量:43
采纳率:0%
帮助的人:0
展开全部
看到标题我想到的是不能,进来看看想想是不是可以屏蔽掉 win +d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thejiathe
2010-09-08 · TA获得超过279个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:305万
展开全部
C#唯一能使用的几个钩子中就包括键盘钩子,你baidu、google就能搜索到了,我就不详细写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式