Alt+拖动窗口
也就是AltDrag,按下Alt,鼠标在窗口任意位置点击后,可以拖动窗口,Win10测试正常(官方论坛帖子)
添加到:全局动作- 鼠标事件- 左键单击(开启)
if(click.Down) {
if((sp.GetKeyState(vk.LMENU) & 0x8000) && !sp.GetStoredBool("MoveWindowActive")) {
if(!click.Window.Maximized) {
sp.StoreBool("MoveWindowActive", true);
sp.StoreHandle("MoveWindowHandle", click.Window.HWnd);
sp.StorePoint("MoveWindowMouseStart", sp.GetCurrentMousePoint());
sp.StorePoint("MoveWindowStart", click.Window.Location);
sp.CreateTimer("MoveWindow", 20, 10, String.raw`
var wnd = sp.WindowFromHandle(sp.GetStoredHandle("MoveWindowHandle"));
if(sp.GetKeyState(vk.ESCAPE) & 0x8000) {
wnd.Location = sp.GetStoredPoint("MoveWindowStart");
sp.DeleteTimer("MoveWindow");
}
var startMousePt = sp.GetStoredPoint("MoveWindowMouseStart");
var currMousePt = sp.GetCurrentMousePoint();
var currWinPt = wnd.Location;
if(sp.GetStoredBool("MoveWindowActive")) {
wnd.Location = new Point(currWinPt.X + currMousePt.X - startMousePt.X, currWinPt.Y + currMousePt.Y - startMousePt.Y);
}
sp.StorePoint("MoveWindowMouseStart", currMousePt);
`);
}
}
} else {
if(sp.GetStoredBool("MoveWindowActive"))
{
sp.DeleteStoredHandle("MoveWindowHandle");
sp.DeleteStoredBool("MoveWindowActive");
sp.DeleteTimer("MoveWindow");
sp.DeleteStoredPoint("MoveWindowMouseStart");
sp.DeleteStoredPoint("MoveWindowStart");
}
}