昆仑通泰自动注销 点击:1634 | 回复:11



阿龙

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-04 16:07:24
楼主

下面这段脚本是用于在客户没有任何操作一段时间(以10S为例)后,注销当前登录的用户。但是这段脚本在用户窗口的循环里可以起作用,在循环策略里却不起作用。几次测试发现是!sendkeys("{ENTER}")这个函数在循环策略里调用有问题。我不想在每个窗口都写这个脚本,有没有哪位大神可以指导一下的。

if !strComp(!Trim(!GetCurrentUser()),"") <> 0 then

  Temp_无操作时=!TimeSpanGetSeconds(!TimeGetSpan(!TimeGetCurrentTime(),!GetLastMouseActionTime()))

  IF (Temp_无操作时间 >= 10) and (V0114用户自动注销时间<>0) THEN

    !SendKeys("{ENTER}")

    !LogOff()

  ENDIF

ENDIF


脚本没问题,模拟测试有问题,谢谢楼下的大神帮忙,11楼有最终脚本,和这个差不多,分享给大家,有问题可以留言




楼主最近还看过



ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-07-05 14:26:23
1楼

自然是要写在循环策略里,没发现不起作用。

阿龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-14 16:27:43
2楼

"ozoner" 的回复,发表在1楼
        对内容: 【自然是要写在循环策略里,没发现不起作用。】进行回复:

        -----------------------------------------------------------------

这段代码就是我循环策略里的代码,我测试的时候当时间超过10秒后, !LogOff()是有效果的,弹出退出的界面了,但是!SendKeys("{ENTER}")没起作用,弹出的退出界面一直在,循环策略1000ms执行一次,有可能是啥情况啊。。。


ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-07-18 14:46:27
3楼

"阿龙" 的回复,发表在2楼
        对内容: 【"ozoner" 的回复,发表在1楼        对内容: 【自然是要写在循环策略里,没发现不起作用。】进行回复:        ----------------------------------...】进行回复:

        -----------------------------------------------------------------


循环时间太长了, 改为100ms或200ms试试。

阿龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-20 08:25:25
4楼

"ozoner" 的回复,发表在3楼
        对内容: 【"阿龙" 的回复,发表在2楼        对内容: 【"ozoner" 的回复,发表在1楼        对内容: 【自然是要写在循环策略里,没发现不起作用。】进行回复:        ------...】进行回复:

        -----------------------------------------------------------------

好的,谢谢,我试试看


阿龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-20 09:56:55
5楼

"ozoner" 的回复,发表在3楼
        对内容: 【"阿龙" 的回复,发表在2楼        对内容: 【"ozoner" 的回复,发表在1楼        对内容: 【自然是要写在循环策略里,没发现不起作用。】进行回复:        ------...】进行回复:

        -----------------------------------------------------------------


循环时间改成100ms也不行,注销窗口出来了,!SendKeys("{ENTER}")还是没起作用

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-07-20 18:10:29
6楼

"阿龙" 的回复,发表在5楼
        对内容: 【"ozoner" 的回复,发表在3楼        对内容: 【"阿龙" 的回复,发表在2楼        对内容: 【"ozoner" 的回复,发表在1楼        对内容: 【自然是要写在循环...】进行回复:

        -----------------------------------------------------------------

是模拟运行的吗?

阿龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-21 10:12:33
7楼

"ozoner" 的回复,发表在6楼
        对内容: 【"阿龙" 的回复,发表在5楼        对内容: 【"ozoner" 的回复,发表在3楼        对内容: 【"阿龙" 的回复,发表在2楼        对内容: 【"ozoner" 的回复...】进行回复:

        -----------------------------------------------------------------


对的

阿龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-21 11:26:09
8楼

"ozoner" 的回复,发表在6楼
        对内容: 【"阿龙" 的回复,发表在5楼        对内容: 【"ozoner" 的回复,发表在3楼        对内容: 【"阿龙" 的回复,发表在2楼        对内容: 【"ozoner" 的回复...】进行回复:

        -----------------------------------------------------------------


我在触摸屏上测试了,可以用的,模拟测试有问题啊。。。

ozoner

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 852回
  • 年度积分:0
  • 历史总积分:8613
  • 注册:2017年1月12日
发表于:2020-07-21 19:59:22
9楼

"阿龙" 的回复,发表在8楼
        对内容: 【"ozoner" 的回复,发表在6楼        对内容: 【"阿龙" 的回复,发表在5楼        对内容: 【"ozoner" 的回复,发表在3楼        对内容: 【"阿龙" 的回复...】进行回复:

        -----------------------------------------------------------------

这就对了了,模拟运行环境不灵的。 基本上从不用模拟环境来测试,除非是简单的逻辑运算。

所有PLC等的模拟软件都不能做到100%的,尤其是当程序中有用到定时相关函数时。 因为这些函数在执行是要调用到硬件的支持,而模拟环境使用的都是windows的资源,无法做到100%的支持。  所以,只要有触摸屏,尽量传到屏里来测试程序。


看下很久以前发一个更简洁的样例的帖子,里面特别说明了:

http://bbs.gongkong.com/d/201808/769225/769225_1.shtml


阿龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-22 08:33:02
10楼

"ozoner" 的回复,发表在9楼
        对内容: 【"阿龙" 的回复,发表在8楼        对内容: 【"ozoner" 的回复,发表在6楼        对内容: 【"阿龙" 的回复,发表在5楼        对内容: 【"ozoner" 的回复...】进行回复:

        -----------------------------------------------------------------


好的,真的是太感谢了

阿龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 30回
  • 年度积分:4
  • 历史总积分:90
  • 注册:2017年12月19日
发表于:2020-07-22 08:45:18
11楼

if !strComp(!Trim(!GetCurrentUser()),"") <> 0 then

  Temp_无操作=!TimeSpanGetSeconds(!TimeGetSpan(!TimeGetCurrentTime(),!GetLastMouseActionTime()))

  IF (Temp_无操作时间 >= 用户自动注销时间) and (用户自动注销时间<>0) THEN

    !SendKeys("{ENTER}")

    !LogOff()

  ENDIF

ENDIF

这是自动注销的脚本,写在循环策略里面,应该是比较简单的“ 用户自动注销时间”是用来设置注销时间,如果不需要可以把时间写死(比如10秒):

IF (!TimeSpanGetSeconds(!TimeGetSpan(!TimeGetCurrentTime(),!GetLastMouseActionTime()))>=10) THEN

触摸屏测试可用,模拟测试有问题,分享给大家


热门招聘
相关主题

官方公众号

智造工程师