level 1
小白一个。。
我想做这样一件事,
1.每隔1s激活一次窗口1.(这个我会,是用active)
2.如果窗口2(窗口2有父窗口,父窗口不是窗口1)存在,则不再进行第1条;如果窗口2消失,则恢复进行第1条(我只能想到用iswindow,但是这个指令我不会用,总是出现语句无法识别。)
3.循环重复
感谢。。
2021年12月23日 05点12分
1
level 11
//这是按照你的要求写的,虽然我无法理解这个怎么正常运行
窗口1 =0//这里添加窗口1句柄
窗口2 =0//这里添加窗口2句柄
Do
父窗口句柄 = Plugin.Window.GetParentWindow(窗口2)
If 父窗口句柄 > 0 and 父窗口句柄 <> 窗口1 Then //判断窗口2是否有父窗口并且父窗口不是窗口1
Delay 100
Else
Call Plugin.Window.Active(窗口1)//激活窗口
End If
Loop
2021年12月23日 06点12分
3
谢谢大佬,我没说清楚,我并不是想判断窗口2的父窗口如何如何,只是想表达,如果窗口2是激活的(或者是存在的),那么就不再执行激活窗口1的命令了。
2021年12月23日 07点12分
@haungnature 具体需求就是我需要重复激活窗口1,但是如果我用某键盘快捷键创造了窗口2(叫出窗口2之前,窗口2不存在,但是窗口2是从另外一个已打开程序中叫出的)之后,因为我需要窗口2一直处于激活状态,那么就不再激活窗口1了,如果我关闭了窗口2,那么就继续激活窗口1. 比较啰嗦大佬见谅。。
2021年12月23日 07点12分
@haungnature 我把我写的放在了3楼,不知道哪里出错了,反正它连窗口1也不能激活。。
2021年12月23日 07点12分
level 1
Do
Delay 100
If Plugin.Window.IsWindow(窗口2句柄) = 1 Then
Delay 100
Else
Call Plugin.Window.Active(窗口1句柄)
End If
Delay 1000
loop
2021年12月23日 07点12分
4
level 11
Do
Delay 100
If Plugin.Window.IsWindow(窗口2句柄) = 1 Then
Delay 100
Else
Call Plugin.Window.Restore(窗口1句柄)
Call Plugin.Window.Show(窗口1句柄)
End If
Delay 1000
loop
2021年12月23日 08点12分
7
level 13
If Not Plugin.Window.Foreground()=窗口1句柄 Then
Call Plugin.Window.Active(窗口1句柄)
End If
2021年12月23日 09点12分
8
level 5
是不是在一个窗口接收,一个窗口填写信息,填写完毕后退出是这样嘛?就是两个窗口中窗口二需要频繁打开,在关闭后窗口一进行刷新。那这个逻辑不通你就换个逻辑啊。还有你这个代码就给局部的,也不知道它整个在脚本中的作用是什么啊,你这个操作是前台还是后台啊。窗口你表达的激活,是真激活还是假激活啊。要是真激活,我觉得你可以换个思路,不判断窗口二存不存在,判断它是否处于激活。不激活肯定就不存在嘛,然后在回去重复循环。
2021年12月24日 01点12分
9