这个文件20K,很小!VB做的。怎么关也关闭不了。是一个人说什么汇编+VB天下无敌所说的。我现在有这个文件,谁要就写下邮箱。

解决方案 »

  1.   

    刚刚没运行你的程序,现在运行了一下
    此技术不用汇编,用纯VB就可以了
    等一下我把源代码给你COPY上来
      

  2.   

    Option Explicit
    Dim MyPath As StringPrivate Sub Command1_Click()
       Unload Me
    End SubPrivate Sub Form_Load()
       MyPath = App.Path & "\" & App.EXEName & ".exe"
    End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
       If UnloadMode = 1 Then
          Cancel = False
       ElseIf UnloadMode = 3 Then
          Shell MyPath
       Else
          Cancel = True
       End If
    End Sub临时写的,见笑了
      

  3.   

    如果可以用Timer控件,那实现起来就容易,不过这样的话就没什么意思了
      

  4.   

    请问杰西朋友,用Timer怎么实现,请写给我一个。麻烦了!
      

  5.   

    我在Windows 98下测试了一下,发现在运行这个程序后,有两个进程,关闭其中一个,又有一个出现,总之永远保持两个进程,应该是这样了。我在WIndows98见到了,是两个程序,无论什么时候都是。
      

  6.   

    [email protected]
    希望能发源代码给我,谢谢!
      

  7.   

    学习学习, [email protected]
    谢谢!
      

  8.   

    To:samgamlung() 
    改天有时间弄个给你,当然与你所给的可能会有点区别,不过大部分功能会一样,到时发到你的邮箱中去
      

  9.   

    http://www.anyfreedom.net/Soft/ShowSoft.asp?SoftID=1
    在这里找了一个……
      

  10.   

    有啥好难的,我6年前就写过了
    在Unload时间中在为自己创建一个进程,不就关不掉了.
      

  11.   

    据我所知,结束进程的时候不经过Unload等事件的吧。
    去年写过一个两个程序相互监视的,结束掉其中一个,另外一个就启动它,呵呵
      

  12.   

    哈哈
    用两个进程,一个是隐藏的,不过我已把它们都关了。
    我首先用icesword查看进程ID,然后用ntsd -c q -p ID
    杀死隐藏的哪个进程,然后再用icesword杀死另一个
    比起来哪些杀毒软件的进程,好杀多了.不过我还是得用好工具:Icesword
      

  13.   

    不过,好像总得用两三次ntsd -c q -p ID
      

  14.   

    目前还只想到用双进程然后用WaitForSingleObject来监控进程是否已经结束,如结束就再开一进程,不过太耗资源,故想放弃。padin(庖丁)朋友想到了不要用进程监控的方法,不知能否共享?
    期待!!!另:Unload事件在应用程序列表中结束时会激发此事件,在进程列表结束时是不会激发的
      

  15.   

    这些东西都很简单可以实现,WINDOWS任务管理器其实也可以关闭只要选择主程序选择结束进程树即可搞定,或者用一个多选择的进程管理器来结束一样搞定
    好的办法还是得拦截API
      

  16.   

    麻烦你发我邮箱
    [email protected]
      

  17.   

    Vista所谓的核心只读以控制入侵,如果写个进程只读程序不就关不了。
      

  18.   

    2个进程彼此相互监视,一旦没有找到对方进程就判断对方EXE是否存在,是否已经改变等    如果不存在,或者已经改变就直接使用自己的资源(事先保存好对方EXE 2进制代码)生成一个EXE,并且调用,这个监视是每5秒扫描一次!或者更段,如果你在5秒内没有结束2个进程,那就永远结束不了了!
      

  19.   

    忙的忘了,其实就是设置一个错误钩子,就是windows的调试函数,大家都见过QQ出错意外崩溃弹出的那个东西,结束进程就是意外崩溃,拦截它重起程序就行了,查API很容易找到的.
      

  20.   

    发给我看看,我用反编译瞧瞧行不行。
    [email protected]
      

  21.   

    还有吗?发给我一份[email protected] 
    Thanks!!!!!!!!!!!
      

  22.   

    hook
     TerminateProcess
     PostQuitMessage
    等API就行啦
      

  23.   

    Dim sCmd As String
    Dim eName As StringPrivate Sub Form_Load()
       eName = App.EXEName & ".exe"
       sCmd = Command
       If sCmd <> "" Then
          Me.Hide
          App.TaskVisible = False
       Else
          Shell (App.Path & "\" & eName & " 1")
       End If
    End SubPrivate Sub Timer1_Timer()
       Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
       Set colprocesslist = objWMIService.ExecQuery("SELECT * FROM Win32_Process where name='" & eName & "'")
       If colprocesslist.Count < 2 Then
          Shell (App.Path & "\" & eName & " 1")
          Me.Show
       End If
    End Sub以上代码还没有关闭功能,如果没有冰刃之类的利器那就只有关机
      

  24.   

    加上关闭功能
    Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Private Sub Command1_Click()
       Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
       Set colprocesslist = objWMIService.ExecQuery("SELECT * FROM Win32_Process where name='" & eName & "' and handle<>" & GetCurrentProcessId)
       For Each objProcess In colprocesslist
           objProcess.Terminate
       Next
       End
    End Sub
      

  25.   

    ........可惜用Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    很多杀软会报毒.