凌菡 发表于 2011-12-30 00:36:27

求个匹配某段关键字即执行预定的几个进程或……

本帖最后由 凌菡 于 2011-12-30 00:38 编辑

新手入门,此程序急用,所以来求助于各位达人。需求是这样的:

电脑开机后,运行

c:\windows\system32\clsmm.exe /long

命令后,会在右下角弹出个框,这个框里会显示

会员卡号:123456789191248468(这个数字是18位的身份证号)

当在这个框里匹配这个18位的身份证号后,

则立即结束进程中的1.exe a.exe a34.exe进程,

如果没有这几个进程,就继续等待2分钟,在这2分钟内,如果有其中的某进程运行,就立即结束,如果以上几个进程全都匹配了,就立即完全退出,如果没有,不做提示

直到2分钟的时候,程序完全退出。

以上要求要怎么写?

另外一个:

当IE6的地址栏输入比如baidu.com敲回车后,

则立即结束进程中的1.exe a.exe a34.exe进程,

如果没有这几个进程,就继续等待2分钟,在这2分钟内,如果有其中的某进程运行,就立即结束,如果以上几个进程全都匹配了,就立即完全退出,如果没有,不做提示

直到2分钟的时候,程序完全退出。



这两个分别要怎么写呢?

80ren 发表于 2011-12-30 08:26:15

等待高手解答

凌菡 发表于 2011-12-30 14:13:02

自己在恶补学习手册中,无奈,实在是还没达到自己所需要的水平,哪位前辈路过,帮个忙哈~

半芯蕃茄 发表于 2011-12-30 19:01:29

要实现其实也挺简单的,弹出个框,这个框里会显示??把图片发上来,参考一下罗。

凌菡 发表于 2011-12-31 00:07:28

嗯,好吧,我上传这个图

半芯蕃茄 发表于 2011-12-31 05:22:53

电脑开机后,运行
c:\windows\system32\clsmm.exe /long
弹出个框
会员卡号:123456789191248468(这个数字是18位的身份证号)
如果卡号=18位
则立即结束进程1.exe a.exe a34.exe。
如果进程不存在,等待2分钟,在这2分钟内,如果有其中之一运行,就立即结束,如果以上几个进程全都出现过并结束了,程序退出,如果超时,程序退出。
我的理解是这样。不知是否如此?

augual 发表于 2011-12-31 08:51:36

把你要开机运行的程序用AU3加到注册表开机启动
会员卡号你没说放在哪里要怎么读
那个判断倒是可以
$i=0
while $i<=120
      if processexit("1.exe") then processclose("1.exe")
      if processexit("a.exe") then processclose("a.exe")
      if processexit("a34.exe") then processclose("a34.exe")
      sleep(1000)
wend

xms77 发表于 2011-12-31 10:11:43

回复 1# 凌菡
如果没有这几个进程,就继续等待2分钟,在这2分钟内,如果有其中的某进程运行,就立即结束(结束某进程吗?),如果以上几个进程全都匹配了(是不是那三个进程都出现过就算全都匹配了?),就立即完全退出(退出那个程序?Au3的程序吗?),如果没有,不做提示,直到2分钟的时候,程序完全退出(Au3的程序吗?)。
很多疑问,不清楚怎么弄啊,另外没有你的那个万象软件,不好判断会员号的18位

love5173 发表于 2011-12-31 10:39:20

本帖最后由 love5173 于 2011-12-31 10:45 编辑

后面的流程都好控制,就是前面的我不知道你匹配的什么,不好给代码
$a=0,$b=0,$c=0
$begin = TimerInit()
while TimerDiff($begin)<60*2*1000
if $a==1 and $b==1 and $c == 1 then exit
      if processexit("1.exe") then
      processclose("1.exe")
   $a=1
endif
      if processexit("a.exe") then
   processclose("a.exe")
$b=1
endif
      if processexit("a34.exe") then
processclose("a34.exe")
$c=1
sleep(500)
endif
$i+=1
wend

半芯蕃茄 发表于 2011-12-31 12:59:45

嗯。后面那段有人发了,我说说我对前面框框的实现方法和思路:
首先WinGetText 返回窗口文本内容,然后使用StringMid ( "字符串", 起始位置 [, 数量] )
取出卡号。这一段如果会正则的话那就简单多了。StringRegExp ( "字符串", "表达式" [, 标志 ] [, 偏移量 ] ] )

可惜我不会正则,痛苦……

Qokelate 发表于 2012-1-1 10:34:42

莫非是除广告?

凌菡 发表于 2012-1-1 13:53:53

不好意思,才刚上来,这个,其实,就是网吧里的万象客户端。
回复8楼的:

如果没有这几个进程,就继续等待2分钟,在这2分钟内,如果有其中的某进程运行,就立即结束(结束某进程吗?){我这句的意思是说,在这2分钟内,如果出现1.exe a.exe a34.exe这几个进程里的任意一个,比如,1.exe一出现在进程列表,就结束掉TA},如果以上几个进程全都匹配了(是不是那三个进程都出现过就算全都匹配了?){对,就是如果1.exe a.exe a34.exe这三个都出现了,且都给结束掉了},就立即完全退出(退出那个程序?Au3的程序吗?){就退出的意思是,AU3就用完了,内存里就不需要它驻留了,完全退出AU3,就跟开机没有加载TA一样},如果没有,不做提示,直到2分钟的时候,程序完全退出(Au3的程序吗?)。{对,依然是同前面一样,退出AU3。}

凌菡 发表于 2012-1-1 13:57:00

回复6楼的,对,你的理解相当正确,我的意思就是这样的。

电脑开机后,运行
c:\windows\system32\clsmm.exe /long
弹出个框
会员卡号:123456789191248468(这个数字是18位的身份证号)
如果卡号=18位
则立即结束进程1.exe a.exe a34.exe。
如果进程不存在,等待2分钟,在这2分钟内,如果有其中之一运行,就立即结束,如果以上几个进程全都出现过并结束了,程序退出,如果超时,程序退出。
我的理解是这样。不知是否如此?

凌菡 发表于 2012-1-1 14:01:46

把你要开机运行的程序用AU3加到注册表开机启动
会员卡号你没说放在哪里要怎么读
那个判断倒是可以


回复7楼,这个依我的理解,只能是在窗口弹出后,用匹配窗口关键字的形式,就是用

WinWaitActive("会员卡号:123456789191248468")

然后,再执行下一语句。

不知可行不?

半芯蕃茄 发表于 2012-1-1 14:34:13

本帖最后由 半芯蕃茄 于 2012-1-1 14:36 编辑

WinWait("万象网管客户端","会员卡号:",120);超时为2分钟
你一定要获取会员卡号??还是你只想判断万象客户端窗口出现而已?
页: [1] 2
查看完整版本: 求个匹配某段关键字即执行预定的几个进程或……