就是怎么样写一段程序实现隐藏文件的后缀名

解决方案 »

  1.   

    用程序修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL的一个键CheckedValue双击把值由2改为1。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt下的键UncheckedValue改为0。 
      

  2.   

    能不能通过给资源管理器发送消息的方式来实现呢?或者在sdk中有没有那种结构体,或者API函数可以操作扩展名隐藏的,在很多软件上都有实现这种功能,比如像优化大师上就有一个选项可以不用重新启动就可以实现隐藏与显示已知文件的后缀名
      

  3.   

    @echo off
    mode con cols=30 lines=4
    title 右键菜单添加成功
    color 0A
    if not exist "%windir%\SuperHidden.vbs" goto setup
    reg delete "HKCR\CLSID\{00000000-0000-0000-0000-000000000012}" /f >nul 2>nul
    del /f /q "%windir%\SuperHidden.vbs" >nul 2>nul
    echo.&echo 已删除显示/隐藏扩展名及文件
    pause>nul
    exit
    :setup
    color 0a
    >"%windir%\SuperHidden.vbs" echo Dim WSHShell
    >>"%windir%\SuperHidden.vbs" echo Set WSHShell = WScript.CreateObject("WScript.Shell")
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCR\CLSID\{00000000-0000-0000-0000-000000000012}\Instance\InitPropertyBag\CLSID", "{13709620-C279-11CE-A49E-444553540000}", "REG_SZ"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCR\CLSID\{00000000-0000-0000-0000-000000000012}\Instance\InitPropertyBag\method", "ShellExecute", "REG_SZ"
    >>"%windir%\SuperHidden.vbs" echo if WSHShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt") = 0 then
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden", "0", "REG_DWORD"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden", "2", "REG_DWORD"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "1", "REG_DWORD"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCR\CLSID\{00000000-0000-0000-0000-000000000012}\Instance\InitPropertyBag\command", "显示扩展名及文件", "REG_SZ"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.SendKeys "{F5}+{F10}e"
    >>"%windir%\SuperHidden.vbs" echo else
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden", "1", "REG_DWORD"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden", "1", "REG_DWORD"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\HideFileExt", "0", "REG_DWORD"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.RegWrite "HKCR\CLSID\{00000000-0000-0000-0000-000000000012}\Instance\InitPropertyBag\command", "隐藏扩展名及文件", "REG_SZ"
    >>"%windir%\SuperHidden.vbs" echo WSHShell.SendKeys "{F5}+{F10}e"
    >>"%windir%\SuperHidden.vbs" echo end if
    >>"%windir%\SuperHidden.vbs" echo Set WSHShell = Nothing
    >>"%windir%\SuperHidden.vbs" echo WScript.Quit(0)
    reg export "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" "%temp%\__.reg" >nul
    for /f "tokens=2 delims==" %%. in ('find/i "HideFileExt" "%temp%\__.reg"') do set v=%%~.
    del "%temp%\__.reg"
    set v=%v:~-1%
    if %v% equ 0 set vv=隐藏扩展名及文件
    if %v% equ 1 set vv=显示扩展名及文件
    >"%temp%\_.reg" echo REGEDIT4
    >>"%temp%\_.reg" echo [HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\SuperHidden]
    >>"%temp%\_.reg" echo @="{00000000-0000-0000-0000-000000000012}"
    >>"%temp%\_.reg" echo [HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}\InProcServer32]
    >>"%temp%\_.reg" echo @=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,74,65,6d,33,32,5c,73,\
    >>"%temp%\_.reg" echo   68,64,6f,63,76,77,2e,64,6c,6c,00
    >>"%temp%\_.reg" echo "ThreadingModel"="Apartment"
    >>"%temp%\_.reg" echo [HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}\Instance]
    >>"%temp%\_.reg" echo "CLSID"="{3f454f0e-42ae-4d7c-8ea3-328250d6e272}"
    >>"%temp%\_.reg" echo [HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}\Instance\InitPropertyBag]
    >>"%temp%\_.reg" echo "method"="ShellExecute"
    >>"%temp%\_.reg" echo "Param1"="SuperHidden.vbs"
    >>"%temp%\_.reg" echo "CLSID"="{13709620-C279-11CE-A49E-444553540000}"
    >>"%temp%\_.reg" echo "command"="%vv%"
    regedit /s "%temp%\_.reg"
    del /f /q "%temp%\_.reg"
    echo.&echo 已添加右键 %vv%
    pause>nul
    exit