通过DragDrop.DoDragDrop(...)启动拖放操作后,不再触发MouseMove事件.我甚至试过了
AddHandler(Window.MouseMoveEvent, new MouseEventHandler(myControl_MouseMove), true);
Run Code Online (Sandbox Code Playgroud)
最后一个参数意味着我甚至选择处理事件.没有机会,似乎MouseMove事件根本就没有被解雇!使用Drag&Drop时仍能获得MouseMove事件的任何方法?我想拖放一个控件,拖动这个控件时它应该跟随鼠标指针.知道在这种情况下如何做到这一点?
我正在使用C#,Framework 4(32位)的Windows窗体应用程序.
我有一个包含鼠标坐标的列表,我可以捕获它们.到现在为止还挺好.
但在某些时候,我想去那些坐标并点击鼠标左键.
这就是它现在的样子:
for (int i = 0; i < coordsX.Count; i++)
{
Cursor.Position = new Point(coordsX[i], coordsY[i]);
Application.DoEvents();
Clicking.SendClick();
}
Run Code Online (Sandbox Code Playgroud)
点击课:
class Clicking
{
private const UInt32 MOUSEEVENTF_LEFTDOWN = 0x0002;
private const UInt32 MOUSEEVENTF_LEFTUP = 0x0004;
private static extern void mouse_event(
UInt32 dwFlags, // motion and click options
UInt32 dx, // horizontal position or change
UInt32 dy, // vertical position or change
UInt32 dwData, // wheel movement
IntPtr dwExtraInfo // application-defined information
);
// public static void …Run Code Online (Sandbox Code Playgroud) 我创建了一个类似于wiimote的设备,我想在Windows(8.1)中将它用作鼠标.设备通过tcp连接到我的Windows计算机上的c ++ win32程序,并发送鼠标光标应移动的位置.我正在使用SetCursorPos函数来设置位置,这对于控制大多数程序非常有用.但是当我尝试控制例如任务管理器时,光标不再移动.当我从任务管理器切换回其他程序时,它再次工作.我也尝试使用具有相同结果的SendInput函数.
这是我的代码与SendInput的代码:
INPUT Input = { 0 };
Input.type = INPUT_MOUSE;
Input.mi.dx = (LONG)posX;
Input.mi.dy = (LONG)posY;
// set move cursor directly
Input.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
SendInput(1, &Input, sizeof(INPUT));
Run Code Online (Sandbox Code Playgroud)
使用SetCursorPos,它只是一行:
SetCursorPos(posX, posY);
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么它对某些程序不起作用?我知道必须这样做,因为我尝试了一个控制光标的智能手机应用程序,它适用于所有程序.
对我来说,如果我尝试这个例子:http://jsfiddle.net/bY3CC/3/即使我将鼠标移到文档上然后我让它仍然存在,"鼠标移动"文本出现了...
为什么?; \
而且,似乎该消息只出现在Chrome中....
奇怪:-s
我想点击我的canvas元素的特定位置,所以我写了下面的Protractor代码:
var canvas = element(by.id("canvas"));
var clickCanvas = function(toRight, toBottom) {
browser.actions()
.mouseMove(canvas, -toRight, -toBottom)
.click();
}
Run Code Online (Sandbox Code Playgroud)
toRight/ toBottom是应该进行单击的像素数,相对于画布的左上角.
但是,似乎没有在给定坐标处执行单击.我从软件质量保证和测试堆栈交换的相关问题中获得了片段.
你能确认这个片段有效吗?
你能建议替代品吗?
有没有办法在Cocoa中注册全局鼠标移动事件?我能够使用Carbon's注册事件InstallEventHandler(),但更喜欢Cocoa等价物.我已经查找了NSNotificationCenter事件,但似乎没有任何公共事件名称(是否有私有名称?)
或者,有没有办法NSTrackingArea用于具有clearColor背景的视图?
该应用程序仅限Snow Leopard.
我有一个javascript应用程序,它为文档添加了一个mousemove监听器.问题:当鼠标移动到iframe上时,不会调用该函数.
有没有办法将这些事件传递给根文档?
我尝试使用mousemove获取相对于元素的鼠标位置.它工作正常,但当鼠标悬停在子元素上时,坐标相对于该子元素.我希望鼠标位置相对于父div,而不是孩子.
例如,请参阅此JSFiddle.
var object = document.getElementsByClassName('object'),
scene = document.getElementById('scene');
function initMove() {
for(var i=0; i<object.length; i++) {
object[i].addEventListener("mousemove", function(event) {
//event.stopPropagation();
return false;
}, false);
}
scene.addEventListener("mousemove", function (event) {
//event.stopPropagation();
//event.currentTarget;
moveX = event.offsetX;
moveY = event.offsetY;
console.log(moveX + ' + ' + moveY);
}, false);
}
function init() {
initMove();
document.onselectstart = function(){ return false; }
};
init();?
Run Code Online (Sandbox Code Playgroud)
添加event.stopPropagation()子返回没有数据.而且我不确定它是如何event.currentTarget工作的.
我不能使用mouseenter或其他所有鼠标只控制,因为我希望它是触摸友好的(通过touchmove替换mousemove).
有任何想法吗?
如果鼠标在一段时间内(例如,五秒钟)处于非活动状态并且将其重新设置为再次激活时,是否可以使用JavaScript将cursor属性设置为属性?noneauto
编辑:我意识到这none不是该cursor属性的有效值.尽管如此,许多网络浏览器似乎都支持它.此外,这方面的主要用户是我自己,因此几乎不会出现混淆的可能性.
我有两个可以做类似的脚本:
window.addEventListener("mousemove",
function(){
document.querySelector("#editor").style.background = "#000";
setTimeout("document.querySelector('#editor').style.background = '#fff'", 5000);
}
, true);
Run Code Online (Sandbox Code Playgroud)
和
var timeout;
var isHidden = false;
document.addEventListener("mousemove", magicMouse);
function magicMouse() {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function() {
if (!isHidden) {
document.querySelector("body").style.cursor = "none";
document.querySelector("#editor").style.background = "#fff";
isHidden = true;
}
}, 5000);
if (isHidden) {
document.querySelector("body").style.cursor = "auto";
document.querySelector("#editor").style.background = "#000";
isHidden = false;
}
};
Run Code Online (Sandbox Code Playgroud)
对于其中的每一个,当鼠标处于非活动状态超过五秒时,背景颜色变为白色,而当光标移动时,背景变为黑色.但是,它们不能使光标消失.让我感到惊讶的是,如果我将命令document.querySelector("body").style.cursor = "none";放入JavaScript控制台,它就能完美运行.在脚本中,它似乎不起作用.
我已经发布了上面的脚本,因为这是我开始使用它.我不一定要求修复任何一个脚本; …
我编写了以下JavaScript代码.我用它来检测鼠标何时移动以及何时停止.MouseStopped()函数是一个包含数百个项目的循环,它会告诉我鼠标停在哪里,所以我只想在鼠标停止时调用它.
var CheckMovement;
var stopLoop = false;
var n = 0;
canvas.addEventListener('mousemove', function (evt) {
CheckMovement = setInterval(function () { HasMouseStopped(evt) }, 250);
}, false)
function HasMouseStopped(evt) {
var mousePos = getMousePos(canvas, evt);
newMouseX = mousePos.x;
newMouseY = mousePos.y;
if ((newMouseX !== mouseX) && (newMouseY !== mouseY)) {
stopLoop = true;
} else {
//stopped moving
clearInterval(CheckMovement);
stopLoop = false;
n = 0;
MouseStopped();
}
mouseX = newMouseX;
mouseY = mousePos.y;
}
function MouseStopped() {
while (arr.length > n) { …Run Code Online (Sandbox Code Playgroud) mousemove ×10
javascript ×5
c# ×2
sendinput ×2
c++ ×1
cocoa ×1
css ×1
cursor ×1
jquery ×1
macos-carbon ×1
mouse ×1
mouseevent ×1
protractor ×1
windows ×1
wpf ×1