此时,每个人都知道ShellIconOverlayIdentifiers(来自MSDN)的数量有限制:
系统可以支持的不同图标叠加处理程序的数量受系统图像列表中可用于图标叠加的空间量的限制.目前有15个插槽用于图标覆盖,其中一些是由系统保留的.因此,只有在没有令人满意的替代方案时才应实施图标叠加处理程序
我可以理解Windows 95中的15个覆盖限制.但是在一个有Gigs of RAM,众多内核和GPU的环境中,现代操作系统中有这么低数量的技术原因吗?
为什么这个值不可配置?
在给出"性能"答案之前,请考虑: Windows允许配置,以便您可以杀死性能......为什么要特别选择这个问题?
Windows资源管理器可以显示文件的缩略图.这些缩略图由核心和第三方shell扩展提供.
我知道如何扩展shell以向Windows提供缩略图.
我想要做的是使用C#通过shell从系统上的任何文件中检索缩略图.这可能吗?
本质上,我正在编写一个自定义文件浏览器,我想显示缩略图,并且无法解析地球上的每个文件以制作我自己的缩略图.
澄清:许多答案似乎都围绕网页缩略图或缩放图像.但这根本不是我想要的.我想要的是向Windows询问这些文件类型的缩略图:.DOC,.PDF,.3DM,.DWG ......和mabye大约十几个.我不想自己解析,渲染和制作缩略图,因为Windows已经知道如何.
我作为答案发布的代码实际上有用......也许它可以简化并清理一下.
我正在寻找.NET首选的方式来执行ShellExecute在Win32中所做的相同类型的事情(打开,打印等任意文件类型).
我已经编程Windows超过20年了,但我是.NET的新手,所以也许我只是在寻找错误的地方.我目前正在使用.NET 2.0(VS C#2005),但如果需要可以使用VS 2008.
如果唯一的答案是使用P/Invoke,那么我最好还是使用Win32编写我的小实用程序.
我在Windows 7上尝试使用批处理文件打开GitBash shell并进行git调用.这是我的批处理文件的内容:
REM Open GitBash
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
REM retrieve archive
git archive master | tar -x -C %~1
REM quit GitBash
exit
Run Code Online (Sandbox Code Playgroud)
我注意到GitBash在下一个命令"git archive ..."之前注销.有人知道我是否可以将命令传递给GitBash以及如何?
麦克风
我想写一个简单的Windows shell扩展来添加到上下文菜单,而C#是我最近使用的语言.它是shell扩展的一个不错的选择吗?接口是否易于使用?是否有额外的开销导致菜单弹出更慢?
任何人都有良好的入门指针?
我有一个在delphi中编码的命令行应用程序,我需要从普通的桌面应用程序(也用delphi编写)调用.简而言之,我想调用命令行应用程序并在列表框中显示它"实时"输出的文本.
自从我使用shell以来已经很久了,但我清楚地记得,为了从命令行应用程序中获取文本 - 我必须使用管道符号">".像这样:
C:/mycmdapp.exe> c:/result.txt
这将打印到shell的任何文本(使用writeLn)并将其转储到名为"result.txt"的文本文件中.
但是......(这里有泡菜),我想要一个实时结果而不是一个积压文件.一个典型的例子是Delphi编译器本身 - 它设法向IDE报告发生了什么.如果我的记忆正确地为我服务,我似乎记得我必须创建一个"管道"通道(?),然后将管道名称分配给shell调用.
我试图谷歌这个但我老实说不确定如何制定它.希望社区中的某些人能指出我正确的方向.
更新:此问题可能与如何在Delphi中运行命令行程序相同?.虽然标题和问题本身并不相同,但有些答案符合我的要求.
Notepad ++会自动添加一个shell快捷方式,这样当您在Windows资源管理器中时,可以右键单击一个文件并选择"使用Notepad ++编辑".我怎么能用emacs做同样的事情?我正在使用GNU Emacs 22.3 for Windows.
从Windows 10开始,该IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI方法不再起作用.
在Windows Vista,7和8上,它将在" 设置程序关联"页面上打开指定应用程序的"控制面板" .
在Windows 10上,它什么都不做.
它甚至记录在MSDN中:
从Windows 10开始,这不会启动关联对话框.它会向用户显示一个对话框,通知他们可以更改用于在其"设置"中打开文件扩展名的默认程序
(即使在当前版本的Windows 10中声明的第二部分也不再正确)
实际上,在Windows 10的最新版本中,控制面板不再存在.其功能已移至"应用" >"默认应用">"应用设置默认值">"应用名称"下的"设置"应用.
有没有办法以编程方式在Windows 10设置应用程序中为我的应用程序打开应用程序界面的默认设置?
或者是否有另一种方法建议应用程序允许其用户自定义Windows 10中的关联?
我可以在Windows资源管理器中显示和选择单个文件,如下所示:
explorer.exe /select, "c:\path\to\file.txt"
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何选择多个文件.没有选择的排列我尝试过工作.
注意:我查看了这些页面的文档,但没有帮助.
https://support.microsoft.com/kb/314853
http://www.infocellar.com/Win98/explorer-switches.htm
这似乎是一个常见的问题,但经过一些搜索后,我真的无法找到答案.这里有一篇文章:
http://www.codeproject.com/KB/shell/shellextguide1.aspx
但它适用于Visual Studio的旧版本.我正在使用VS 2008,所以说明和界面似乎与我所看到的不相符.
我想使用C++创建一个简单的shell扩展,为扩展名为.GZ的文件创建上下文菜单.当右键单击这些文件时,我应该能够单击我的上下文菜单项并在代码中进行回调以对该文件执行某种操作.
其他上下文菜单项将执行诸如生成无模式对话框之类的操作,以在执行某些操作之前接受用户输入.
从我所看到的,ATL用于此,但我从未使用过ATL,所以所有的对象类型和接口都让我很困惑.如果我有适当的教程或文档可供阅读,那就不会那么糟糕了.
谁能帮我吗?是不是有一些不是10年的教程?
windows-shell ×10
windows ×4
c# ×3
shellexecute ×2
winapi ×2
.net ×1
atl ×1
c++ ×1
controlpanel ×1
delphi ×1
emacs ×1
explorer ×1
git ×1
icons ×1
msysgit ×1
pipe ×1
shell ×1
windows-10 ×1