如何在“我的电脑”中创建系统文件夹

时间:2015-12-25 15:15:57

标签: c++ windows registry special-folders

“我的电脑”中显示的“我的文档”系统文件夹是无法删除的特殊文件夹。现在我想创建一个类似的东西,一个无法删除的文件夹。   我使用以下方式,文件夹创建成功,但不幸的是我无法打开它。所以任何人都可以帮助我?

Windows注册表编辑器版本5.00

   Compiling bitter-oyster v0.1.0 (file:///home/matthias/projects/bitter-oyster)
/home/matthias/projects/bitter-oyster/src/main.rs:1:1: 1:19 error: can't find crate for `plot` [E0463]
/home/matthias/projects/bitter-oyster/src/main.rs:1 extern crate plot;

Windows注册表编辑器版本5.00

[HKEY_LOCAL_MACHINE\software\Classes\CLSID\{fd4df9e0-e3de-11ce-bfcf-abcd1de00000}]
 @=”IAMFOLDER”

[HKEY_LOCAL_MACHINE\software\Classes\CLSID\{fd4df9e0-e3de-11ce-bfcf-abcd1de00000}\defaulticon]

[HKEY_LOCAL_MACHINE\software\Classes\CLSID\{fd4df9e0-e3de-11ce-bfcf-abcd1de00000}\inprocserver32]
 @=”shdocvw.dll”
 “ThreadingModel”=”Apartment”

[HKEY_LOCAL_MACHINE\software\Classes\CLSID\{fd4df9e0-e3de-11ce-bfcf-abcd1de00000}\instance]
 “CLSID”=”{0afaced1-e828-11d1-9187-b532f1e9575d}”

[HKEY_LOCAL_MACHINE\software\Classes\CLSID\{fd4df9e0-e3de-11ce-bfcf-abcd1de00000}\instance\initpropertybag]
 “Attributes”=hex:15,00,00,00
 “Target”=”C:\\”

[HKEY_LOCAL_MACHINE\software\Classes\CLSID\{fd4df9e0-e3de-11ce-bfcf-abcd1de00000}\shellfolder]
 “Attributes”=hex:50,00,00,f0
 “WantsFORPARSING”=””

2 个答案:

答案 0 :(得分:0)

在"此PC"。

下添加自定义文件夹的演练

您需要什么:

  • 您要添加的文件夹(在此示例中,我将使用" C:\ Projects")。
  • 如果您想使用自定义图标,则表示该文件夹的图标(在此示例中,我将使用" C:\ Projects \ projects.ico")
  • GUID(在此示例中,我将使用" EB39BB71-9B3B-4C47-BB02-F35CFAED1685"。它适用于您添加的第一个自定义文件夹,但如果您和#39;想要添加更多自定义文件夹,您需要创建新的GUID)

您需要做什么:

  • 一大堆注册表黑客。

    1. 导航至[HKCR \ CLSID]
    2. 创建一个名为&#34的新密钥; {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}"
    3. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击"(默认)",选择修改并指定值" Projects&#34 ;
    4. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>字符串值"。称这个新值为" InfoTip"并给它价值" C:\ Projects"。
    5. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新> DWORD(32位)值"。调用这个新值" System.IsPinnedToNameSpaceTree"并给它一个值" 1"。
    6. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" DefaultIcon"。
    7. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ DefaultIcon]内右键单击"(默认)",选择修改并指定值" C :\项目\ projects.ico"
    8. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" InProcServer32"。
    9. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ InProcServer32]内右键单击"(默认)",选择修改并指定值"% SYSTEMROOT%\ System32下\ SHELL32.DLL"
    10. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ InProcServer32]内,右键单击并选择" New>字符串值"。称这个新值为#34; ThreadingModel"并给它价值"两者"。
    11. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥"实例"。
    12. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance]内,右键单击并选择" New>字符串值"。称这个新值为" CLSID"并给它价值" {0AFACED1-E828-11D1-9187-B532F1E9575D}"。 (这是"文件夹快捷方式"的CLSID,如果您尝试添加不同类型的快捷方式而不是自定义文件夹,则可能需要查找正确类型的处理程序并找到其中的CLSID)。
    13. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance]内,右键单击并选择" New>重点&#34 ;.拨打此密钥" InitPropertyBag"。
    14. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance \ InitPropertyBag]内右键单击并选择" New> DWORD(32位)值"。称这个新值"属性"并给它价值" 21"。
    15. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance \ InitPropertyBag]内右键单击并选择" New>可扩展字符串值"。称这个新值"目标"并给它价值" C:\ Projects"。
    16. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" Shell"。
    17. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Shell]右键单击并选择" New>重点&#34 ;.调用此键"打开项目文件夹" *(*您可以在此处输入所需内容,这是右键单击自定义添加文件夹时出现的菜单选项,只需记住根据需要修改步骤18 )。
    18. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Shell \ Open Projects Folder]中,右键单击并选择" New>重点&#34 ;.拨打此密钥"命令"。
    19. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Shell \ Open Projects Folder \ Command]中右键单击"(默认)",选择修改并指定值"资源管理器/ root,C:\ Projects"。
    20. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" ShellEx"。
    21. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ ShellEx]内,右键单击并选择" New>重点&#34 ;.拨打此密钥" PropertySheetHandlers"。
    22. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ ShellEx \ PropertySheetHandlers]内右键单击并选择" New>重点&#34 ;.拨打此密钥" {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}"。
    23. 在密钥内[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" ShellFolder"。
    24. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ ShellFolder]内右键单击并选择" New> DWORD(32位)值"。称这个新值"属性"并给它价值" f080004d"。
    25. 在密钥[HKCR \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ ShellFolder]内右键单击并选择" New> DWORD(32位)值"。将此新值称为" SortOrderIndex"并给它价值" 0"。
    26. 现在导航至[HKCR \ Wow6432Node \ CLSID]。
    27. 创建一个名为&#34的新密钥; {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}"
    28. 在密钥内[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击"(默认)",选择修改并指定值" Projects& #34;
    29. 在密钥内[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>字符串值"。称这个新值为" InfoTip"并给它价值" C:\ Projects"。
    30. 在密钥内[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" DefaultIcon"。
    31. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ DefaultIcon]内右键单击"(默认)",选择修改并指定值&#34 ; C:\项目\ projects.ico"
    32. 在密钥内[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" InProcServer32"。
    33. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ InProcServer32]内右键单击"(默认)",选择修改并指定值&#34 ;%SYSTEMROOT%\ System32下\ SHELL32.DLL"
    34. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ InProcServer32]内右键单击并选择"新>字符串值"。称这个新值为#34; ThreadingModel"并给它价值"两者"。
    35. 在密钥内[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥"实例"。
    36. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance]内右键单击并选择" New>字符串值"。称这个新值为" CLSID"并给它价值" {0AFACED1-E828-11D1-9187-B532F1E9575D}"。 (这是"文件夹快捷方式"的CLSID,如果您尝试添加不同类型的快捷方式而不是自定义文件夹,则可能需要查找正确类型的处理程序并找到其中的CLSID)。
    37. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance]内右键单击并选择" New>重点&#34 ;.拨打此密钥" InitPropertyBag"。
    38. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance \ InitPropertyBag]内右键单击并选择" New> DWORD(32位)值"。称这个新值"属性"并给它价值" 21"。
    39. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ Instance \ InitPropertyBag]内右键单击并选择" New>可扩展字符串值"。称这个新值"目标"并给它价值" C:\ Projects"。
    40. 在密钥内[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}]右键单击并选择"新>重点&#34 ;.拨打此密钥" ShellEx"。
    41. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ ShellEx]内右键单击并选择" New>重点&#34 ;.拨打此密钥" PropertySheetHandlers"。
    42. 在密钥[HKCR \ Wow6432Node \ CLSID {EB39BB71-9B3B-4C47-BB02-F35CFAED1685} \ ShellEx \ PropertySheetHandlers]内右键单击并选择" New>重点&#34 ;.拨打此密钥" {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}"。
    43. 现在导航至[HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ MyComputer \ NameSpace]。
    44. 创建一个名为&#34的新密钥; {EB39BB71-9B3B-4C47-BB02-F35CFAED1685}"
    45. 打开任务管理器(快捷键是 CTRL + SHIFT + ESC )。
    46. 点击"详情"标签。
    47. 查找" explorer.exe"。
    48. 右键单击" explorer.exe"并选择"结束任务"。
    49. 一次" explorer.exe"已结束,请点击"文件>运行新任务"。
    50. 输入"资源管理器"并按Enter键。资源管理器现在应该重新启动并考虑新的注册表项。
    51. 如果一切正常,你现在应该有一个新的" Projects"左侧菜单中的文件夹。

