无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2330|回复: 52
打印 上一主题 下一主题

[求助] 如何操作注册表修改默认打开文件方式

  [复制链接]
跳转到指定楼层
1#
发表于 2024-4-7 09:58:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2012飘水 于 2024-4-7 10:09 编辑

求助如何通过批处理命令操作注册表修改默认打开方式?
重装系统后,图片、视频、音乐文件等想通过第三方软件打开,第三方软件不安装,直接绿色版,将绿色版的第三方软件作为默认打开图片、视频、音乐文件等,如何通过批处理修改注册表的方式实现?
譬如修改.JPG\.MP3\.MP4\.AVI默认打开方式,
用绿色软件“d:\tools\picture\FastStoneImageViewer.exe”打开扩展名为JPG\BMP等文件
用绿色软件“d:\tools\music\千千静听.exe”打开扩展名为.mid\.mp3等文件
用绿色软件“d:\tools\video\KMPlayer.exe”打开扩展名为.MP4\.avi等文件

求大佬给个模版,琢磨了好久都不能成功!非常感谢!!!
2#
发表于 2024-4-7 10:18:35 | 只看该作者
试试cmd的assoc和ftype命令?
回复

使用道具 举报

3#
发表于 2024-4-7 10:21:42 | 只看该作者
形如:
@echo Off
::【关联:用 “抓滚动fscapture97” 打开.gif】
REG add HKCR\.gif /ve /t REG_SZ /d "giffile" /f
assoc .gif
ftype giffile="d:\1绿色软件\多媒体\抓图抓滚动\抓滚动fscapture97\fscapture.exe" "%%1"
exit
回复

使用道具 举报

4#
发表于 2024-4-7 10:33:59 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
发表于 2024-4-7 10:44:20 | 只看该作者
@echo off

set "MPC-Be=%~dp0MPC-BE"
set "MPC-BeReg=%MPC-BE:\=\\%"
if "%1"=="" (
    call :Main
) >nul 2>nul
exit /b
::以管理员身份运行
:Main
    title MPC-BE
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b


::执行创建注册表关联项
:Install
    (
        echo Windows Registry Editor Version 5.00
        call :RegAssoc 3gp  MPC-BE 4  mpciconlib
        call :RegAssoc aac  MPC-BE 7  mpciconlib
        call :RegAssoc avi  MPC-BE 20 mpciconlib
        call :RegAssoc flac MPC-BE 32 mpciconlib
        call :RegAssoc flv  MPC-BE 36 mpciconlib
        call :RegAssoc m4a  MPC-BE 47 mpciconlib
        call :RegAssoc midi MPC-BE 51 mpciconlib
        call :RegAssoc mid  MPC-BE 50 mpciconlib
        call :RegAssoc mkv  MPC-BE 53 mpciconlib
        call :RegAssoc mp3  MPC-BE 58 mpciconlib
        call :RegAssoc mp4  MPC-BE 59 mpciconlib
        call :RegAssoc mpeg MPC-BE 64 mpciconlib
        call :RegAssoc mov  MPC-BE 55 mpciconlib
        call :RegAssoc ts   MPC-BE 95 mpciconlib
        call :RegAssoc wav  MPC-BE 98 mpciconlib
        call :RegAssoc rm   MPC-BE 81 mpciconlib
        call :RegAssoc wmv  MPC-BE 103 mpciconlib
        call :RegAssoc rmvb MPC-BE 81 mpciconlib
        call :RegAssoc mpg  MPC-BE 65 mpciconlib
    ) >"%Temp%\Install.reg"
    reg import "%Temp%\Install.reg"
    del /f "%Temp%\Install.reg"

goto :eof

::关联相关文件类型
:RegAssoc :: <%1=Ext> <%2=ExeName> <%3=IconIndex图标编号> <%4=图标文件名>
    echo [HKEY_CLASSES_ROOT\MPC-BE.%1\DefaultIcon]
    echo @="\"%MPC-BeReg%\\%4.dll\",%3"
    echo [HKEY_CLASSES_ROOT\MPC-BE.%1\Shell\Open\Command]
    echo @="\"%MPC-BEReg%\\%2.exe\" \"%%1\""
    echo [HKEY_CLASSES_ROOT\.%1]
    echo @="MPC-BE.%1"
goto :eof
::echo @="\"%MPC-BeReg%\\%4.dll\",%3"  本句意为图标在以%4为名称的.dll文件内

