c# 鼠标单击桌面任何位置弹出窗口?

我做了一个窗体一直走的功能可我还想如果鼠标单击左键后窗体出现在我单击处... 我做了一个窗体一直走的功能 可我还想如果鼠标单击左键后窗体出现在我单击处 展开
 我来答
魔法软糖™
2020-03-04 · TA获得超过837个赞
知道小有建树答主
回答量:822
采纳率:94%
帮助的人:142万
展开全部

需要全局捕捉鼠标点击。

使用API函数或着SharpDirectX库的DirectInput都可以。


        /// <summary>

        /// GetAsyncKeyState函数返回的是指定虚拟键瞬时的状态值,它有四种返回值:

        ///<para></para>0---键未被按下,而且键也未被按过(自上次调用GetAsyncKeyState后);

        ///<para></para>1---键抬起瞬间,在此之前键曾经被按过;

        ///<para></para>-32768(即16进制数&amp;H8000) --- 键按下瞬间,但在此之前键未被按过;

        ///<para></para>-32767(即16进制数&amp;H8001) --- 键按下持续,在此之前键也曾经被按过。

        /// </summary>

        /// <param name="vKey"></param>

        /// <returns></returns>

        [System.Runtime.InteropServices.DllImport("user32.dll")]

        public static extern int GetAsyncKeyState ( int vKey );

        /// <summary>

        /// 获取鼠标指针位置

        /// </summary>

        /// <param name="lpPoint"></param>

        /// <returns></returns>

        [System.Runtime.InteropServices.DllImport("user32.dll")]

        public static extern int GetCursorPos (ref MOUSEPOINT lpPoint );


        //鼠标按键的虚拟码

        None = 0,

        鼠标左键 = 1, LButton = 0x1,

        鼠标右键 = 2, RButton = 0x2,

        取消 = 3, Cancel = 0x3,

        鼠标中键 = 4, MButton = 0x4,

        鼠标侧键1 = 5, XButton1 = 0x5,

        鼠标侧键2 = 6, XButton2 = 0x6,


帐号已注销
2020-03-17 · TA获得超过5435个赞
知道小有建树答主
回答量:1.2万
采纳率:24%
帮助的人:723万
展开全部
说白点击桌面任何位置也是可以弹出窗口的,这个是允许的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tclauncher
2020-03-04 · 超过22用户采纳过TA的回答
知道答主
回答量:48
采纳率:80%
帮助的人:10.5万
展开全部

可以调用API,监听鼠标输入消息链。解码消息后就可以获得当前点击位置

监听鼠标消息c#

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式