我在第8行的if
声明无效。即使%{宽度%Msgbox
显示3200,我总是得到“宽度不是3200”消息框。将if
更改为==并检查“3200”而非3200无效。
我还将if
语句放在activeMonitorInfo
方法中,并在那里显示相同的行为。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
activeMonitorInfo( X, Y, Width, Height )
Msgbox %Width%
if ( %Width% = 3200 ) {
msgbox "Width is 3200"
return
} else {
msgbox "Width is not 3200"
return
}
activeMonitorInfo( ByRef X, ByRef Y, ByRef Width, ByRef Height )
{
CoordMode, Mouse, Screen
MouseGetPos, mouseX , mouseY
SysGet, monCount, MonitorCount
Loop %monCount%
{
SysGet, curMon, Monitor, %a_index%
if ( mouseX >= curMonLeft and mouseX <= curMonRight and mouseY >= curMonTop and mouseY <= curMonBottom ) {
X := curMonTop
y := curMonLeft
Height := curMonBottom - curMonTop
Width := curMonRight - curMonLeft
return
}
}
}
答案 0 :(得分:1)
忽略百分号:
if ( Width = 3200 ) {
与
相同if width = 3200
{
与
相同if(width=="3200") {
但由于某些原因,if width == 3200
或if width = "3200"
无效。我只是使用上面的第一种方法,没有什么可以出错。
在Ahk中,如果文档明确要求您提供%
(或名称,文字,数字等),则只需要value
。
此外,在文字分配中使用百分号:a = %width%
。但是,不是在使用表达式赋值时:a := width
。