如何在屏幕上的任何位置检测鼠标位置?

use*_*611 4 mouse matlab mouseevent mouse-position

我在MATLAB工作,我想从屏幕上的任何位置获取光标位置.

我想在鼠标移动时不断获取光标的位置.但是,我发现当鼠标只在GUI中移动时,MATLAB可以获得鼠标位置.

如何在MATLAB中的GUI中实现相同的功能而不是它?

ray*_*ica 7

你确定MATLAB只能在GUI中获得鼠标坐标吗?实际上,将鼠标的位置放在屏幕上的任何位置都非常简单,与GUI无关.

使用以下内容:

get(0, 'PointerLocation')
Run Code Online (Sandbox Code Playgroud)

通过移动鼠标并每次调用此命令来尝试此操作.您将看到鼠标移动时输出不断变化.你会发现它的工作独立于GUI.

此函数的输出将返回一个双元素数组,其中第一个元素是x列位置,第二个元素是y鼠标的行位置.请记住,参考点是相对于屏幕的左下角.因此,将鼠标放在屏幕的左下角应该会产生,(1,1)而将鼠标放在屏幕的右上角会产生屏幕的分辨率.

现在,如果您想连续获取鼠标的位置,请考虑将此调用置于while循环中,同时暂停一小段时间,这样您就不会使CPU过载.因此,做这样的事情:

while condition
    loc = get(0, 'PointerLocation');

    %// Do something
    %...
    %...

    pause(0.01); %// Pause for 0.01 ms
end
Run Code Online (Sandbox Code Playgroud)