评分

参与人数 1无忧币 +2 收起 理由
yyz2191958 + 2 赞一个!

查看全部评分

回复

使用道具 举报

6#
发表于 2024-4-7 10:44:21 | 只看该作者
3楼提供的方法应该可用吧?
回复

使用道具 举报

7#
发表于 2024-4-7 11:08:01 | 只看该作者
WPS 2016 极限精简版https链接://kkocdko.site/post/201910051129
从这里这个改的,要放到可执行文件上一层的文件夹里
回复

使用道具 举报

8#
发表于 2024-4-7 11:23:12 | 只看该作者
学习学习
回复

使用道具 举报

9#
发表于 2024-4-7 11:39:34 | 只看该作者
感谢分享,,学习了
回复

使用道具 举报

10#
发表于 2024-4-7 12:02:20 | 只看该作者
感谢分享
回复

使用道具 举报

11#
发表于 2024-4-7 12:12:48 | 只看该作者
感谢分享
回复

使用道具 举报

12#
 楼主| 发表于 2024-4-7 13:43:06 | 只看该作者
本帖最后由 2012飘水 于 2024-4-7 13:57 编辑
yyz2191958 发表于 2024-4-7 10:21
形如:
@echo Off
::【关联:用 “抓滚动fscapture97” 打开.gif】

@echo Off
::【关联:用  “千千静听.exe”打开扩展名为 “.mid”的文件】
REG add HKCR\.mid /ve /t REG_SZ /d "midfile" /f
assoc .mid=midfile
::ftype midfile="D:\Program_Files_\MP3_Player\Winamp\winamp.exe" "%%1"

ftype midfile="D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe" "%%1"

::exit

::D:\Program_Files_\MP3_Player\Winamp\winamp.exe
::D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe

pause

用上述操作不成功,Windows11系统
回复

使用道具 举报

13#
 楼主| 发表于 2024-4-7 13:44:56 | 只看该作者
3416510931 发表于 2024-4-7 11:08
WPS 2016 极限精简版https链接://kkocdko.site/post/201910051129
从这里这个改的,要放到可执行文件上一 ...

呵呵,没有链接啊,返回本网站了
回复

使用道具 举报

14#
发表于 2024-4-7 13:53:58 | 只看该作者
表示看不明白,尴尬,还需加强
回复

使用道具 举报

15#
 楼主| 发表于 2024-4-7 13:55:12 | 只看该作者
3416510931 发表于 2024-4-7 10:44
@echo off

set "MPC-Be=%~dp0MPC-BE"

改了一下,没有效果
回复

使用道具 举报

16#
发表于 2024-4-7 14:00:31 | 只看该作者
2012飘水 发表于 2024-4-7 13:43
@echo Off
::【关联:用  “千千静听.exe”打开扩展名为 “.mid”的文件】
REG add HKCR\.mid /ve /t R ...

进cmd打ftype midfile看看什么结果。
回复

使用道具 举报

17#
发表于 2024-4-7 15:00:35 | 只看该作者
2012飘水 发表于 2024-4-7 13:44
呵呵,没有链接啊,返回本网站了

把链接两个字删掉,我的用户组发不了正常链接,你修改过的发出来我看下
回复

使用道具 举报

18#
 楼主| 发表于 2024-4-7 16:17:40 | 只看该作者
本帖最后由 2012飘水 于 2024-4-7 16:19 编辑
szwp 发表于 2024-4-7 14:00
进cmd打ftype midfile看看什么结果。

原来是用winamp.exe打开的,设置为用TTPlayer.exe打开,运行了ftype midfile="D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe" "%%1"
语句后,双击.mid文件还是用winamp.exe打开的C:\Users\Administrator>ftype midfile="D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe" "%%1"
midfile="D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe" "%%1"




回复

使用道具 举报

19#
发表于 2024-4-7 16:19:21 | 只看该作者
2012飘水 发表于 2024-4-7 16:17
原来是用winamp.exe打开的,设置为用TTPlayer.exe打开,运行了ftype midfile="D:\Program_Files_\MP3_P ...

ftype midfile后面不要加东西,看运行结果
回复

使用道具 举报

20#
 楼主| 发表于 2024-4-7 16:20:32 | 只看该作者
szwp 发表于 2024-4-7 16:19
ftype midfile后面不要加东西,看运行结果

