Foxtable(狐表)用户栏目专家坐堂 → [求助]关于OPENQQ关闭服务器后客户端弹窗修改


  共有3441人关注过本帖树形打印复制链接

主题:[求助]关于OPENQQ关闭服务器后客户端弹窗修改

帅哥哟,离线,有人找我吗?
大红袍
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 20:03:00 [显示全部帖子]

mark 外挂基础

 

全局代码

 

<DllImport("user32.dll", EntryPoint := "FindWindow", SetLastError := True)> _
Public Function FindWindow(lpClassName As String, lpWindowName As String) As IntPtr
End Function

<DllImport("user32.dll", EntryPoint := "FindWindowEx", SetLastError := True)> _
Public Function FindWindowEx(hwndParent As IntPtr, hwndChildAfter As UInteger, lpszClass As String, lpszWindow As String) As IntPtr
End Function

<DllImport("user32.dll", EntryPoint := "SendMessage", SetLastError := True, CharSet := CharSet.Auto)> _
Public Function SendMessage(hwnd As IntPtr, wMsg As UInteger, wParam As IntPtr, lParam As String) As Integer
End Function

 

调用代码

 

Dim hwnd As IntPtr = FindWindow("WindowsForms10.Window.8.app.0.378734a", "提示")
If hwnd <> IntPtr.Zero Then
    msgbox("即将修改窗口标题")
    SendMessage(hwnd, &H000C, 0, "修改窗口的标题")
    Dim hwndSure As IntPtr = FindWindowEx(hwnd, 0, "WindowsForms10.STATIC.app.0.378734a", "OpenQQ失去连接!")
    If hwndSure <> IntPtr.Zero Then
        msgbox("找到label:" & cstr(hwndSure))
        'SendMessage(hwndSure, &H000C, 0, "我就修改你怎么啦!")
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 20:25:00 [显示全部帖子]

测试了一下,好像不会马上刷新Label的值......应该是没办法处理的。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 9:23:00 [显示全部帖子]

以下是引用vvfree在2015/11/17 0:42:00的发言:
有延迟修改的问题,不能马上替换,能不能限制窗口弹出后用自定义窗口代替?

 

做一个计划任务,如果检测有此窗口弹出,就自己在右下角弹出一个窗口

 

Dim hwnd As IntPtr = FindWindow("WindowsForms10.Window.8.app.0.378734a", "提示")
If hwnd <> IntPtr.Zero Then

    forms("窗口1").Open

Else

    forms("窗口1").Close

End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 17:08:00 [显示全部帖子]

呃,目前不行,要不你代码这样写。

 

Dim hwnd As IntPtr = FindWindow("WindowsForms10.Window.8.app.0.378734a", "提示")
If hwnd <> IntPtr.Zero Then

    SendMessage(hwnd, &H18, 0, "")

    forms("窗口1").Open

Else

    forms("窗口1").Close

End If

 

http://www.cnblogs.com/lellansin/archive/2012/05/14/2498739.html

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 19:35:00 [显示全部帖子]

9楼的代码,我用foxtable自代码的例子,测试是没有问题的。

 

你执行以后,什么时候,报什么错?


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 20:39:00 [显示全部帖子]

static flag As Boolean = False

Dim hwnd As IntPtr = FindWindow("WindowsForms10.Window.8.app.0.378734a", "提示")
If hwnd <> IntPtr.Zero Then
    SendMessage(hwnd, &H18, 0, "")
   
    If flag = False Then      
        flag = True
        forms("窗口1").Open
    End If
Else
    flag = False
    forms("窗口1").Close
End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 21:31:00 [显示全部帖子]

如果你控制不好,你能力也不够处理,就等升级吧。


 回到顶部