几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » 程序设计 » vc编程
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2008-07-24, 01:05 AM   #1
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 如何得到MessageBox窗口里的提示文本?

如何得到MessageBox窗口里的提示文本?
__________________
借用达朗贝尔的名言:前进吧,你会得到信心!
[url="http://www.dimcax.com"]几何尺寸与公差标准[/url]
huangyhg离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
旧 2008-07-24, 01:07 AM   #2
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 回复: 如何得到MessageBox窗口里的提示文本?

'QQ消息轰炸机源代码(VB.NET)
'wgscd 2005-1-1



'***************************************
Public Class Form1
Inherits System.Windows.Forms.Form
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Int32, ByVal hWnd2 As Int32, ByVal lpsz1 As String, ByVal lpsz2 As String) As Int32
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Int32, ByVal lpString As String, ByVal cch As Int32) As Int32
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Int32
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As String) As Int32
'Private Const WM_PASTE As Int32 = &H302
Private Const WM_SETTEXT As Int32 = &HC
Private Const WM_KEYDOWN As Int32 = &H100
Private Const WM_KEYUP As Int32 = &H101
Private Const WM_LBUTTONDOWN As Int32 = &H201
Private Const WM_LBUTTONUP As Int32 = &H202

'Private Const WM_SHOWWINDOW As Int32 = &H18
Private Const SW_NORMAL As Int32 = 1
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Int32, ByVal nCmdShow As Int32) As Int32
'Private Declare Function GetLastError Lib "kernel32.dll" () As Int32
Private Const SW_SHOWNOACTIVATE As Int32 = 4
Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hwnd As Int32, ByVal lpString As String) As Int32
Private Const SW_HIDE As Int32 = 0
Private Const SW_SHOW As Int32 = 5

Dim sMess As String
Dim hwnd, hwnd2, hwnd3, i, iDelay As Int32
Dim hWndTalk(20), hWndEdit(20), hWndSend(20) As Int32
Dim MyThread As Threading.Thread
#Region " Windows 窗体设计器生成的代码 "

Public Sub New()
MyBase.New()

'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化

End Sub

'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer

'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。

Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents ButtonRefresh As System.Windows.Forms.Button
Friend WithEvents ButtonStart As System.Windows.Forms.Button
Friend WithEvents ButtonStop As System.Windows.Forms.Button
Friend WithEvents RadioButton1 As System.Windows.Forms.RadioButton
Friend WithEvents RadioButton2 As System.Windows.Forms.RadioButton
Friend WithEvents ListView1 As System.Windows.Forms.ListView
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.ButtonRefresh = New System.Windows.Forms.Button
Me.ButtonStart = New System.Windows.Forms.Button
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.GroupBox1 = New System.Windows.Forms.GroupBox
Me.ListView1 = New System.Windows.Forms.ListView
Me.RadioButton2 = New System.Windows.Forms.RadioButton
Me.RadioButton1 = New System.Windows.Forms.RadioButton
Me.ButtonStop = New System.Windows.Forms.Button
Me.Label3 = New System.Windows.Forms.Label
Me.GroupBox1.SuspendLayout()
Me.SuspendLayout()
'
'ButtonRefresh
'
Me.ButtonRefresh.Location = New System.Drawing.Point(16, 80)
Me.ButtonRefresh.Name = "ButtonRefresh"
Me.ButtonRefresh.Size = New System.Drawing.Size(56, 24)
Me.ButtonRefresh.TabIndex = 0
Me.ButtonRefresh.Text = "刷新"
'
'ButtonStart
'
Me.ButtonStart.Location = New System.Drawing.Point(16, 116)
Me.ButtonStart.Name = "ButtonStart"
Me.ButtonStart.Size = New System.Drawing.Size(56, 24)
Me.ButtonStart.TabIndex = 1
Me.ButtonStart.Text = "开始"
'
'TextBox1
'
Me.TextBox1.AutoSize = False
Me.TextBox1.Location = New System.Drawing.Point(16, 216)
Me.TextBox1.Multiline = True
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(256, 88)
Me.TextBox1.TabIndex = 3
Me.TextBox1.Text = "/cy 轰炸美国,从你开始. "
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(24, 200)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(91, 17)
Me.Label1.TabIndex = 4
Me.Label1.Text = "请输入发送内容"
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.ListView1)
Me.GroupBox1.Controls.Add(Me.RadioButton2)
Me.GroupBox1.Controls.Add(Me.RadioButton1)
Me.GroupBox1.Controls.Add(Me.ButtonStop)
Me.GroupBox1.Controls.Add(Me.ButtonStart)
Me.GroupBox1.Controls.Add(Me.ButtonRefresh)
Me.GroupBox1.Location = New System.Drawing.Point(16, 8)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(248, 184)
Me.GroupBox1.TabIndex = 9
Me.GroupBox1.TabStop = False
'
'ListView1
'
Me.ListView1.CheckBoxes = True
Me.ListView1.Location = New System.Drawing.Point(96, 24)
Me.ListView1.Name = "ListView1"
Me.ListView1.Size = New System.Drawing.Size(144, 152)
Me.ListView1.TabIndex = 12
Me.ListView1.View = System.Windows.Forms.View.List
'
'RadioButton2
'
Me.RadioButton2.Location = New System.Drawing.Point(12, 40)
Me.RadioButton2.Name = "RadioButton2"
Me.RadioButton2.Size = New System.Drawing.Size(88, 24)
Me.RadioButton2.TabIndex = 1
Me.RadioButton2.Text = "直到我叫停"
'
'RadioButton1
'
Me.RadioButton1.Checked = True
Me.RadioButton1.Location = New System.Drawing.Point(12, 17)
Me.RadioButton1.Name = "RadioButton1"
Me.RadioButton1.Size = New System.Drawing.Size(88, 24)
Me.RadioButton1.TabIndex = 0
Me.RadioButton1.TabStop = True
Me.RadioButton1.Text = "只发一次"
'
'ButtonStop
'
Me.ButtonStop.Location = New System.Drawing.Point(16, 152)
Me.ButtonStop.Name = "ButtonStop"
Me.ButtonStop.Size = New System.Drawing.Size(56, 24)
Me.ButtonStop.TabIndex = 11
Me.ButtonStop.Text = "停止"
'
'Label3
'
Me.Label3.Location = New System.Drawing.Point(96, 312)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(184, 24)
Me.Label3.TabIndex = 10
Me.Label3.Text = "---自由奔腾 wgscd----"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.BackColor = System.Drawing.Color.SkyBlue
Me.ClientSize = New System.Drawing.Size(280, 325)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.GroupBox1)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "Form1"
Me.Text = "QQ消息群炸机"
Me.GroupBox1.ResumeLayout(False)
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub ButtonRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonRefresh.Click
ListView1.Items.Clear() '清除元素
''''''''''''''''''''''''''''''''''''''''''''''''
hwnd = 0
i = 0
Dim str As String
While 1
hwnd = FindWindowEx(0, hwnd, "#32770", vbNullString)
If hwnd = 0 Then
Exit While
Else
Str = New String(Chr(0), 50)
GetWindowText(hwnd, Str, 50)
Str = Str.TrimEnd(Chr(0))
If Str.StartsWith("与 ") And Str.EndsWith(" 聊天中") Then
'聊天主窗口hwnd--子窗口hwnd2(发送BUTTON 和 hwnd3 的父窗口)--hwnd3(文本编辑框的父窗口)--文本编辑窗口句柄
hWndTalk(i) = hwnd '聊天主窗口句柄
hwnd2 = FindWindowEx(hwnd, 0, "#32770", vbNullString) '发送按钮 和 文本编辑框 的父窗口
'''''''''''''''''''''''''''''''''''''''''''
hWndSend(i) = FindWindowEx(hwnd2, 0, vbNullString, "发送(&s)") '发送BUTTON 句柄
'''''''''''''''''''''''''''''''''''''''''''
hwnd3 = FindWindowEx(hwnd2, 0, "AfxWnd42", vbNullString) '文本编辑框的父窗口
hWndEdit(i) = FindWindowEx(hwnd3, 0, "RICHEDIT", vbNullString) '文本编辑框的句柄
'''''''''''''''''''''''''''''''''''
i += 1
Str = Str.Substring(2)
Str = Str.Replace(" 聊天中", "")
Dim item As Windows.Forms.ListViewItem
item = ListView1.Items.Add(Str)
item.Checked = True
'''''''''''''''''''''''''''''''''''
End If
End If
End While