enter image description here

答案 1 :(得分:0)

这个 PowerShell 脚本可以在 Windows 10 上完成这项工作。它不是我的,但工作正常。 只需更改“配置”部分中的值。

# ##############################################################################
# Configuration
# ##############################################################################
$FolderName="Python"
$FolderLocation="%USERPROFILE%\Python"
$FolderHint="Python scripts"
$FolderIcon="C:\Python37\pythonw.exe,0"

# ##############################################################################
# Variables
# ##############################################################################
$MYCLSID=$([guid]::NewGuid().ToString("B").ToUpper())
$HKCU_CLSID="HKCU:\Software\Classes\CLSID\$MYCLSID"

# ##############################################################################
# 32bit
# ##############################################################################
New-Item -Path $HKCU_CLSID
Set-ItemProperty -Path $HKCU_CLSID -Name "(Default)" -Value $FolderName
Set-ItemProperty -Path $HKCU_CLSID -Name "InfoTip" -Value $FolderHint
Set-ItemProperty -Path $HKCU_CLSID -Name "DescriptionID" -Value 3 -type dword
Set-ItemProperty -Path $HKCU_CLSID -Name "System.IsPinnedtoNameSpaceTree" -Value 1 -Type DWORD

New-Item -Path $HKCU_CLSID\DefaultIcon
Set-ItemProperty -Path $HKCU_CLSID\DefaultIcon -Name "(Default)" -Value $FolderIcon

