×
大家都在搜

DBNT云维护技术支持 - 深圳市聚源科技有限公司

QQ登录

只需一步,快速开始

+发表新主题

[e求助] EXET文件哪里来的?

[复制链接]

[e求助] EXET文件哪里来的?

不是小灵通 发表于 2015-7-17 13:53:43 浏览:  814 回复:  1 [显示全部楼层] |只看大图 回帖奖励 |倒序浏览 |阅读模式
我弄了一个考试机禁止插U盘的程序,主要功能:1、考试前,推送至每台电脑,并运行A或B程序之一,程序自动启动另一程序,二者相互守护
2、当上机考试期间,考生在电脑上插入U盘,则程序锁定其键鼠,并予以提示


3、考生若通过任务管理器终止其中A或B之一,则程序立即锁住键鼠,并将另一程序再次启动
4、程序在后台运行的时候,可以通过F11热键呼出对话框,输入密码“1234”后完全退出
5、因为没有在杀软公司注册,实测360杀毒会报警
---------------------------------------------------------------------------------------------------------------------------------
现在问题出来了,运行A后,不知何故,B文件的创建时间变为了当前的,并且还生成了一个exet文件
此问题以前在论坛提出过,还有AU3论坛,但均未果,今天又出现了。。。
未标题-1.jpg

贴上本程序源码,烦请有空的老大们帮忙编译后测试一下,并分析是怎么回事
源码A:
  1. ;主程序,守护程序
  2. #NoTrayIcon
  3. #include <Misc.au3>;只允许一个实体
  4. Opt("TrayMenuMode", 3);禁止托盘显示及退出

  5. Local $PEB=ProcessExists ( "KSB.exe" )
  6. Local $pwd ="1234";默认退出密码
  7. Local $warning1=0;告警计数,但需考虑若本程序强制退出后,如何让计数继续>0,Global?不赋值0?
  8. Sleep(1000);延迟1秒再拟启动B程序

  9. If $PEB=0 Then;若B进程不存在(第一次进入)
  10.         Run( "KSB.exe")
  11.         MsgBox(4096, "计算机实验室(考试U盘监控告警程序V1.0)", "计算机实验室考试U盘监控告警程序已经启动,请机房老师仔细检查是否每台机器都已出现本对话框"& @CRLF "现在可抽查进程KSA.EXE以及KSB.EXE是否已存在"& @CRLF & @CRLF &"本对话框30秒后自动消失,进入监控告警模式...",30)
  12. EndIf


  13. While 1
  14.         $PEB=ProcessExists ( "KSB.exe" );每次循环,重新检查B进程是否还在
  15.         If $PEB=0 Then;若B进程不存在
  16.                 BlockInput(1);锁定计算机键鼠
  17.                 MsgBox(16, "【警告】键盘及鼠标已被系统锁定5秒", "☆☆☆☆☆ 端正考风 严肃考纪 ☆☆☆☆☆"& @CRLF & @CRLF &"【警告】再次插入移动磁盘,将自动清除其中所有文件及文件夹!!!",5)
  18.                 $warning1=$warning1+1
  19.                 ;对再次插入移动磁盘的情况,进行删除文件(或锁屏)操作
  20.                 If $warning1>0 Then
  21.                         ;获取移动磁盘盘符
  22.                         Local $aArray = DriveGetDrive("REMOVABLE")
  23.                         If @error Then
  24.                                 ; An error occurred when retrieving the drives.
  25.                                 MsgBox(4096, "DriveGetDrive", "It appears an error occurred.")
  26.                         Else
  27.                                 For $i = 1 To $aArray[0]
  28.                                         ; Show all the drives found and convert the drive letter to uppercase.
  29.                                         ;MsgBox(4096, "DriveGetDrive", "Drive " & $i & "/" & $aArray[0] & ":" & @CRLF & StringUpper($aArray[$i]))
  30.                                         MsgBox(16, "【警告】即将清除文件...", "☆☆☆☆☆ 已侦测到移动磁盘再次插入,将于5秒钟后强制清除该磁盘内所有文件及文件夹!!! ☆☆☆☆☆"& @CRLF & @CRLF &"请立即将磁盘拔除,否则由此产生的任何后果将由考生自行承担!",5)
  31.                                         Local $d=StringUpper($aArray[$i]) & "\*.*"
  32.                                        
  33.                                         ;DirRemove ( $d ,1 )
  34.                                         ;FileDelete ( $d )
  35.                                 Next
  36.                         EndIf
  37.                        
  38.                        



  39.                        
  40.                 EndIf
  41.                 Run( "KSB.exe")
  42.                 ;;只允许一个B进程
  43.                 If _Singleton($PEB, 1) = 0 Then Exit
  44.                 ;~ If WinExists($keyB) Then
  45.                 ;~ Exit
  46.                 Endif
  47.         Else
  48.                 ;解锁键盘
  49.                 BlockInput(0)
  50.         EndIf
  51.        
  52.         Udisk()
  53.        
  54.         Sleep(200)
  55.        
  56.         HotKeySet("{F11}", "Endend");程序退出热键F11
  57. WEnd


  58. Func Endend()
  59.         Local $passwd = InputBox("程序退出", "10秒内输入退出密码", "", "*",400,120,20,20,10)
  60.         If $passwd=$pwd Then
  61.                 ProcessClose($PEB)
  62.            ;结束程序
  63.                 MsgBox(4096, "程序退出", "考试程序已结束!",3)
  64.                 ;ProcessClose($PEA)
  65.                 Exit
  66.         EndIf
  67. EndFunc
  68.        
  69. Func Udisk()
  70.         $Var = DriveGetDrive("REMOVABLE")
  71.         If Not @error Then
  72.            ;锁定计算机
  73.                 BlockInput(1)
  74.                 MsgBox(16, "端正考风 严肃考纪", "考试期间严禁将存储设备插入到电脑上!"& @CRLF & @CRLF &"本机键盘及鼠标已被系统锁定,请立即拔出该存储设备!",1)
  75.         Else
  76.                 ;解锁定计算机
  77.                 BlockInput(0)
  78.         EndIf
  79. EndFunc
