zoukankan      html  css  js  c++  java
  • 通过开发MSBuild ,引发的注册表相关知识

    最近在做一个小项目,目的就是只需要点一个按钮,就把web程序发布到指定的服务器中。
    基本步骤就是 编译——>打包->复制包到远程服务器->解压缩。
    我想重点说一下解压缩,我们可以用winzip32.exe,可以用相关的dll完成压缩功能,再就是可以使用vbs脚本。
    代码整理完整后奉上:
    在使用vbs脚本的时候发现问题了,在服务器端执行没有问题,但是在我本地调用的时候出现问题了,问题就在于
    服务器端可以使用windows自带的压缩和解压缩功能,compressed zip folder.可以在发送到中选择compressed zip folder,
    也可以选中文件后使用 全部提取的功能。
    这些在我本地的win7系统中都没有,说白了就是我使用不了windows自带的解压缩功能。

    于是开始了三天地默默地探索。
    首先解决没有发送到 压缩(zipped)文件夹的问题

    首先我们进入到C:UsersXXXXXAppDataRoamingMicrosoftWindowsSendTo中,如果存在 "压缩(zipped)文件夹 "是空白的或者是没有这个文件就都是有问题的,

    没有的话则要创建一个空文件:压缩(zipped)文件夹.ZFSendToTarget。

    然后修改注册表

    保存下面的代码到reg文件中,执行

    Windows Registry Editor Version 5.00
    [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.ZFSENDTOTARGETOpenWithProgids]
     "CLSID\{888DCA60-FC0A-11CF-8F0F-00C04FD7D062}"=hex(0):
     
    [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.ZFSENDTOTARGETUserChoice]
     "Progid"="Applications\zipfldr.dll"

    这时如果问题还没有解决,继续往下看,

    我在调查的过程中有过一次误操作,在zip文件上右键,打开方式时选择了一个默认应用程序,且选择了始终使用选择的程序打开这种文件,

    结果桌面一直在闪,电脑反复试图要打开这个文件,但是一直失败。这时先删除那个文件,当我们再右键一个zip文件时,发现“选择了始终使用选择的程序打开这种文件”已经是灰色的了,

    这时就需要进入注册表:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.zip,将下面的分支UserChoice删除掉。

    然后就是一个很关键的步骤,我们在修改完注册表的时候有的是立即生效有的却不是,设置重启都未必生效,

    需要我们做的就是在进程中结束explorer.exe,然后再新建任务打开explorer.exe。经过上面的步骤后再看发送到选项中是否增加了压缩(zipped)文件夹。

    接下来我们再看怎样调出来 全部提取的功能:

    我们首先用管理员的身份进入打开命令行,输入下面的命令:assoc .zip = CompressedFolder

    用下面代码修改注册表

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOTCompressedFolder]
    @="Compressed (zipped) Folder"
    "FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,
      00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,
      32,00,5c,00,7a,00,69,00,70,00,66,00,6c,00,64,00,72,00,2e,00,64,00,6c,00,6c,
      00,2c,00,2d,00,31,00,30,00,31,00,39,00,35,00,00,00
    
    [HKEY_CLASSES_ROOTCompressedFolderCLSID]
    @="{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}"
    
    [HKEY_CLASSES_ROOTCompressedFolderDefaultIcon]
    @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,
      00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,7a,00,69,00,
      70,00,66,00,6c,00,64,00,72,00,2e,00,64,00,6c,00,6c,00,00,00
    
    [HKEY_CLASSES_ROOTCompressedFoldershell]
    @="none"
    
    [HKEY_CLASSES_ROOTCompressedFoldershellfind]
    "LegacyDisable"=""
    "SuppressionPolicy"=dword:00000080
    
    [HKEY_CLASSES_ROOTCompressedFoldershellfindcommand]
    @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,
      00,5c,00,45,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,
      65,00,00,00
    
    [HKEY_CLASSES_ROOTCompressedFoldershellfindddeexec]
    @="[FindFolder("%l", %I)]"
    
    [HKEY_CLASSES_ROOTCompressedFoldershellfindddeexecapplication]
    @="Folders"
    
    [HKEY_CLASSES_ROOTCompressedFoldershellfindddeexec	opic]
    @="AppProperties"
    
    [HKEY_CLASSES_ROOTCompressedFoldershellOpen]
    
    [HKEY_CLASSES_ROOTCompressedFoldershellOpenCommand]
    @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,
      00,5c,00,45,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,
      65,00,20,00,2f,00,69,00,64,00,6c,00,69,00,73,00,74,00,2c,00,25,00,49,00,2c,
      00,25,00,4c,00,00,00
    "DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"
    
    [HKEY_CLASSES_ROOTCompressedFolderShellEx]
    
    [HKEY_CLASSES_ROOTCompressedFolderShellExContextMenuHandlers]
    
    [HKEY_CLASSES_ROOTCompressedFolderShellExContextMenuHandlers{b8cdcb65-b1bf-4b42-9428-1dfdb7ee92af}]
    @="Compressed (zipped) Folder Menu"
    
    [HKEY_CLASSES_ROOTCompressedFolderShellExDropHandler]
    @="{ed9d80b9-d157-457b-9192-0e7280313bf0}"
    
    [HKEY_CLASSES_ROOTCompressedFolderShellExStorageHandler]
    @="{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}"
    

      

    然后再关闭,创建explorer.exe,看看问题解决了没有

    
    
  • 相关阅读:
    php获取某年某月的天数
    处理银行卡每隔4位数用空格隔开(正则表达式)
    刚看到一个前端面试题, 左边固定,右边自适应, 就根据自己想的自己写了下试试
    Yii中利用filters来控制访问
    Yii中使用RBAC完全指南
    自动把 替换成<p></p>
    统计汉字
    php执行linux函数
    java 与 R 相互调用
    Deep Learning 深度学习 学习教程网站集锦(转)
  • 原文地址:https://www.cnblogs.com/wanglg/p/3641858.html
Copyright © 2011-2022 走看看