瑞星升到13.x后,关机、重启的api函数不好用了,是级别低么?应怎样改?(100分)

  • 主题发起人 主题发起人 yanyuwuhen
  • 开始时间 开始时间
Y

yanyuwuhen

Unregistered / Unconfirmed
GUEST, unregistred user!
   瑞星不响应该关闭消息,无法关机!
 
不会吧,刚才使用成功。<br>使用ExitWindowsEx(EWX_REBOOT,0)重新启动计算机。<br>正常启动。<br>另外建立一个dpr,然后在OnCloseQuery里面填写CanClose:=False;<br>编译后打开这个文件,然后执行原来的ExitWindowsEx,不能关闭。<br>一切OK!<br>测试环境,瑞星13.7测试版,呵呵。
 
瑞星才到13.33啊?哪里有13.7?<br>to yzhshi:(1)你能不能用低版本的瑞星试一试(13.x&lt;13.33);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (2)你不要在OnCloseQuery里面填写CanClose:=False,直接使用ExitWindowsEx(98/me)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 试一试,看看是否能关掉。<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
 
没错,其实我不喜欢瑞星,所以没有安装,刚才是在同事的计算机上实验的。<br>呵呵,他正在那里研究我的代码呢。
 
其实,一旦真的不让关机了,也可以强制关机,使用ExitWindowsEx加上EWX_FORCE最为参数就可以了。<br>呵呵,我没有实验过吆。<br>对瑞星13.33一下,我没实验。
 
to yzhshi:<br>&nbsp; &nbsp;在不运行瑞星的时候(我运行的是13.33),没问题;运行之后,发出消息得不到响应。
 
其实你自己也可以编写,不让ExistWindows(EWX_REboot,0)起作用的东西呀。<br>我上面已经说了。<br>瑞星如果真的这样做未免就太霸道了,不过我们可以这样执行<br>if ExitWindow(EWX_REBOOT,0)=False then<br>&nbsp; ExitWindow(EWX_FORCE,0)<br>就不信他不关机?<br>
 
我的ExitWindow参数中直接用的就是EWX_FORCE,不行的。<br>而且我的瑞星时刚才升级的,最新的。不过这个问题从瑞星的13.x开始就有了。<br>我不知道是不是瑞星的进程优先级太高,不响应我的消息。
 
&nbsp; &nbsp;对于ExitWindowsEX,带EWX_Reboot参数时实现的原理是操作系统向所有进程发送WM_Close消息。<br>每个进程接收消息后,返回给一个状态处理标志位,如果允许Close,则返回True,否则返回False、<br>当ExitWindowsEX接收所有消息都是True的时候,才将自己的返回值设置为True。标志重新启动计算机成功。<br>&nbsp; &nbsp; 但是当一个进程发送了False消息,好了,ExitWindowsEx就返回False,表示不能关闭计算机了。<br>&nbsp; &nbsp; 其实,作为一个软件不能做的这样霸道(如果他真这样做的话),我在瑞星13.7测试版下实验了,正常<br>启动计算机,表示他没有这样做。<br>&nbsp; &nbsp; 我们自己也可以实现类似的禁止ExitWindowsEX重新启动的代码,方法就象上面说的,在Form的CloseQuery添加<br>判断就可以了,不过,你最好还是给自己正常退出留一个口子,否则,自己都被陷在里面了,只能按Ctl+Alt+Del了。<br>&nbsp; &nbsp; 所以说,绝对不是瑞星的优先级问题。<br>&nbsp; &nbsp; 但是,瑞星有一个Bug,在扫描病毒的时候,以独占方式打开。发现的问题是这样的,一台比较慢的笔记本电脑,<br>安装了瑞星的实时监控程序后,对于比较大的Word文件不能保存。一保存就说没有写权限,后来仔细摸索,发觉是瑞星<br>在搞鬼。
 
我的单位的机子一直用诺顿病毒防火墙,速度还可以,前一段局里统一装了瑞星2001,<br><br>我的天,开着防火墙软件运行速度极剧下降,弄了我开机第一件事就是关了它,说句心<br><br>里话,我对瑞星现在是不屑一顾,太差劲了,就凭先杀了个CIH,铺天的广告就坐上杀毒<br><br>头把交椅,它们的技术实力太让人担心,干脆装别的杀毒软件得了。<br>
 
to yzhshi兄:<br>&nbsp; &nbsp;谢谢你帮我解释这么多。我自己的程序中要做到不允许关闭还好说,但我想关闭系统.<br>不运行瑞星的时候一切都正常(这也是我认为不是程序本身存在逻辑错误的原因之一),但<br>运行瑞星之后,ExitWindowsEx发出消息后就死机了,除瑞星之外的程序都关闭了!鼠标移动<br>正常,点击无反应。<br>&nbsp; &nbsp;我想在程序中实现关机的功能,就必须关掉瑞星(我用获得进程再杀掉的方法都弄死机了,<br>可能需同时关掉几个进程。我没试,但仅关掉一个是不行的)。<br>&nbsp; &nbsp;我看了瑞星的网站,最新的单机版本就是13.33,没有13.7啊(内部得来的么?),以前12.x<br>的版本中ExitWindowsEx是好用的,现在不行。<br>&nbsp; &nbsp;我再单独试试这个函数,看看返回的消息。估计瑞星返回的不是true,试试再说,估计还要<br>麻烦你^O^.<br>to homejun兄, <br>&nbsp; &nbsp;我也不想用瑞星了,我只是想解决这个问题,之后就让瑞星去休息吧(我还买的是正版呢!)<br>瑞星公司对待客户(我)的问题的答复太让我失望了(他们的答复就是:不管你怎样问,怎<br>样去信,我就是不理你)。以后我不会再买瑞星,也不会介绍任何人买它。至于对瑞星的评价<br>等我弄清这个问题再说,现在害怕冤枉了瑞星,因为yzhshi兄帮我测试中没发现我的问题;<br>如果你方便能帮我测一下,很简单的。谢谢。<br><br>
 
不会吧。会有这种问题吗?<br>我用WINOFF这个软件,可以关机。<br>我的瑞星是13。33版。
 
kao我发现瑞星装后比norton还慢,不知道这帮家伙是如何写的程序。
 
我发现了问题的原因了;我在FormCloseQuery 中添加了<br>if EXflag=false then canclose:=false;<br>以前我调用ExWindowsEx前已将exflag:=true;<br>关机正常;大家可以试一下;<br>但瑞星升到13。x后这样写就不行了。<br>我在exflag:=true 后做一下延时(等待消息返回),再调ExWindwosEx就好用了!<br>*****************谢谢大家的帮助。********************
 
发分了,请接收[:D]
 
后退
顶部