复制代码
源码B
  1. ;守护A程序
  2. #NoTrayIcon
  3. #include <Misc.au3>;只允许一个实体
  4. Opt("TrayMenuMode", 3);禁止托盘显示及退出

  5. Local $PEA=ProcessExists ( "KSA.exe" )
  6. While 1
  7.         $PEA=ProcessExists ( "KSA.exe" );每次循环,重新检查A进程是否还在
  8.         If $PEA=0 Then;若A进程不存在
  9.                 BlockInput(1);锁定计算机键鼠
  10.                 MsgBox(16, "【警告】键盘及鼠标已被系统锁定5秒", "☆☆☆☆☆ 请勿从事与考试无关的操作! ☆☆☆☆☆",5)
  11.                 Run( "KSA.exe")
  12.                 ;只允许一个A进程
  13.                 If _Singleton( $PEA, 1) = 0 Then
  14.                         MsgBox(0, "警告","试验已经运行")
  15.                         Exit
  16.                 EndIf

  17.         EndIf
  18.         BlockInput(0)
  19.         Sleep(200)
  20. WEnd
复制代码



如果我穿越了,我就先帮亲们灭了日本
回复

使用道具 举报

thinking thinking 发表于 2015-7-19 14:43:39 显示全部楼层
看了一下,还真没发现问题。
深蓝 Thinking软件专题站 www.sLsup.com  —— 接受软件定制与深蓝(Thinking)原创软件的OEM,VIP定制。

大道致简,学以致用。 欲收获,先付出。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

DBNT云维护技术支持 - 深圳市聚源科技有限公司 ( 粤ICP备17103197号 )

-