如何用c++实现获取桌面的具体图标的句柄

如何用c++实现获取桌面的具体图标的句柄,第1张

用CWnd::findWindow(参数,参数);

函数:

static CWnd PASCAL FindWindow(

LPCTSTR lpszClassName,

LPCTSTR lpszWindowName

);

具体用法自己查MSDN,窗口的信息可以用Spy++这个工具,在 VS工具 里

方法一:通过IF函数嵌套,依次判断,然后返回结果。输入=IF(D2="博士研究生","博士",IF(D2="硕士研究生","硕士",IF(D2="本科","学士","“无")))方法二:建立对应表,然后通过VLOOKUP函数查找引用对应数据。输入=VLOOKUP(A2,D:E,2,0) 详见附图

你是想模拟按键么

首先要获得窗口的句柄 用下面的函数应该能找到:

FindWindow根据类名\窗口标题寻找窗口

遍历顶层窗口EnumWindows

遍历窗口回调函数EnumWindowProc

遍历父窗口的所有子窗口EnumChildWindows

返回父窗口Point处的子窗口ChildWindowFromPoint

ChildWindowFromPointEx多一个参数UINT来忽略不可见无效透明的子窗口

获取与指定窗口具有莫种关系的窗口GetWindow

获取父窗口的子窗口中Z序最大的子窗口GetTopWindow

获取指定窗口相同层次Z序差1的窗口GetNextWindow

获取桌面窗口句柄GetDesktopWindow

用SendMessage函数不需要窗口标题的,只要句柄

LRESULT SendMessage(

HWND hWnd, // handle of destination window

UINT Msg, // message to send

WPARAM wParam, // first message parameter

LPARAM lParam // second message parameter

);

或者用keybd_event函数,要先用SetForegroundWindow函数把目标窗口设置成前台窗口

VOID keybd_event(

BYTE bVk, // virtual-key code

BYTE bScan, // hardware scan code

DWORD dwFlags, // flags specifying various function options

DWORD dwExtraInfo // additional data associated with keystroke

);

补充:

第一个:我进入某个游戏,用CE查到内存地址后,退出游戏,再查内存地址,两个内存地址是不一样的,有什么办法可以让每次的内存地址都一样?或者说下别的解决方法?

不让每次的内存地址都一样应该是做不到的,游戏每次运行由系统分配内存,哪能让你控制啊。

第二个:我想让鼠标在内存数值到某一个数值时,鼠标移动到某点进行鼠标 *** 作,该怎么写源代码?

定义一个指针变量p,类型根据你需要的数值而定

p=该内存地址

if(p==该数值)

{

//mousemove

}

精易编程助手,点其他,生成E源码

然后发送鼠标信息

    子程序名:鼠标_消息

    向指定窗口发送鼠标动作消息(无返回值)

    参数<1>的名称为“窗口句柄”,类型为“整数型”,允许接收空参数数据。注明:可空:为桌面超级列表框句柄  接收鼠标消息窗口句柄。

    参数<2>的名称为“水平坐标”,类型为“整数型”,允许接收空参数数据。注明:可空:为原水平坐标不变  移动目标鼠标水平坐标 (注:坐标为参数一窗口句柄中的坐标)。

    参数<3>的名称为“垂直坐标”,类型为“整数型”,允许接收空参数数据。注明:可空:为原垂直坐标不变  移动目标鼠标垂直坐标。

    参数<4>的名称为“键”,类型为“整数型”,允许接收空参数数据。注明:可空:为左键  1 #左键   2 #右键   3 #中键  4 #中键上滚动 5 #中键下滚动(滚动前后请按下放开中键)。

    参数<5>的名称为“控制”,类型为“整数型”,允许接收空参数数据。注明:可空:为单击  1 #单击   2 #双击   3 #按下  4 #放开。

FindWindow Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

获得句柄

如知道进程ID 用OpenProcess

Public Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

一段获取正在运行的后台service的代码,如下://RunningServicesInfopublic static String getRunningServicesInfo(Context context) {StringBuffer serviceInfo = new StringBuffer();final ActivityManager activityManager = (ActivityManager) contextgetSystemService(ContextACTIVITY_SERVICE);List services = activityManagergetRunningServices(100);Iterator l = servicesiterator();while (lhasNext()) {RunningServiceInfo si = (RunningServiceInfo) lnext();serviceInfoappend("pid: ")append(sipid);serviceInfoappend("\nprocess: ")append(siprocess);serviceInfoappend("\nservice: ")append(siservice);serviceInfoappend("\ncrashCount: ")append(sicrashCount);serviceInfoappend("\nclientCount: ")append(siclientCount);serviceInfoappend("\nactiveSince: ")append(ToolHelperformatData(siactiveSince));serviceInfoappend("\nlastActivityTime: ")append(ToolHelperformatData(silastActivityTime));serviceInfoappend("\n\n");}return serviceInfotoString();}

以上就是关于如何用c++实现获取桌面的具体图标的句柄全部的内容,包括:如何用c++实现获取桌面的具体图标的句柄、如何获取 Office 自动化服务器的窗口句柄、按键精灵8,获取句柄有些只有窗口类名,没有窗口标题,该怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9557617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存