发表回复 
判断当前时间的问题
2010-05-26, 18 : 46
判断当前时间的问题
[i=s] 本帖最后由 bangbang 于 2010-5-27 12:16 编辑 [/i]

我想在指定的分钟数(如30)运行程序,用时间变量A_Min不行,即:
#persistent
SetTimer,time2,10000
return
time2:
if %A_Min%=30

改用FormatTime后竟然可以,就是:
#persistent
SetTimer,time2,10000
return
time2:
FormatTime, t,, mm
if t=30

不知这是为什么,开始以为一句if %A_Min%=30 就可以,太菜了,竟然这么麻烦,谁能给我解释一下呢?不明白为什么要用到persistent。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 19 : 04
 
if ( A_Min=30 )

懒惰是学习AHK的唯一动力
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 19 : 07
 
问题是这个if %A_Min%=30,这里的变量不要用%%,用了的话就表示%A_Min%变量的值是一个变量名,引用到那个变量去了
这个语言搞的我有点晕晕的,每次一改就要一试再试的,搞不清楚哪时候要用%%,RETURN,什么的
个人理解:看帮助里面的说是用表达式的地方,就不要用%%
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 19 : 24
 
那你平时用表达式就是咯(参数前加%)...某些较复杂的用.号连接时出问题的再改用%%
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 19 : 34
 
[i=s] 本帖最后由 health901 于 2010-5-26 19:37 编辑 [/i]

AHK的变量确实容易搞糊涂,多用,熟练之后就清晰了。
代码: (全选)
a=2
a1=1
b1:=1
b:=2
c=b

if a=2                        ;式子1
ans=1、√
if a=%b%                    ;式子2
ans:=ans . "`n2、√"        ;.号连接
if a:=%c%                    ;式子3
ans=%ans%`n3、√            ;直接=号连接
if a%a1%=%b1%                ;式子4
ans:=ans . "`n4、√"
MsgBox,% ans

所有脚本存至项目: https://github.com/health901/AHK, 欢迎fork
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 21 : 56
 
引用:if ( A_Min=30 )
maxspeedwind 发表于 2010-5-26 19:04 [Image: back.gif]
这个也不行啊。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 22 : 16
 
这个也不行的话,100%是你的程序其地方有问题

懒惰是学习AHK的唯一动力
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 22 : 24
 
[i=s] 本帖最后由 xzk235 于 2010-5-26 22:25 编辑 [/i]

我用这个做过测试的,可以运行
代码: (全选)
#persistent
SetTimer,time2,10000
return
time2:
if A_Min=30
msgbox asdfasdf
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-26, 22 : 47
 
[i=s] 本帖最后由 bangbang 于 2010-5-26 22:52 编辑 [/i]

我理解错了,我以为就一句代码就可以了。原来还是要带上这一堆代码。不明白为什么要加个计时器。ahk真实用,今天做了个赶集网信息自动发布的脚本,半点更新一次,只是验​证码不好弄。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-27, 13 : 08
 
你闹钟时间设好了,开关不打开,到点了它会闹吗?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-27, 15 : 01
 
说一句,不加settimer,脚本直线运行下来,且只运行一遍
如果你人品爆点或者卡着时间运行,那恭喜你,下面的代码被执行了。
如若不然,运行完,A_Min<>30,程序就结束了。
设置Settimer是为了监控时间,并附带循环运行的效果

所有脚本存至项目: https://github.com/health901/AHK, 欢迎fork
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-05-28, 21 : 53
 
问题还没完,没达到半点运行一次的效果,运行第一次后就不运行了,加了return也不行,计时器间隔设置的是10000 (不知道这个值不同条件怎么设置),代码如下:
#persistent
SetTimer,time2,10000
return
time2:
if ( A_Min=30 )
{代码
return
}
计时真难懂,可能是程序没跳回去。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2010-06-13, 10 : 50
 
if ( A_Min=30 )
{代码
}
return
这样呢?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合