问题标签 [shell-extensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在 Windows 资源管理器中显示自定义标题或列
我的应用程序向文件添加了一些自定义元数据。我想像这样在 Windows 资源管理器中显示它:
或这个:
有没有办法在.NET中做到这一点?
file-upload - 在 Windows 7 中将文件上传到浏览器会话
当您想要复制或移动文件系统对象时,在 Windows 7 中添加右键菜单选项功能很容易:http:
//maketecheasier.com/customize-the-right-click-menu-in-windows-7-injecting-extra -特点/2009/12/22
有没有办法在没有应用程序的情况下调用浏览器会话将文件上传到网站?
很容易组合一个命令行来调用浏览器会话,添加一个参数来指定本地文件对象路径:
但是一旦你打开了一个浏览器会话,有没有办法预加载本地文件路径来上传控件?然后网页会提示用户授权上传文件。
显然,您不能在没有用户授权的情况下自动上传文件(这将是一个巨大的安全漏洞),但我希望能够绕过用户必须浏览文件对象的步骤。
调用内置功能就可以了,我们只是不想部署应用程序,除非绝对必要。
回顾一下,我们并没有试图绕过浏览器的安全性,只是试图通过将本地文件路径传递给服务器来避免用户必须在本地文件系统上四处寻找的部分。
更新:找到有关该主题的更多信息;由于安全问题,本地文件路径被特别阻止。请参阅本文中的“文件上传控制”部分:http: //blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx
因此,也许另一种选择是启动 ftp 上传到目标 url 并传递一些用户 ID 和身份验证信息,以绕过浏览器沙箱安全问题。
winapi - 防止在 GetOpenFileName、CFileDialog、IFileOpenDialog 等中加载所有非系统 shell 扩展
我正在寻找一种使用资源管理器外壳提示用户输入文件名的编程方式,我只希望加载系统外壳扩展。
我正在寻找此功能的原因是我想消除 3rd 方 shell 扩展作为崩溃和其他不确定行为的可能原因。
理想情况下,在某处我错过了一个标志,我可以将它传递给一个函数,这意味着类似于“安全模式”的资源管理器实例,它只加载系统外壳扩展。这似乎是一个必不可少的功能,我花了很多时间研究文档却无济于事。
我查看了 CFileDialog、GetOpenFileName 和 IFileOpenDialog 的 API 文档。看起来阻止加载非系统外壳扩展的唯一方法是通过注册表玩弄或使用软件实用程序进行某种全局黑客攻击。对于表现良好的应用程序来说,这些都不能令人满意。
我知道我可以使用不基于资源管理器的“旧式”文件对话框,但如果我强迫他们这样做,我的用户会杀了我。:)
我能想到的唯一方法是(呃)重新发明轮子并编写一个类似资源管理器的文件打开对话框。
c# - 如何创建像 winzip 这样的 shell 扩展/文件容器 dll?
好的,所以我需要制作一个类似于 winzip 或 winrar 的文件容器程序或命名空间扩展。
现在我不需要压缩或加密文件或任何特殊的东西。
我需要的是创建一个 dll 可以使用 .xyz 等扩展名(我知道如何将所有这些注册到注册表中,所以这不是问题),当点击时将打开“容器”中的所有文件像winzip这样的窗口。
我目前拥有的是一个程序,可以将所有文件添加到一个带有扩展名的大文件中(如 .xyz)。但是我不知道该怎么做,所以当我单击或打开这个新文件时,它们将在一个窗口中打开(文件系统浏览器?或类似的东西?就像 winzip 一样),这样我就可以查看所有文件在这个“容器”中。
有人可以指出我正确的方向或如何做到这一点,现在我很难过。
我还应该提到我正在使用 c#.net
embed - 在资源管理器中嵌入侧栏
如何在资源管理器中嵌入侧栏,如右侧的栏?这是一个中文的dropbox-clone
在摆弄 SP++ 之后,我猜它正在寻找 HWND,调整 SHELLDLL_DefView 的大小并向 CabinetWClass 添加一个窗口。或者是否有一个外壳扩展可以做到这一点?右侧窗口可以根据上下文(左侧选择哪个文件)而改变。
python - Windows 资源管理器上下文菜单和使用 pywin32 的子菜单
我正在尝试使用带有图标和子菜单的python添加一些shell扩展,但我正在努力比pywin32中的演示更进一步。我似乎也无法通过搜索谷歌来想出任何东西。
我相信我需要注册一个 com 服务器才能根据右键单击的文件/文件夹的位置和文件类型等更改子菜单中的选项。
windows - 文件格式详情告密者
在大多数最新版本的 Windows(XP、Vista、“7”)中,可以获得一些文件格式的详细信息,如 JPEG EXIF、MP3 ID3 标签(如流派、艺术家)和一些其他格式。要获取该信息,应右键单击文件,选择“属性”并检查对话框中的“详细信息”选项卡。
我的问题是如何扩展外壳以显示有关当前不支持或不支持但未显示所有详细信息的其他文件格式的信息。
我的猜测是一定有某种基于 .dll 的机制,也许是某种 COM 服务器,但我找不到该主题的入口点。事实上,我什至不知道如何用谷歌搜索它。每当我尝试搜索时,我都会得到很多关于文件格式而不是 shell 扩展名的信息。
感谢任何指向相关文章/MSDN 章节的指针。
windows - desktop.ini 用于驱动器的根目录
在 Windows 中,您可以通过设置 System 或 Readonly 属性并在其中放置适当的 with来将 Shell 命名空间扩展绑定到文件夹。desktop.ini
CLSID
但是,我看不到将system
属性设置为驱动器根目录的方法。
这是否意味着我做不到,或者我错过了一些明显的东西?
visual-studio-2010 - 如何正确卸载 C++ Shell 扩展 DLL
我有用C++ 和 COM 编写的shell 扩展 dll该 dll 已注册并加载到内存中。我的升级设置程序将执行以下操作:
- 注销shell扩展dll,杀死explorer.exe
- 复制更高版本的shell扩展dll(步骤2)
- 启动 explorer.exe
它工作正常。但问题是:
如果用户打开了任何其他应用程序(Internet Explorer,有时是 Windows 任务管理器,记事本等),则步骤 2将失败。
升级 dll 时有什么方法可以关闭所有 shell 扩展 dll 挂钩。
在 dll 中,我使用 GetOverlayInfo、上下文菜单、数据库连接等
inno-setup - 使用 Inno Setup 更新 windows explorer shell 扩展
我有一个程序产品,它另外将外壳扩展安装到 Windows 资源管理器。它用 C# 制作并使用 .NET Framework v4.0。Shell 扩展是由 Inno Setup 在安装期间使用 regasm.exe 安装的。一切正常,直到我想安装更新版本的应用程序。问题是我无法更新 shell 扩展 dll,因为它已加载到资源管理器的内存中。在安装 Inno Setup 之前向我显示以下消息
它说安装程序需要终止 Windows 资源管理器,因为它使用应由安装程序更新的文件。 它终止了资源管理器进程,但不会再次启动他。这是我的第一个问题。
其实我不想强迫用户关闭资源管理器。但我不知道如何从资源管理器的内存中卸载托管 shell dll。如果通过 regasm.exe 卸载它,dll 仍然保留在内存中。事实上,我什至找不到发生这种检查的地方,因为我收到了已经制作的安装源。
用于 Inno Setup 的 Files-In-Use (IssProc.dll) 加载项没有帮助,因为一旦我通过此加载项终止 Windows 资源管理器,资源管理器就会立即重新启动。
我该如何解决这个问题?如何以更好的用户体验更新 shell 扩展 dll?也许有人可以给我一个提示,检查正在使用的文件的代码在哪里?
O 和 BTW 我使用的是 Windows 7 x64。