以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]系统空闲时的执行命令出现问题。  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=66463)

--  作者:liuxianjie1980
--  发布时间:2015/4/7 15:48:00
--  [求助]系统空闲时的执行命令出现问题。

项目的系统空闲时写入以下代码:

 

If LastInputTickCount > 100000 Then
    Syscmd.Project.SwitchUser()
End If

 

上个厕所,OMG!登陆框出现了NNNN个啊!!

 

问题在哪里??


--  作者:Bin
--  发布时间:2015/4/7 15:53:00
--  
因为这个事件会一直触发,然后一直执行的.
你可以增加一个全局变量

vars("login")=true

If LastInputTickCount > 100000 Then
     if vars("login") then
     vars("login")=false
    Syscmd.Project.SwitchUser()
     end if
End If

再到LoadUserSting 事件设置vars("login")=True

--  作者:狐狸爸爸
--  发布时间:2015/4/7 17:41:00
--  

用静态变量更方便:

 

Static f As Boolean

If LastInputTickCount > 100000 Then

    if f = False then

       f= True
       Syscmd.Project.SwitchUser()

      f = false

   Endif
End If

 


--  作者:liuxianjie1980
--  发布时间:2015/4/8 9:20:00
--  
静态变量f只是在代码中定义就可以了吗?不需要额外定义?
--  作者:Bin
--  发布时间:2015/4/8 9:21:00
--  
不需要
--  作者:liuxianjie1980
--  发布时间:2015/4/8 9:39:00
--  

还有一个疑问,f作为逻辑变量,在上述代码中只是做了定义,它的值呢?系统是如何识别它的值的呢?


--  作者:狐狸爸爸
--  发布时间:2015/4/8 10:08:00
--  

逻辑变量的值,默认是false,直到你用代码改变他的值。

 

另关于静态变量的说明:

http://www.foxtable.com/help/topics/1061.htm

 

[此贴子已经被作者于2015/4/8 10:09:12编辑过]

--  作者:liuxianjie1980
--  发布时间:2015/4/8 11:17:00
--  
ok