windows-shell相关内容

为什么不从标准输入中读取Windows外壳(cmd.exe)内置命令?

Windows外壳程序(cmd.exe)内置命令为什么不能从标准输入中读取?(或者看起来是这样) 示例: echo bar | set /p foo= 推荐答案 set/P确实从管道读取输入,但它没有任何用处,因为管道的两端都在新的cmd.exe进程中执行。因此,一旦管道子进程终止,新定义的变量就会丢失。 有关详细信息,请参阅the selected answer堆栈溢 ..
发布时间:2022-04-12 09:30:47 其他开发

显示多个项目的Windows上下文菜单

我有一个列出文件的应用程序,我允许用户右击文件,我的应用程序将显示所选文件的Windows上下文菜单。 我使用SHParseDisplayName获取文件名的PIDL。然后我绑定到父对象: IntPtr pidlLast = IntPtr.Zero; SHBindToParent(pidl, typeof(IShellFolder).GUID, out oShellFolder, ou ..
发布时间:2022-04-08 13:40:56 C#/.NET

Windows [cmd.exe] 命令显示超时消息框?

注意:这是一个question-with-answer,以便记录其他人可能认为有用的技术,以便了解其他人"更好的解决方案.请随意添加批评或问题作为评论.也请随意添加其他答案.:) 如何通过键入单个 Windows 命令来显示 消息框,例如在“开始"菜单的运行对话框中,还是在 [cmd.exe] 命令解释器中? 解决方案 一种方法是使用明显未记录的功能,即 [mshta.exe],Wi ..
发布时间:2022-01-23 09:02:56 其他开发

如何设置“创建的媒体"MPEG-4 文件上的日期

我有许多从各种数码相机格式转码的 MPEG-4 文件,这些文件系统的修改日期是正确的.我想将“媒体创建"标签设置为匹配.这可以通过“属性"窗口的“详细信息"选项卡在 Windows 资源管理器中手动完成.设置 Media Created 很有用,因为 Windows Live Photo Gallery 为它的 Date Taken 属性关闭此字段.不幸的是,文件的数量使得手动设置所有日期变得不切 ..
发布时间:2022-01-18 21:52:59 其他开发

如何以编程方式将文件夹添加到用户的收藏夹(在 Windows 资源管理器中)?

我正在寻找一种以编程方式将文件夹添加到 Windows 资源管理器中的收藏夹的方法.它的 Windows Explorer 特定并基于此项目:http:///www.codeproject.com/Tips/132804/Open-folders-using-a-Run-Command 到目前为止,我已经尝试过 Process Monitor 并搜索注册表,但我似乎无法在 regedit 中 ..
发布时间:2022-01-18 11:10:35 C#/.NET

如何以编程方式从 win7 中的屏幕分辨率对话框获取显示器编号?

当您在“屏幕分辨率"对话框中按下“识别"按钮时,Windows 会在每台显示器上显示大白显示器编号.在 Windows XP(使用 EnumDisplayDevices)中很容易以编程方式与监视器坐标一起找到它们,但在 Windows 7 上它已损坏.我该怎么做? EnumDisplayDevices 和 GetMonitorInfo 是 不再可靠在 Windows 7 中用于此目的. 我 ..

在 Windows 7 64 位中使用 32 位 shell 扩展

我想开发一个与 Windows XP SP2(32 位)和 Windows 7 64 位兼容的 shell 扩展(上下文菜单处理程序). 是否可以在 64 位 Windows 中运行 32 位 shell 扩展,或者必须将 shell 扩展移植/重建为 64 位才能在 64 位 Windows 7 中使用? 在 64 位操作系统中使用 32 位 shell 扩展是否有任何缺点/已知问题 ..
发布时间:2022-01-14 12:19:20 C/C++开发

如何刷新 Windows 资源管理器

可以更改网络卷的名称. 我把名字改成了Spinal Disk 要更改网络名称,我会这样做 在注册表中写入新名称. 使用 DefineDosDeviceW 等函数附加我的网络卷.在这个时间里,Windows 资源管理器在我的猜测中读取了注册表. SHChangeNotify(SHCNE_DRIVEADD, SHCNF_PATH, root, NULL);//可以肯定. SendM ..
发布时间:2022-01-14 12:08:23 其他开发

为什么控制面板的 PIDL 会不同?

我认为应该这样做 this 比较 PIDL:IShellFolder::CompareIDs(). 特别是,我试图检测给定的绝对 PIDL(或相对)是否是控制面板的. 但是,在实践中,我最终得到了两个 IShellFolder::CompareIDs() 声称不相等的 PIDL,当它们应该相等时(查看每个的 GetDisplayName(),我可以看到我们确实在查看控制面板). ..
发布时间:2022-01-12 15:27:50 C/C++开发

如何检测给定的 PIDL 是否实际上是 .zip 文件或类似文件?

VS2010 引入了 CMFCShellTreeCtrl,它允许将文件夹浏览器树 ctrl 拖放到我们的 MFC 应用程序中. 但是,这个类似乎严重缺乏过滤功能.即它将构建容器对象列表(IShellFolder).但似乎没有办法指定 .zip 容器不应显示在文件夹树中. 它确实提供了一个可以粗略用于此目的的虚拟: HRESULT CMFCShellTreeCtrl::EnumObje ..
发布时间:2022-01-12 14:58:34 C/C++开发

如何将文件从 Explorer Shell 拖放到 Delphi 应用程序中的 VirtualTreeView 控件中?

Mike Lischke 在 VirtualTreeView 中提供了广泛的拖放支持,我正在使用 TVirtualStringTree,它有一些拖放事件,但我不知道如何让它接受外壳拖放 -并将一些文件从 Windows 资源管理器外壳拖放到我的应用程序中.我想加载文件,当它们被拖到放置控件上时. 我尝试使用来自 Anders Melander 的第三方代码集来处理拖放,但由于 Virtual ..
发布时间:2022-01-11 21:07:14 其他开发

拖动&删除动态创建的快捷方式

我有一个 C# 应用程序,它创建快捷方式来启动具有特定参数和初始目录的其他程序.我希望用户能够从 Windows 窗体中拖动快捷方式并将其拖放到任何相关的位置,例如桌面、开始菜单等,但我真的不知道如何处理,谁能指出我方向对吗? 我见过一些使用 PInvoke 和 IShellLink 的示例 喜欢 这个,或阅读像 这里,它已经帮助创建快捷方式并将它们保存在 .lnk 文件中.我假设当用户启动 ..
发布时间:2022-01-11 20:57:44 C#/.NET

打开进程(记事本)后如何将焦点设置回表单?

我使用 Process.Start() 从我的程序中打开了一个记事本,但新打开的记事本覆盖了屏幕.但我确实希望我的应用程序保持专注. 我同样(使用相同的 Process.Start)打开 MS Excel 和 Word,但为了让焦点回到我的表单,我需要写的是: this.Focus(); 但记事本的怪癖:我打开记事本(以及所有其他类似的进程) Process process = new ..
发布时间:2022-01-02 19:17:43 C#/.NET

尝试确定打印机状态总是返回 0 表示离线 &在线打印机

我的目标是确定打印机的当前状态.我找到了以下代码.这是一个稍微修改的版本,用于修复内存泄漏 &错误: #include int GetPrinterStatus( char* szPrnName ){句柄 hHandle = 0;//打印机的句柄DWORD dwStatus = 0;//我们应该收到的打印机状态DWORD dwSize = 0;//我们应该使用的内存大小//分配给 PRINTER ..
发布时间:2021-12-28 08:32:47 C/C++开发

使用 .net 4.0 引用 windows shell 界面

我使用下面的代码来引用一个shell dll Type t = Type.GetTypeFromProgID("Shell.Application");Shell s = (Shell)Activator.CreateInstance(t);Console.WriteLine("成功");Console.ReadLine(); 它在我的 Windows 7 开发机器上运行良好.但是当我尝试在 ..
发布时间:2021-12-25 08:21:28 C#/.NET

.NET 中的 ShellExecute 等效项

我正在寻找 .NET 首选的方式来执行 ShellExecute 在 Win32 中所做的相同类型的事情(打开、打印等任意文件类型). 我从事 Windows 编程已有 20 多年,但我是 .NET 的完全新手,所以也许我只是找错了地方.我目前使用 .NET 2.0 (VS C# 2005),但如果需要也可以使用 VS 2008. 如果唯一的答案是使用 P/Invoke,那么我最好还是 ..
发布时间:2021-12-17 23:39:52 C#/.NET

如何用 C++ 编写 shell 扩展?

这似乎是一个常见问题,但在进行了一些搜索之后,我并没有真正找到答案.这里有一篇文章: http://www.codeproject.com/KB/shell/shellextguide1.aspx> 但它适用于非常旧版本的 Visual Studio.我使用的是 VS 2008,所以说明和界面似乎与我所看到的不符. 我想使用 C++ 创建一个简单的 shell 扩展,为扩展名为 .G ..
发布时间:2021-11-30 14:08:11 C/C++开发