C:\Users\Administrator>ftype midfile
midfile="D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe" "%%1"
回复

使用道具 举报

21#
发表于 2024-4-7 16:21:46 | 只看该作者
下载
回复

使用道具 举报

22#
 楼主| 发表于 2024-4-7 17:12:02 | 只看该作者
3416510931 发表于 2024-4-7 10:44
@echo off

set "MPC-Be=%~dp0MPC-BE"

看不懂,照猫画虎导致不运行,主要是参考3楼的方便易懂,但是也不成功
回复

使用道具 举报

23#
发表于 2024-4-7 18:38:27 | 只看该作者
注册表不是万能的, 有些项目必须实地操作.
回复

使用道具 举报

24#
发表于 2024-4-7 18:53:03 | 只看该作者
本帖最后由 3416510931 于 2024-4-7 19:08 编辑
2012飘水 发表于 2024-4-7 17:12
看不懂,照猫画虎导致不运行,主要是参考3楼的方便易懂,但是也不成功

@echo off
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b

for %%a in (midi mid) do (
        reg add "HKCR\TTPlayer.%%a\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~sdp0TTPlayer.exe\" \"%%1\""
        reg add "HKCR\.%%a" /f /ve /t REG_SZ /d "TTPlayer.%%a"
) >nul 2>nul


复制以上内容到记事本里,保存为.bat,然后把bat文件放到TTPlayer.exe所在的文件夹

win11没试过,但win10可用

点评

