在当今社会,随着互联网的飞速发展,人们对于网络和社交媒体的依赖愈发深入,QQ作为中国最受欢迎的即时通讯工具之一,已经成为了人们日常生活中不可或缺的一部分。有时候我们可能会面临一些需要获取已登录QQ号码的需求,比如在开发软件或者进行数据分析时。在这样的背景下,易语言提供了一种简便的方法,通过获取句柄和枚举进程,我们可以轻松地获取到已登录QQ号码。这一功能的实现不仅大大提高了我们的工作效率,也为我们的生活带来了便利。
.版本 2.DLL命令 GetDesktopWindow, 整数型. "user32.dll", "GetDesktopWindow".DLL命令 CreateToolhelp32Snapshot, 整数型. "kernel32", "CreateToolhelp32Snapshot" .参数 dwFlags, 整数型. , 0 .参数 th32ProcessIE, 整数型. , 0.DLL命令 Process32First, 整数型. "kernel32", "Process32First" .参数 hSnapshot, 整数型. , 0 .参数 lppe, 进程信息列表, , 0.DLL命令 CloseHandle, 逻辑型, "Kernel32", "CloseHandle", , 关闭打开的对象句柄 .参数 hObject, 整数型. , 要关闭的对象句柄.DLL命令 GetWindowTextA, 整数型. "user32.dll", "GetWindowTextA", , 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 复制到lpString的字串长度;不包括空中止字符。会设置GetLastError .参数 hWnd, 整数型. , 欲获取文字的那个窗口的句柄 .参数 lpString, 文本型, 传址, 预定义的一个缓冲区,至少有cch 1个字符大小;随同窗口文字载入 .参数 nMaxCount, 整数型. , lp缓冲区的长度;.DLL命令 GetWindowTextLength, 整数型. "user32", "GetWindowTextLengthA", 公开 .参数 hwnd, 整数型.DLL命令 Process32Next, 整数型. "kernel32", "Process32Next", , 获得下一个进程的句柄 .参数 hSnapshot, 整数型. , 0 .参数 lppe, 进程信息列表, , 0.DLL命令 GetWindow, 整数型. , "GetWindow" .参数 源窗口, 整数型 .参数 关系, 整数型
自定义数据类型表
.版本 2.数据类型 进程信息列表, 公开 .成员 dwSize, 整数型. , , 1 .成员 cntUsage, 整数型. , , 2 .成员 进程ID, 整数型. , , 3 .成员 th32DefaultHeapID, 整数型. , , 4 .成员 th32ModuleID, 整数型. , , 5 .成员 cntThreads, 整数型. , , 6 .成员 th32ParentProcessID, 整数型. , , 7 .成员 pcPriClassBase, 整数型. , , 8 .成员 dwFlags, 整数型. , , 9 .成员 进程名称, 字节型, , "256", 10
窗口句柄方式取已登陆QQ号码的代码
.版本 2.程序集 窗口程序集_启动窗口.子程序 _启动子程序, 整数型.局部变量 返回的QQ号码, 文本型.局部变量 分割的文本, 文本型, , "0"返回的QQ号码 = 系统_取已登陆QQ号码 ()分割的文本 = 分割文本 (返回的QQ号码, #换行符, )信息框 (“有” + 到文本 (取数组成员数 (分割的文本)) + “个QQ” + #换行符 + 返回的QQ号码, 0, )返回 (0).子程序 窗口_取标题, 文本型, 公开.参数 窗口句柄, 整数型.局部变量 局_缓冲区, 文本型.局部变量 局_缓冲大小局_缓冲大小 = GetWindowTextLength (窗口句柄) + 1局_缓冲区 = 取空白文本 (局_缓冲大小)GetWindowTextA (窗口句柄, 局_缓冲区, 局_缓冲大小)返回 (局_缓冲区).子程序 窗口_枚举窗口句柄, 整数型. 公开, 通过窗口任务关系来枚举所有窗口,返回窗口句柄数目,失败返回0.参数 句柄数组, 整数型. 可空 数组, 返回的所有窗口句柄数组.局部变量 窗口句柄, 整数型清除数组 (句柄数组)窗口句柄 = GetWindow (GetDesktopWindow (), 5).判断循环首 (窗口句柄 ≠ 0) 加入成员 (句柄数组, 窗口句柄) 窗口句柄 = GetWindow (窗口句柄, 2).判断循环尾 ()返回 (取数组成员数 (句柄数组)).子程序 进程_取ID数组, 整数型. 公开, 取指定进程名称的所有进程的进程ID(返回进程ID数目,没有返回0).参数 进程名, 文本型, , 程序进程名.参数 进程ID数组, 整数型. 参考 数组, 返回的进程ID 数组.参数 区分大小写, 逻辑型, 可空, 默认不区分进程名大小写.局部变量 信息, 进程信息列表.局部变量 进程快照, 整数型.局部变量 进程句柄, 整数型清除数组 (进程ID数组)进程快照 = CreateToolhelp32Snapshot (15, 0).如果真 (进程快照 = 0) 返回 (0).如果真结束信息.dwSize = 1024进程句柄 = Process32First (进程快照, 信息).判断开始 (区分大小写) .判断循环首 (进程句柄 ≠ 0) .如果真 (进程名 = 到文本 (信息.进程名称)) 加入成员 (进程ID数组, 信息.进程ID) .如果真结束 进程句柄 = Process32Next (进程快照, 信息) .判断循环尾 ().默认 .判断循环首 (进程句柄 ≠ 0) .如果真 (到小写 (进程名) = 到小写 (到文本 (信息.进程名称))) 加入成员 (进程ID数组, 信息.进程ID) .如果真结束 进程句柄 = Process32Next (进程快照, 信息) .判断循环尾 ().判断结束CloseHandle (进程快照)返回 (取数组成员数 (进程ID数组)).子程序 系统_取已登陆QQ号码, 文本型, 公开, 成功返回QQ号码,如果是多个QQ号码以#换行符分开,其他的都返回空.局部变量 局_窗口标题, 文本型.局部变量 局_变量文本, 文本型.局部变量 局_分割的文本, 文本型, , "0".局部变量 局_进程ID数目, 整数型.局部变量 计次, 整数型.局部变量 i, 整数型.局部变量 局_进程ID数组, 整数型. , "0".局部变量 局_窗口数目, 整数型局_进程ID数目 = 进程_取ID数组 (“QQ.exe”, 局_进程ID数组)计次 = 1局_窗口数目 = 窗口_枚举窗口句柄 (局_进程ID数组).计次循环首 (局_窗口数目, i) 局_窗口标题 = 窗口_取标题 (局_进程ID数组 [i]) .如果真 (寻找文本 (局_窗口标题, “qqexchangewnd_shortcut_prefix”, , 假) ≠ -1) 局_分割的文本 = 分割文本 (局_窗口标题, “_”, ) .判断开始 (计次 = 局_进程ID数目) 局_变量文本 = 局_变量文本 + 局_分割的文本 [取数组成员数 (局_分割的文本)] 计次 = 计次 + 1 .默认 局_变量文本 = 局_变量文本 + 局_分割的文本 [取数组成员数 (局_分割的文本)] + #换行符 计次 = 计次 + 1 .判断结束 .如果真结束 .如果真 (计次 > 局_进程ID数目) 跳出循环 () .如果真结束.计次循环尾 ()返回 (局_变量文本)
运行结果:
以上就是易语言获取句柄的全部内容,如果你也遇到了这个问题,不妨根据我的方法来解决,希望对大家有所帮助。
相关教程
2023-10-02
2023-07-16
2023-11-18
2023-10-25
2024-03-01
2024-03-25
2024-03-02
2023-03-19
2024-03-02
2024-03-23
2024-03-06
2023-12-29
2024-11-21
2024-11-21
2024-11-21
2024-11-21