吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2761|回复: 5
上一主题 下一主题
收起左侧

[讨论] vbs怎么使一个窗口置顶?

[复制链接]
跳转到指定楼层
楼主
HZZC 发表于 2021-9-13 23:44 回帖奖励
当我打开SECURECRT时,会弹出这个试用信息的弹窗。程序启动的时间不一定,所以这个这个弹窗出现的时间是不确定的,而我希望这个弹窗出现后立马进行点击按钮的操作。
现在就是有2个问题,第一个是 如何不断地检测这个弹窗是否出现,第二个就是怎么把这个窗口置顶,并点击这个窗口上的按钮。



Set WshShell=createobject("wscript.shell")
Set oExec=WshShell.Exec(Program1)
Wscript.sleep 1000
WshShell.AppActivate oExec.ProcessID
WshShell.SendKeys "{right}"
WshShell.SendKeys "{right}"
WshShell.sendkeys "{enter}"

这个AppActivate并不能让窗口置顶,或者让焦点在这个窗口上,有时程序运行慢了,后面的按键动作就会在其他程序上执行

image.png (51.24 KB, 下载次数: 2)

image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
zhanglei1371 发表于 2021-9-14 05:37
用ahk实现更好吧,或者au3亦可轻松实现
3#
温柔的笑 发表于 2021-9-14 07:41
本帖最后由 温柔的笑 于 2021-9-14 07:43 编辑

取到窗口句柄按钮id应该可以实现
4#
liuzhh 发表于 2021-9-14 08:44
5#
b0y 发表于 2021-9-14 08:45
vbs不知道 写个exe 启动后检测窗口。出现了就取按钮ID并点击
6#
JuncoJet 发表于 2021-9-14 10:02
本帖最后由 JuncoJet 于 2021-9-14 10:10 编辑

VBS需要DynamicWrapper搭配的
VB不需要,建议VB来写

VBS这么写
[Visual Basic] 纯文本查看 复制代码
set w=CreateObject("DynamicWrapper")
w.Register "user32","FindWindowA","i=ss","f=s","r=l"
w.Register "user32","SetForegroundWindow","i=l","f=s"
h = w.FindWindow("Notepad", vbNullString)
w.SetForegroundWindow h


VB6这么写
[Visual Basic] 纯文本查看 复制代码
Private Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Form_Load()
    h = FindWindow("Notepad", vbNullString)
    SetForegroundWindow h
End Sub

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
HZZC + 1 + 1 谢谢@Thanks!
极品小猫 + 1 + 1 围观

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 20:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表