重装系统后,用这个方法成功了,就是图标还没有更新,麻烦大佬再弄个更新图标的好吗?非常感谢!我是小白,慢慢学习  详情 回复 发表于 2024-4-8 11:52
@echo off fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b for %%a in (midi mid) do (   发表于 2024-4-7 21:45
@echo off fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b for %%a in (midi mid) do ( reg add "HKCR\TTPl  详情 回复 发表于 2024-4-7 21:43
回复

使用道具 举报

25#
发表于 2024-4-7 18:54:26 | 只看该作者
2012飘水 发表于 2024-4-7 17:12
看不懂,照猫画虎导致不运行,主要是参考3楼的方便易懂,但是也不成功

你得让我们知道你画的虎是啥样啊,
回复

使用道具 举报

26#
发表于 2024-4-7 19:00:59 | 只看该作者
本帖最后由 3416510931 于 2024-4-7 19:04 编辑
2012飘水 发表于 2024-4-7 16:17
原来是用winamp.exe打开的,设置为用TTPlayer.exe打开,运行了ftype midfile="D:\Program_Files_\MP3_Pla ...

win11系统改了注册表关联文件打开方式的规则,设置里是优先度最高的,甚至要一种格式一种格式的选
回复

使用道具 举报

27#
发表于 2024-4-7 19:33:48 | 只看该作者
3416510931 发表于 2024-4-7 11:08
WPS 2016 极限精简版https链接://kkocdko.site/post/201910051129
从这里这个改的,要放到可执行文件上一 ...

https://lanzoui.com/b00zo76pi
回复

使用道具 举报

28#
 楼主| 发表于 2024-4-7 19:55:08 | 只看该作者
本帖最后由 2012飘水 于 2024-4-7 20:02 编辑
3416510931 发表于 2024-4-7 18:54
你得让我们知道你画的虎是啥样啊,
可执行文件路径在:D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe
批处理文件在:D:\Program_Files_\MP3_Player\
运行结果如下:
Microsoft Windows [版本 10.0.22631.3296]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>d:

D:\>cd D:\Program_Files_\MP3_Player

D:\Program_Files_\MP3_Player>3
操作成功完成。

D:\Program_Files_\MP3_Player>





以下为批处理文件,文件名为3.bat
@echo off
set "MusicDir=%~dp0D:\Program_Files_\MP3_Player\千千静听"
set "MusicDirReg=%MusicDir:\=\\%"
if "%1"=="" (
    call :Main
) else (
    call :%1
    if not "%2"=="SkipRefresh" (
        assoc .=.
    )
) >nul 2>nul
exit /b
::以管理员身份运行
:Main
    title 关联文件
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b

call "%~dpnx0" Install




::执行创建注册表关联项
:Install
    (
        echo Windows Registry Editor Version 5.00
        call :RegAssoc  AA  TTPlayer  1
        call :RegAssoc  AAC  TTPlayer  1
        call :RegAssoc  A52  TTPlayer  1
        call :RegAssoc  AC3  TTPlayer  1
        call :RegAssoc  AIF  TTPlayer  1
        call :RegAssoc  AIFC  TTPlayer  1
        call :RegAssoc  AIFF  TTPlayer  1
        call :RegAssoc  AU  TTPlayer  1
        call :RegAssoc  SND  TTPlayer  1
        call :RegAssoc  CDA  TTPlayer  1
        call :RegAssoc  CUE  TTPlayer  1
        call :RegAssoc  DTS  TTPlayer  1
        call :RegAssoc  DTSWAV  TTPlayer  1
        call :RegAssoc  FLA  TTPlayer  1
        call :RegAssoc  FLAC  TTPlayer  1
        call :RegAssoc  MIDI  TTPlayer  1
        call :RegAssoc  MID  TTPlayer  1
        call :RegAssoc  RMI  TTPlayer  1
        call :RegAssoc  MOD  TTPlayer  1
        call :RegAssoc  FAR  TTPlayer  1
        call :RegAssoc  IT  TTPlayer  1
        call :RegAssoc  MTM  TTPlayer  1
        call :RegAssoc  S3M  TTPlayer  1
        call :RegAssoc  UMX  TTPlayer  1
        call :RegAssoc  XM  TTPlayer  1
        call :RegAssoc  APE  TTPlayer  1
        call :RegAssoc  MAC  TTPlayer  1
        call :RegAssoc  MP1  TTPlayer  1
        call :RegAssoc  MP2  TTPlayer  1
        call :RegAssoc  MP3  TTPlayer  1
        call :RegAssoc  MP3PRO  TTPlayer  1
        call :RegAssoc  MPA  TTPlayer  1
        call :RegAssoc  M4A  TTPlayer  1
        call :RegAssoc  MP+  TTPlayer  1
        call :RegAssoc  MPC  TTPlayer  1
        call :RegAssoc  OPUS  TTPlayer  1
        call :RegAssoc  RA  TTPlayer  1
        call :RegAssoc  TAK  TTPlayer  1
        call :RegAssoc  TTA  TTPlayer  1
        call :RegAssoc  OGG  TTPlayer  1
        call :RegAssoc  WAV  TTPlayer  1
        call :RegAssoc  WMA  TTPlayer  1
        call :RegAssoc  M3U  TTPlayer  1
        call :RegAssoc  M3U8  TTPlayer  1
        call :RegAssoc  TTBL  TTPlayer  1
        call :RegAssoc  TTPL  TTPlayer  1
    ) >"%Temp%\Install_YinYue.reg"
    reg import "%Temp%\Install_YinYue.reg"
    del /f "%Temp%\Install_YinYue.reg"
goto :eof

::关联相关文件类型
:RegAssoc :: <%1=Ext> <%2=ExeName> <%3=IconIndex>
    echo [HKEY_CLASSES_ROOT\TTPlayer.%1\DefaultIcon]
    echo @="%MusicDirReg%\\%2.exe,%3"
    echo [HKEY_CLASSES_ROOT\WPS.%1\Shell\Open\Command]
    echo @="\"%MusicDirReg%\\%2.exe\" \"%%1\""
    echo [HKEY_CLASSES_ROOT\.%1]
    echo @="TTPlayer.%1"
goto :eof

::timeout /t 6 >nul
pause
回复

使用道具 举报

29#
 楼主| 发表于 2024-4-7 20:01:17 | 只看该作者
ddzyhhh 发表于 2024-4-7 19:33
https://lanzoui.com/b00zo76pi

可执行文件路径在:D:\Program_Files_\MP3_Player\千千静听\TTPlayer.exe
批处理文件在:D:\Program_Files_\MP3_Player\
运行结果如下:
Microsoft Windows [版本 10.0.22631.3296]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>d:

D:\>cd D:\Program_Files_\MP3_Player

D:\Program_Files_\MP3_Player>3
操作成功完成。

D:\Program_Files_\MP3_Player>





以下为批处理文件,文件名为3.bat
@echo off
set "MusicDir=%~dp0D:\Program_Files_\MP3_Player\千千静听"
set "MusicDirReg=%MusicDir:\=\\%"
if "%1"=="" (
    call :Main
) else (
    call :%1
    if not "%2"=="SkipRefresh" (
        assoc .=.
    )
) >nul 2>nul
exit /b
::以管理员身份运行
:Main
    title 关联文件
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b

call "%~dpnx0" Install




::执行创建注册表关联项
:Install
    (
        echo Windows Registry Editor Version 5.00
        call :RegAssoc  AA  TTPlayer  1
        call :RegAssoc  AAC  TTPlayer  1
        call :RegAssoc  A52  TTPlayer  1
        call :RegAssoc  AC3  TTPlayer  1
        call :RegAssoc  AIF  TTPlayer  1
        call :RegAssoc  AIFC  TTPlayer  1
        call :RegAssoc  AIFF  TTPlayer  1
        call :RegAssoc  AU  TTPlayer  1
        call :RegAssoc  SND  TTPlayer  1
        call :RegAssoc  CDA  TTPlayer  1
        call :RegAssoc  CUE  TTPlayer  1
        call :RegAssoc  DTS  TTPlayer  1
        call :RegAssoc  DTSWAV  TTPlayer  1
        call :RegAssoc  FLA  TTPlayer  1
        call :RegAssoc  FLAC  TTPlayer  1
        call :RegAssoc  MIDI  TTPlayer  1
        call :RegAssoc  MID  TTPlayer  1
        call :RegAssoc  RMI  TTPlayer  1
        call :RegAssoc  MOD  TTPlayer  1
        call :RegAssoc  FAR  TTPlayer  1
        call :RegAssoc  IT  TTPlayer  1
        call :RegAssoc  MTM  TTPlayer  1
        call :RegAssoc  S3M  TTPlayer  1
        call :RegAssoc  UMX  TTPlayer  1
        call :RegAssoc  XM  TTPlayer  1
        call :RegAssoc  APE  TTPlayer  1
        call :RegAssoc  MAC  TTPlayer  1
        call :RegAssoc  MP1  TTPlayer  1
        call :RegAssoc  MP2  TTPlayer  1
        call :RegAssoc  MP3  TTPlayer  1
        call :RegAssoc  MP3PRO  TTPlayer  1
        call :RegAssoc  MPA  TTPlayer  1
        call :RegAssoc  M4A  TTPlayer  1
        call :RegAssoc  MP+  TTPlayer  1
        call :RegAssoc  MPC  TTPlayer  1
        call :RegAssoc  OPUS  TTPlayer  1
        call :RegAssoc  RA  TTPlayer  1
        call :RegAssoc  TAK  TTPlayer  1
        call :RegAssoc  TTA  TTPlayer  1
        call :RegAssoc  OGG  TTPlayer  1
        call :RegAssoc  WAV  TTPlayer  1
        call :RegAssoc  WMA  TTPlayer  1
        call :RegAssoc  M3U  TTPlayer  1
        call :RegAssoc  M3U8  TTPlayer  1
        call :RegAssoc  TTBL  TTPlayer  1
        call :RegAssoc  TTPL  TTPlayer  1
    ) >"%Temp%\Install_YinYue.reg"
    reg import "%Temp%\Install_YinYue.reg"
    del /f "%Temp%\Install_YinYue.reg"
goto :eof

::关联相关文件类型
:RegAssoc :: <%1=Ext> <%2=ExeName> <%3=IconIndex>
    echo [HKEY_CLASSES_ROOT\TTPlayer.%1\DefaultIcon]
    echo @="%MusicDirReg%\\%2.exe,%3"
    echo [HKEY_CLASSES_ROOT\WPS.%1\Shell\Open\Command]
    echo @="\"%MusicDirReg%\\%2.exe\" \"%%1\""
    echo [HKEY_CLASSES_ROOT\.%1]
    echo @="TTPlayer.%1"
goto :eof

::timeout /t 6 >nul
pause
回复

使用道具 举报

30#
 楼主| 发表于 2024-4-7 21:43:19 | 只看该作者
3416510931 发表于 2024-4-7 18:53
@echo off
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx ...

@echo off
    fltmc >nul || mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close) && exit /b

for %%a in (midi mid) do (
        reg add "HKCR\TTPlayer.%%a\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~sdp0TTPlayer.exe\" \"%%1\""
        reg add "HKCR\.%%a" /f /ve /t REG_SZ /d "TTPlayer.%%a"
) >nul 2>nul

pause

我和ttplayer.exe放在一起,执行后,重启,还是原来的打开方式,没有修改,不知道啥原因,Windows11
Windows 11 专业版23H2,版本22631.3296,16G内存64位系统

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-18 12:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表