碎舞星寒 发表于 2008-7-9 20:49:02

一键关闭所有QQ……(高手帮帮忙啊……)

我想做个一键关闭所有QQ的程序,就是QQ登录器中,关闭所有QQ 的那个功能

高手能否帮忙指导下?刚接触AU3,很多地方多不懂啊,谢谢

还有,如果做成这个程序,想要静默执行,该怎么做?

就是说做出这个程序,一运行,就会将机器中的所有QQ程序关闭,而没有任何窗口(静默)

期待高手指导……

顽固不化 发表于 2008-7-9 21:13:03

While 1
        sleep(100)
        if not ProcessExists("QQ.exe") then Exit
        ProcessClose("QQ.exe")
WEnd

不知行不行,你试试。

botanycc 发表于 2008-7-9 21:26:29

会自动结束任务管理器,按F6键关闭所有QQ,按F7键关闭自身。方法笨了点,用用吧,哈哈

#NoTrayIcon

$g_szVersion = "My Script 1.1"
If WinExists($g_szVersion) Then Exit
AutoItWinSetTitle($g_szVersion)

HotKeySet("{F6}", "quit")
HotKeySet("{F7}", "quit2")

While 1
      Sleep(50)
      If ProcessExists("taskmgr.exe") Then
         ProcessClose("taskmgr.exe")
      EndIf
WEnd

Func quit()

    ProcessClose("QQ.exe")
Sleep(50)
    ProcessClose("QQ.exe")
Sleep(50)
    ProcessClose("QQ.exe")
Sleep(50)
    ProcessClose("QQ.exe")
Sleep(50)
    ProcessClose("QQ.exe")
Sleep(50)
    ProcessClose("QQ.exe")
Sleep(50)
    ProcessClose("QQ.exe")
EndFunc

Func quit2()
exit
EndFunc

pcbar 发表于 2008-7-9 21:27:29

Func killallqq()
        If Not ProcessExists("QQ.exe") Then
                MsgBox(262144, "提示", "请确认有QQ程序正在运行!!", 10)
        EndIf
        $QQlist = ProcessList("QQ.exe")
        If @error Then Return
        If IsArray($QQlist) Then
                For $i = 1 To $QQlist
                        ProcessClose($QQlist[$i])
                Next
        EndIf
EndFunc   ;==>killallqq

lxz 发表于 2008-7-9 21:41:30

顽固的代码OK.

clonecd 发表于 2008-7-9 22:27:53

HotKeySet("{F6}", "CloseQQ")
Func CloseQQ()
    While ProcessExists("QQ.exe")
      ProcessClose("QQ.exe")
      sleep(200)
    WEnd
EndFunc

其余的代码自己完成吧。

[ 本帖最后由 clonecd 于 2008-7-9 22:42 编辑 ]

碎舞星寒 发表于 2008-7-10 09:16:46

谢谢各位了
AU3的的脚本,各位的我慢慢做测试了,感谢大家

我说下我的方法吧,不是用AU3,呵呵,而是用的系统命令

如果结束一个QQ进程就可以用
ntsd -c q -pn qq.exe

如果不确定有多少QQ进程,都想结束,就像一键关闭QQ那样,就是

Tasklist /fi "imagename eq qq.exe"



Taskkill /fi "imagename eq qq.exe" /f


我将上面的命令做成 bat 脚本,然后再建个 vbs 脚本就是静默运行了,呵呵,然后再打包就是exe了…………

这几个命令,不用我解释了吧?嘿嘿,笨了点,但是殊途同归啊……

感谢各位热心回答

sanhen 发表于 2008-7-10 09:27:52

Bat、Au3的都有了。怎么少得了WMI的呢?



_Kill("qq.exe")


Func _Kill($Process)

$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colProcessList = $objWMIService.ExecQuery ("SELECT * FROM Win32_Process Where Name= '"& $Process&"'")

For $objProcess in $colProcessList
    $objProcess.Terminate()
Next

EndFunc

lxz 发表于 2008-7-10 09:47:53

叁十功名何所求,
恨萍聚散谁人偶;
居仙笑谓人生戏,
士人但求仙鹤楼。

sanhen 发表于 2008-7-10 10:15:59

有何指教???

jinghai 发表于 2008-7-13 10:56:14

建议出点wmi的使用方法

lxz 发表于 2008-7-13 11:03:06

原帖由 sanhen 于 2008-7-10 10:15 发表 http://www.autoitx.com/images/common/back.gif
有何指教???
一个字:高.

jhwl 发表于 2008-7-13 14:30:20

HotKeySet("{F6}", "CloseQQ")

While 1
        Sleep(100)
WEnd

Func CloseQQ()
        While 1
                Sleep(100)
                If Not ProcessExists("QQ.exe") ThenExitLoop
                ProcessClose("QQ.exe")
        WEnd
EndFunc   ;==>CloseQQ

lynfr8 发表于 2009-7-21 23:18:55

我也来凑凑热闹Do
If ProcessExists('QQ.exe') Then ProcessClose('QQ.exe')
Until ProcessExists('QQ.exe')=0三行循环检测关闭所有QQ进程

afan 发表于 2009-7-23 15:59:15


Run(@ComSpec & " /c " & 'taskkill /f /im qq.exe', "", @SW_HIDE)
一行,哈哈
页: [1]
查看完整版本: 一键关闭所有QQ……(高手帮帮忙啊……)