一个非常棘手的问题!~
vb吧
全部回复
仅看楼主
level 1
冰麟轻武 楼主
我要向一个对话框发送一个字符串已经成功实验出是这样发SendMessage hwnd, 12, 0, ByVal "45648"首先是遍历所有任务栏窗体标题,找到后发送但是,我的这个对话框是通过自身程序打开的要是机器比较慢的话 ,可能对话框还没有打开程序就运行完了也就是说找不到这个窗口怎么才可以能窗口弹出来之后才发生遍历窗体的事件这是第一个问题第二个问题是能不能运行完上面的过程后完成以下的事件1.禁止所有键盘,鼠标按键2.把那个窗体设为活动窗体(等窗体的确是活动窗体了)3.发送ALT+S组合键4.发送ALT+C组合键5.回复键盘鼠标活动主要我被卡在2那个过程中了也就向刚才我说的,要是机器比较卡的话我设为活动窗体,但是机器卡住了可我的代码还在运行,等我的ALT+S ALT+C发送完了,窗体才跳出来那就没有意义了,可能还有反作用
2007年11月24日 06点11分 1
level 0
ddddddddddddddddd
2007年11月24日 11点11分 2
level 0
不明白你的意思,一个语句如果在MsgBox语句之前执行,那么MsgBox窗口还没有出来,你的SendMessage又怎么可能给它发送文字?如果在MsgBox语句之后执行,MsgBox窗口已经消失了,你的SendMessage又怎么可能给它发送文字?.................msgbox .......................之前和之后的语句都不可能对Msgbox发生作用,不知道你是怎么弄的...
2007年11月25日 05点11分 3
level 0
你的代码是什么样子的?
2007年11月25日 05点11分 4
level 1
冰麟轻武 楼主
我什么时候说有MSGBoX了
2007年11月25日 05点11分 5
level 1
冰麟轻武 楼主
弹出窗口不一定是MSGBOX吧比方说我 shell "explorer.exe c:\"不就弹出一个c的窗口吗
2007年11月25日 05点11分 6
level 0
原来是这样,那不就好解决了吗?
2007年11月25日 09点11分 7
level 0
'加一个Timer事件不就搞定了Dim WithEvents T1 As Timer, h1&, s1$Private Sub Form_Load()Set T1 = Controls.Add("VB.Timer", "T1")T1.Interval = 200: T1.Enabled = 1End SubPrivate Sub Command1_Click()Shell "Explorer C:\", vbNormalFocusEnd SubPrivate Sub T1_Timer()h1 = FindWindowA("CabinetWClass", vbNullString)'h1 = FindWindowA(vbNullString, "本地磁盘(D:)")If h1 Then '当发现目标窗口出现s1 = "SendMessage C:\" '发送字符串SendMessageA h1, &HC, Len(s1), ByVal s1T1.Enabled = 0 '发送之后关闭TimerEnd IfEnd Sub
2007年11月25日 10点11分 8
level 1
你先FindWindow一次窗口,在找到窗口后再SendMessage
2007年11月25日 12点11分 9
level 1
冰麟轻武 楼主
这是一个下下策的方法吧...如果不停的找,那么会很占用资源而且程序可能会假死如果找的时间间隔的太长,那么有可能打开的窗口已经被人为关闭了
2007年11月26日 06点11分 10
level 1
Sleep一下一般休眠半秒钟,程序应该打开了Shell "C:\Windows\system32\cmd.exe"Sleep 500SendMessage ........
2007年11月26日 10点11分 11
level 0
主要我被卡在2那个过程中了 也就向刚才我说的,要是机器比较卡的话 我设为活动窗体,但是机器卡住了 可我的代码还在运行,等我的ALT+S ALT+C发送完了,窗体才跳出来 那就没有意义了,可能还有反作用
2007年11月26日 10点11分 12
1