IDM取消更新制作

idm
|
#idm #windows
最后更新于


预计 6 min read


起因

查找方法

网上有很多方法进行教程的讲解,但是对于我,翻注册表是一个很繁琐的过程。

但是有强大的 GPT 以及 Cursor,于是就把网上的一些教程链接直接投喂给 Cursor 帮助我直接进行脚本的编写

对此就有了下面的完整代码

Terminal window
1
@echo off
2
chcp 65001 >nul
3
echo ====================================
4
echo IDM自动更新停止工具
5
echo ====================================
6
echo.
7
8
REM 检查管理员权限
9
net session >nul 2>&1
10
if %errorLevel% == 0 (
11
echo [√] 已获得管理员权限
12
) else (
13
echo [×] 需要管理员权限运行此脚本
14
echo 请右键点击此文件,选择"以管理员身份运行"
15
pause
16
exit /b 1
17
)
18
19
echo.
20
echo 正在停止IDM相关进程...
21
22
REM 停止IDM主进程
23
taskkill /f /im "IDMan.exe" >nul 2>&1
24
if %errorLevel% == 0 (
25
echo [√] IDM主程序已停止
26
) else (
27
echo [!] IDM主程序未运行或已停止
28
)
29
30
REM 停止IDM更新进程
31
taskkill /f /im "IDMUpdate.exe" >nul 2>&1
32
if %errorLevel% == 0 (
33
echo [√] IDM更新程序已停止
34
) else (
35
echo [!] IDM更新程序未运行或已停止
36
)
37
38
REM 停止IDM服务相关进程
39
taskkill /f /im "IDMHelper.exe" >nul 2>&1
40
if %errorLevel% == 0 (
41
echo [√] IDM助手程序已停止
42
) else (
43
echo [!] IDM助手程序未运行或已停止
44
)
45
46
echo.
47
echo 正在禁用IDM自动更新功能...
48
49
REM 查找IDM安装目录
50
set "IDM_PATH="
51
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\DownloadManager" /v "ExePath" 2^>nul') do (
52
set "IDM_PATH=%%b"
53
)
54
55
if not defined IDM_PATH (
56
REM 尝试从32位注册表查找
57
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\DownloadManager" /v "ExePath" 2^>nul') do (
58
set "IDM_PATH=%%b"
59
)
60
)
61
62
if defined IDM_PATH (
63
for %%i in ("%IDM_PATH%") do set "IDM_DIR=%%~dpi"
64
echo [√] 找到IDM安装目录: !IDM_DIR!
65
66
REM 重命名更新程序文件
67
if exist "!IDM_DIR!IDMUpdate.exe" (
68
ren "!IDM_DIR!IDMUpdate.exe" "IDMUpdate.exe.bak" >nul 2>&1
69
if %errorLevel% == 0 (
70
echo [√] 已禁用IDM更新程序
71
) else (
72
echo [!] 无法重命名更新程序,可能正在使用中
73
)
74
) else (
75
echo [!] 未找到IDM更新程序文件
76
)
77
78
REM 创建空的更新程序文件防止自动下载
79
echo. > "!IDM_DIR!IDMUpdate.exe" 2>nul
80
if %errorLevel% == 0 (
81
echo [√] 已创建空的更新程序文件
82
)
83
84
) else (
85
echo [×] 未找到IDM安装目录,请手动操作
86
)
87
88
echo.
89
echo 正在修改注册表禁用自动更新...
90
91
REM 禁用自动检查更新
92
reg add "HKEY_CURRENT_USER\SOFTWARE\DownloadManager" /v "CheckForUpdates" /t REG_DWORD /d 0 /f >nul 2>&1
93
if %errorLevel% == 0 (
94
echo [√] 已禁用自动检查更新
95
) else (
96
echo [!] 修改注册表失败
97
)
98
99
REM 禁用更新提醒
100
reg add "HKEY_CURRENT_USER\SOFTWARE\DownloadManager" /v "UpdateReminder" /t REG_DWORD /d 0 /f >nul 2>&1
101
if %errorLevel% == 0 (
102
echo [√] 已禁用更新提醒
103
)
104
105
REM 设置更新检查间隔为最大值
106
reg add "HKEY_CURRENT_USER\SOFTWARE\DownloadManager" /v "UpdateCheckInterval" /t REG_DWORD /d 999999 /f >nul 2>&1
107
if %errorLevel% == 0 (
108
echo [√] 已设置更新检查间隔为最大值
109
)
110
111
echo.
112
echo 正在阻止IDM更新服务器连接...
113
114
REM 修改hosts文件阻止更新服务器
115
set "HOSTS_FILE=%SystemRoot%\System32\drivers\etc\hosts"
116
findstr /c "# IDM Update Block" "%HOSTS_FILE%" >nul 2>&1
117
if %errorLevel% neq 0 (
118
echo. >> "%HOSTS_FILE%"
119
echo # IDM Update Block >> "%HOSTS_FILE%"
120
echo 127.0.0.1 update.internetdownloadmanager.com >> "%HOSTS_FILE%"
121
echo 127.0.0.1 www.internetdownloadmanager.com >> "%HOSTS_FILE%"
122
echo 127.0.0.1 secure.internetdownloadmanager.com >> "%HOSTS_FILE%"
123
echo 127.0.0.1 mirror.internetdownloadmanager.com >> "%HOSTS_FILE%"
124
echo [√] 已阻止IDM更新服务器连接
125
) else (
126
echo [!] hosts文件已包含IDM更新阻止规则
127
)
128
129
echo.
130
echo ====================================
131
echo 操作完成
132
echo ====================================
133
echo.
134
echo 已完成以下操作:
135
echo 1. 停止IDM相关进程
136
echo 2. 禁用IDM更新程序
137
echo 3. 修改注册表禁用自动更新
138
echo 4. 阻止IDM更新服务器连接
139
echo.
140
echo 注意事项:
141
echo - 如需恢复自动更新,请删除hosts文件中的IDM相关条目
142
echo - 如需恢复更新程序,请将IDMUpdate.exe.bak重命名为IDMUpdate.exe
143
echo - 建议定期手动检查IDM版本更新
144
echo.
145
echo 按任意键退出...
146
pause >nul
147
exit /b 0

使用方法

  1. 将上面的代码直接复制到一个空白文件中

  2. 将文件命名后缀为 .bat

  3. 右键点击文件,使用 管理员 进行执行

注意: 目前我使用的时候没有出现问题,不代表永远都没有问题,截止当前时间 2025-06-25 21:06:27是正常使用的