lhl5186381 发表于 2015-8-9 00:48:41

[已解决]运行一个程序,让其窗口不在屏幕中间显示,关于x 坐标,y 坐标值得设置

本帖最后由 lhl5186381 于 2015-8-9 18:53 编辑


progressOn($biaoti, "开始安装……","", -1, -1,16)
ProgressSet(50, "正在安装......")
Run(@HomeDrive & "\setup\xxx.exe")
因其进度条的位置本身已经在屏幕中间,运行xxx.exe后这个软件也在屏幕中间被进度条挡住了,我是想运行xxx.exe后将其窗口调到屏幕下方 找了一下解决的方法是用 WinExists 与WinMove这两个函数,但

WinMove ( "标题", "文本", x坐标, Y坐标 [, 宽度 [, 高度[,速度]]] ) 中 x坐标, Y坐标 怎样填写啊 ,-1,-1 表示屏幕中间,那任务栏中上方怎样表示

本人小白 望大师赐教!

Huiseyu 发表于 2015-8-9 10:20:24

WinMove ( "标题", "文本", -1, 0 [, 宽度 [, 高度[,速度]]] )

lhl5186381 发表于 2015-8-9 11:28:44

试了一下这个可以移动到左上角 也是一种办法 谢谢了 !

Huiseyu 发表于 2015-8-9 11:34:35

怎么是左上角。。
WinMove ( "标题", "文本", @desktopwidth/2 , 0 [, 宽度 [, 高度[,速度]]] )
或者   "标题", "文本",@desktop /2 - 窗口标题宽度/2 ,0

luren666 发表于 2015-8-9 15:54:13

用桌面高度减去xxx.exe窗口高度再减去任务栏的高度就是X坐标,用桌面宽度减xxx.exe窗口宽度再除2就是Y坐标。(这样xxx.exe窗口就会左右居中,窗口下边框紧贴任务栏)

lhl5186381 发表于 2015-8-9 18:46:54

谢谢啦 已经解决 {:face (316):}
#include <MsgBoxConstants.au3>

Example()

Func Example()
        ; 运行记事本程序
        Run(@HomeDrive & "\xiu.exe")
        ; 延迟 10 秒, 等待记事本窗口出现.
        WinWait("更改计算机名", "", 5)
        ; 测试窗口是否存在, 并显示结果.
        $POS = WinGetPos("更改计算机名", '')
        If WinExists("更改计算机名") Then
                WinMove("更改计算机名", "",-1, @DesktopHeight / 2)
                WinMove("更改计算机名", "", (@DesktopWidth - $POS) / 2, (@DesktopHeight - $POS))
        EndIf
EndFunc   ;==>Example

lhl5186381 发表于 2015-8-9 18:47:32

多了一句 ,吧WinMove("更改计算机名", "",-1, @DesktopHeight / 2) 删了 !!!

lhl5186381 发表于 2015-8-9 18:47:40

多了一句 ,吧WinMove("更改计算机名", "",-1, @DesktopHeight / 2) 删了 !!!
页: [1]
查看完整版本: [已解决]运行一个程序,让其窗口不在屏幕中间显示,关于x 坐标,y 坐标值得设置