[AHK]关闭进程,批量关闭进程

189 篇文章 4 订阅
22 篇文章 0 订阅
#SingleInstance,force
do_kill =
(
USBKeyTools.exe
RAVCp164.exe
teamviewer.exe
aliwssv.exe
)
killprocess(do_kill)
return


killprocess(do_kill){
RunWait, %ComSpec% /c tasklist >%A_Temp%\tasklist.tmp, , Hide
Loop
    {
    FileReadLine, line, %A_Temp%\tasklist.tmp, %A_Index%
    if errorlevel
        Break
    IfInString, line, .exe
        {
        StringSplit,var, line, %A_Space%,
        ToolTip 不处理:%var1%
        IfInString, do_kill, %var1%
            {
                runwait, %ComSpec% /c taskkill /f /IM %var1%, , Hide
                ToolTip, 杀掉%var1%
                Sleep,1000
            } ;END IF DO_KILL
        } ;END IF LINE
    } ;END LOOP
    ToolTip,处理完成,2秒后自动退出。
    Sleep,2000
    ExitApp
}

 

AutoHotkey 不支持多进程,但是你可以使用其他编程语言(如C++、C#等)编写多进程应用程序,然后使用 AutoHotkey 调用该程序。 例如,你可以使用 C# 编写一个多进程的 Windows 窗体应用程序,然后在 AutoHotkey 中使用 ShellExecute 或 Run 命令来运行该程序。在该程序中,你可以使用 Process 类来控制多个进程的创建和管理。 以下是一个简单的示例,说明如何在 AutoHotkey 中启动一个 C# 编写的多进程应用程序: ```autohotkey ; Run the C# application Run, "MyApp.exe" ; Wait for the application to start WinWait, MyApp ahk_exe MyApp.exe ; Send a message to the application using WM_COPYDATA SendMessage, WM_COPYDATA, 0, "Hello, World!", , MyApp ``` 在上面的示例中,我们使用 Run 命令来启动 MyApp.exe,然后使用 WinWait 命令等待该应用程序启动。一旦应用程序启动,我们就可以使用 SendMessage 命令向该应用程序发送消息。在 C# 应用程序中,你可以使用以下代码来接收该消息: ```csharp protected override void WndProc(ref Message m) { const int WM_COPYDATA = 0x4A; if (m.Msg == WM_COPYDATA) { COPYDATASTRUCT data = (COPYDATASTRUCT)m.GetLParam(typeof(COPYDATASTRUCT)); string message = Marshal.PtrToStringAnsi(data.lpData); // Do something with the message } base.WndProc(ref m); } ``` 在上面的 C# 代码中,我们重写了窗体的 WndProc 方法,以便接收来自 AutoHotkey 的 WM_COPYDATA 消息。我们可以使用 Marshal.PtrToStringAnsi 方法将消息指针转换为字符串,然后在应用程序中执行相应的操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值