End Sub

Private Sub ButtonStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonStop.Click
If (Not MyThread Is Nothing) Then
MyThread.Abort()
End If
ButtonStart.Enabled = True
End Sub

Private Sub ButtonStart_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonStart.Click
sMess = Me.TextBox1.Text.ToString
If sMess = "" Then
MsgBox("请输入发送内容!")
Exit Sub
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'以下求延迟毫秒数
iDelay = 0
For i = 0 To ListView1.Items.Count - 1
If ListView1.Items(i).Checked = True Then
iDelay += 1 '共有多少个窗口,要发送信息
End If
Next
If iDelay = 0 Then
MsgBox("请选择至少一个聊天对象,必须打开聊天窗口,再按刷新即可。")
Exit Sub
End If
iDelay = 3100 - iDelay * 1000 '延迟多少秒,发送的窗口越少,延迟秒数越大
If iDelay < 0 Then
iDelay = 0
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If RadioButton1.Checked Then '只发一次
SendMess()
Else '不停地发,直到用户中止
MyThread = New Threading.Thread(AddressOf SendMessUntil)
MyThread.Start()
ButtonStart.Enabled = False
End If
End Sub
Private Sub SendMess()
For i = 0 To ListView1.Items.Count - 1
If ListView1.Items(i).Checked = True Then
SendMessage(hWndEdit(i), WM_SETTEXT, 0, sMess & "hhhhhhhh")
System.Threading.Thread.Sleep(iDelay)
SendMessage(hWndSend(i), WM_LBUTTONDOWN, 0, 0)
SendMessage(hWndSend(i), WM_LBUTTONUP, 0, 0)
End If
Next
End Sub
Private Sub SendMessUntil()
While 1
SendMess()
End While
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
ButtonRefresh_Click(Nothing, Nothing)
End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If (Not MyThread Is Nothing) Then
MyThread.Abort()
End If
End Sub

End Class
__________________
借用达朗贝尔的名言:前进吧,你会得到信心!
[url="http://www.dimcax.com"]几何尺寸与公差标准[/url]
huangyhg离线中   回复时引用此帖
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 02:25 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多