1、移动鼠标到屏幕指定位置(俺知道可以用SetCursorPos),并且该位置不在俺的应用程序窗口范围内,那么鼠标的热点(HOT SPOT)应该唯一属于某个位于最前端的对象(至少还有桌面吧),请问,如何获得该对象的句柄?
2、基于上面的控制(假如暂时没有获得句柄的有效途径),俺想编写两个过程:
procedure MouseLClick(ScrX, ScrY: Integer);//鼠标左键单击
procedure MouseLDoubleClick(ScrX, ScrY: Integer);//鼠标左键双击
而不关心该位置是什么对象(包括对象),应该如何实现?
3、鼠标移动到主菜单“文件”,左键单击,弹出菜单项,鼠标移动到“关闭”,左键单击。问题:如何通过程序控制来实现这一系列动作(包括外观,如鼠标轨迹可以用for语句和SetCursorPos来实现)?帮俺解决任何一个问题俺都都至少赠送100分!
2、基于上面的控制(假如暂时没有获得句柄的有效途径),俺想编写两个过程:
procedure MouseLClick(ScrX, ScrY: Integer);//鼠标左键单击
procedure MouseLDoubleClick(ScrX, ScrY: Integer);//鼠标左键双击
而不关心该位置是什么对象(包括对象),应该如何实现?
3、鼠标移动到主菜单“文件”,左键单击,弹出菜单项,鼠标移动到“关闭”,左键单击。问题:如何通过程序控制来实现这一系列动作(包括外观,如鼠标轨迹可以用for语句和SetCursorPos来实现)?帮俺解决任何一个问题俺都都至少赠送100分!
解决方案 »
- 跨进程修改DBGRID内容,不稳定。
- 搞个小调查,大家用Delphi开发都用什么操作系统?
- 谁有winpcap for delphi请给我一份!
- bpl中actionlist失效了
- 急救!!一个救命的SQL
- 请问如何使用tstringlist的自定义排序回调函数
- 可以看看吗
- 在线等待:我想用程序控制在excel里灌制曲线,限定用excelchart实现下面一些功能,
- exe文件运行时的常数修改?急!急!!急!!!([email protected])
- 还有新问题:TADOQuery的用法,给出的方法立刻就试,马上给分。
- 一个软件风格实现的问题.
- 关于QuickRep打印,如何在总页数为奇数的时候多打一空白页?
ClassName: PChar;
ptCursor: TPoint;
hWndOver: HWND;
begin
GetCursorPos(ptCursor); //获取鼠标位置
hWndOver := WindowFromPoint(ptCursor); //获取鼠标下控件的句柄
GetMem(ClassName, 100);
try
GetClassName(hWndOver, ClassName, 100); //获取鼠标下控件的类名
edit1.Text :=String(ClassName); //在自己的控件中显示该控件的类名
finally
FreeMem(ClassName);
end; //end of try
end;
mouse变量是tmouse类型的,象screen变量那样自动创建的
在delphi中可以直接使用他们
通过操纵mouse变量可以指定鼠标的位置等一系列操作
在mouse变量中鼠标的位置正是以屏幕坐标为基准的
关于mouse变量的进一步说明,可以查阅帮助获取更多信息
Var
pos:TRect;
...
pos:=edit1.BoundsRect;
MapWindowPoints(Handle,0,pos,2);
clipcursor(@pos);