windows-shell相关内容
Windows外壳程序(cmd.exe)内置命令为什么不能从标准输入中读取?(或者看起来是这样) 示例: echo bar | set /p foo= 推荐答案 set/P确实从管道读取输入,但它没有任何用处,因为管道的两端都在新的cmd.exe进程中执行。因此,一旦管道子进程终止,新定义的变量就会丢失。 有关详细信息,请参阅the selected answer堆栈溢
..
我有一个列出文件的应用程序,我允许用户右击文件,我的应用程序将显示所选文件的Windows上下文菜单。 我使用SHParseDisplayName获取文件名的PIDL。然后我绑定到父对象: IntPtr pidlLast = IntPtr.Zero; SHBindToParent(pidl, typeof(IShellFolder).GUID, out oShellFolder, ou
..
注意:这是一个question-with-answer,以便记录其他人可能认为有用的技术,以便了解其他人"更好的解决方案.请随意添加批评或问题作为评论.也请随意添加其他答案.:) 如何通过键入单个 Windows 命令来显示 消息框,例如在“开始"菜单的运行对话框中,还是在 [cmd.exe] 命令解释器中? 解决方案 一种方法是使用明显未记录的功能,即 [mshta.exe],Wi
..
我有许多从各种数码相机格式转码的 MPEG-4 文件,这些文件系统的修改日期是正确的.我想将“媒体创建"标签设置为匹配.这可以通过“属性"窗口的“详细信息"选项卡在 Windows 资源管理器中手动完成.设置 Media Created 很有用,因为 Windows Live Photo Gallery 为它的 Date Taken 属性关闭此字段.不幸的是,文件的数量使得手动设置所有日期变得不切
..
我正在寻找一种以编程方式将文件夹添加到 Windows 资源管理器中的收藏夹的方法.它的 Windows Explorer 特定并基于此项目:http:///www.codeproject.com/Tips/132804/Open-folders-using-a-Run-Command 到目前为止,我已经尝试过 Process Monitor 并搜索注册表,但我似乎无法在 regedit 中
..
当您在“屏幕分辨率"对话框中按下“识别"按钮时,Windows 会在每台显示器上显示大白显示器编号.在 Windows XP(使用 EnumDisplayDevices)中很容易以编程方式与监视器坐标一起找到它们,但在 Windows 7 上它已损坏.我该怎么做? EnumDisplayDevices 和 GetMonitorInfo 是 不再可靠在 Windows 7 中用于此目的. 我
..
从 Windows 10 开始,IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI 方法 不再起作用. 在 Windows Vista、7 和 8 上,它会在指定应用程序的设置程序关联页面上打开控制面板. 在 Windows 10 上,它什么也不做. 它甚至记录在 Microsoft 文档中:
..
我想开发一个与 Windows XP SP2(32 位)和 Windows 7 64 位兼容的 shell 扩展(上下文菜单处理程序). 是否可以在 64 位 Windows 中运行 32 位 shell 扩展,或者必须将 shell 扩展移植/重建为 64 位才能在 64 位 Windows 7 中使用? 在 64 位操作系统中使用 32 位 shell 扩展是否有任何缺点/已知问题
..
可以更改网络卷的名称. 我把名字改成了Spinal Disk 要更改网络名称,我会这样做 在注册表中写入新名称. 使用 DefineDosDeviceW 等函数附加我的网络卷.在这个时间里,Windows 资源管理器在我的猜测中读取了注册表. SHChangeNotify(SHCNE_DRIVEADD, SHCNF_PATH, root, NULL);//可以肯定. SendM
..
我认为应该这样做 this 比较 PIDL:IShellFolder::CompareIDs(). 特别是,我试图检测给定的绝对 PIDL(或相对)是否是控制面板的. 但是,在实践中,我最终得到了两个 IShellFolder::CompareIDs() 声称不相等的 PIDL,当它们应该相等时(查看每个的 GetDisplayName(),我可以看到我们确实在查看控制面板).
..
VS2010 引入了 CMFCShellTreeCtrl,它允许将文件夹浏览器树 ctrl 拖放到我们的 MFC 应用程序中. 但是,这个类似乎严重缺乏过滤功能.即它将构建容器对象列表(IShellFolder).但似乎没有办法指定 .zip 容器不应显示在文件夹树中. 它确实提供了一个可以粗略用于此目的的虚拟: HRESULT CMFCShellTreeCtrl::EnumObje
..
Mike Lischke 在 VirtualTreeView 中提供了广泛的拖放支持,我正在使用 TVirtualStringTree,它有一些拖放事件,但我不知道如何让它接受外壳拖放 -并将一些文件从 Windows 资源管理器外壳拖放到我的应用程序中.我想加载文件,当它们被拖到放置控件上时. 我尝试使用来自 Anders Melander 的第三方代码集来处理拖放,但由于 Virtual
..
我有一个 C# 应用程序,它创建快捷方式来启动具有特定参数和初始目录的其他程序.我希望用户能够从 Windows 窗体中拖动快捷方式并将其拖放到任何相关的位置,例如桌面、开始菜单等,但我真的不知道如何处理,谁能指出我方向对吗? 我见过一些使用 PInvoke 和 IShellLink 的示例 喜欢 这个,或阅读像 这里,它已经帮助创建快捷方式并将它们保存在 .lnk 文件中.我假设当用户启动
..
我使用 Process.Start() 从我的程序中打开了一个记事本,但新打开的记事本覆盖了屏幕.但我确实希望我的应用程序保持专注. 我同样(使用相同的 Process.Start)打开 MS Excel 和 Word,但为了让焦点回到我的表单,我需要写的是: this.Focus(); 但记事本的怪癖:我打开记事本(以及所有其他类似的进程) Process process = new
..
客户的应用程序“AppName"的配置文件存储在 CommonAppData 中. 在 Windows XP 下是 C:\Documents and Settings\All Users\Application Data\AppName 在 Windows Vista 下 C:\ProgramData\AppName 如何使用 VBScript 获取正确的文件夹名称? 解决方案
..
我的目标是确定打印机的当前状态.我找到了以下代码.这是一个稍微修改的版本,用于修复内存泄漏 &错误: #include int GetPrinterStatus( char* szPrnName ){句柄 hHandle = 0;//打印机的句柄DWORD dwStatus = 0;//我们应该收到的打印机状态DWORD dwSize = 0;//我们应该使用的内存大小//分配给 PRINTER
..
我使用下面的代码来引用一个shell dll Type t = Type.GetTypeFromProgID("Shell.Application");Shell s = (Shell)Activator.CreateInstance(t);Console.WriteLine("成功");Console.ReadLine(); 它在我的 Windows 7 开发机器上运行良好.但是当我尝试在
..
我想使用 IFileOperation 从 python 代码复制文件 - 速度快(比 python 快) 你会得到一个很好的对话 不会阻塞 Python 在 Windows 10 上,Python 3.8 - import ctypesctypes.windll.shell32.IFileOperation 似乎不存在. 如何使用 ctypes 访问 IFileOper
..
我正在寻找 .NET 首选的方式来执行 ShellExecute 在 Win32 中所做的相同类型的事情(打开、打印等任意文件类型). 我从事 Windows 编程已有 20 多年,但我是 .NET 的完全新手,所以也许我只是找错了地方.我目前使用 .NET 2.0 (VS C# 2005),但如果需要也可以使用 VS 2008. 如果唯一的答案是使用 P/Invoke,那么我最好还是
..
这似乎是一个常见问题,但在进行了一些搜索之后,我并没有真正找到答案.这里有一篇文章: http://www.codeproject.com/KB/shell/shellextguide1.aspx> 但它适用于非常旧版本的 Visual Studio.我使用的是 VS 2008,所以说明和界面似乎与我所看到的不符. 我想使用 C++ 创建一个简单的 shell 扩展,为扩展名为 .G
..