New-Item -Path $HKCU_CLSID\InProcServer32
Set-ItemProperty -Path $HKCU_CLSID\InProcServer32 -Name "(Default)" -Value "shdocvw.dll"
Set-ItemProperty -Path $HKCU_CLSID\InProcServer32 -Name "ThreadingModel" -Value "Both"

New-Item -Path $HKCU_CLSID\Instance
Set-ItemProperty -Path $HKCU_CLSID\Instance -Name "CLSID" -Value "{0afaced1-e828-11d1-9187-b532f1e9575d}"

New-Item -Path $HKCU_CLSID\Instance\InitPropertyBag
Set-ItemProperty -Path $HKCU_CLSID\Instance\InitPropertyBag -Name "Attributes" -Value 15 -Type DWORD
Set-ItemProperty -Path $HKCU_CLSID\Instance\InitPropertyBag -Name "Target" -Value $FolderLocation -Type ExpandString

New-Item -Path $HKCU_CLSID\ShellEx
New-Item -Path $HKCU_CLSID\ShellEx\PropertySheetHandlers
New-Item -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 1 general"
Set-ItemProperty -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 1 general" -Name "(Default)" -Value "{21b22460-3aea-1069-a2dc-08002b30309d}"
New-Item -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 2 customize"
Set-ItemProperty -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 2 customize" -Name "(Default)" -Value "{ef43ecfe-2ab9-4632-bf21-58909dd177f0}"
New-Item -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 3 sharing"
Set-ItemProperty -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 3 sharing" -Name "(Default)" -Value "{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"
New-Item -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 4 security"
Set-ItemProperty -Path "$HKCU_CLSID\ShellEx\PropertySheetHandlers\tab 4 security" -Name "(Default)" -Value "{1f2e5c40-9550-11ce-99d2-00aa006e086c}"

New-Item -Path $HKCU_CLSID\ShellFolder
Set-ItemProperty -Path $HKCU_CLSID\ShellFolder -Name "Attributes" -Value 0xf080004d -type DWORD
Set-ItemProperty -Path $HKCU_CLSID\ShellFolder -Name "WantsFORPARSING" -Value ""
Set-ItemProperty -Path $HKCU_CLSID\ShellFolder -Name "HideAsDeletePerUser" -Value ""

# ##############################################################################
# 64bit
# ##############################################################################
if ([Environment]::Is64BitsOperatingSystem) {
    $HKCU_WOW6432Node_CLSID="HKCU:\Software\Classes\WOW6432Node\CLSID\$MYCLSID"

    New-Item -Path $HKCU_WOW6432Node_CLSID
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID -Name "(Default)" -Value $FolderName
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID -Name "InfoTip" -Value $FolderHint
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID -Name "DescriptionID" -Value 3 -type dword
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID -Name "System.IsPinnedtoNameSpaceTree" -Value 1 -Type DWORD

    New-Item -Path $HKCU_WOW6432Node_CLSID\DefaultIcon
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\DefaultIcon -Name "(Default)" -Value $FolderIcon

    New-Item -Path $HKCU_WOW6432Node_CLSID\InProcServer32
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\InProcServer32 -Name "(Default)" -Value "shdocvw.dll"
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\InProcServer32 -Name "ThreadingModel" -Value "Both"

    New-Item -Path $HKCU_WOW6432Node_CLSID\Instance
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\Instance -Name "CLSID" -Value "{0afaced1-e828-11d1-9187-b532f1e9575d}"

    New-Item -Path $HKCU_WOW6432Node_CLSID\Instance\InitPropertyBag
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\Instance\InitPropertyBag -Name "Attributes" -Value 15 -Type DWORD
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\Instance\InitPropertyBag -Name "Target" -Value $FolderLocation -Type ExpandString

    New-Item -Path $HKCU_WOW6432Node_CLSID\ShellEx
    New-Item -Path $HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers
    New-Item -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 1 general"
    Set-ItemProperty -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 1 general" -Name "(Default)" -Value "{21b22460-3aea-1069-a2dc-08002b30309d}"
    New-Item -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 2 customize"
    Set-ItemProperty -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 2 customize" -Name "(Default)" -Value "{ef43ecfe-2ab9-4632-bf21-58909dd177f0}"
    New-Item -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 3 sharing"
    Set-ItemProperty -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 3 sharing" -Name "(Default)" -Value "{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"
    New-Item -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 4 security"
    Set-ItemProperty -Path "$HKCU_WOW6432Node_CLSID\ShellEx\PropertySheetHandlers\tab 4 security" -Name "(Default)" -Value "{1f2e5c40-9550-11ce-99d2-00aa006e086c}"

    New-Item -Path $HKCU_WOW6432Node_CLSID\ShellFolder
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\ShellFolder -Name "Attributes" -Value 0xf080004d -type DWORD
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\ShellFolder -Name "WantsFORPARSING" -Value ""
    Set-ItemProperty -Path $HKCU_WOW6432Node_CLSID\ShellFolder -Name "HideAsDeletePerUser" -Value ""
}

# ##############################################################################
# Add to explorer
# ##############################################################################
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer -ErrorAction SilentlyContinue
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace -ErrorAction SilentlyContinue
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\$MYCLSID

# ##############################################################################
# Restart explorer
# ##############################################################################
Stop-Process -ProcessName explorer