草庐IT

language-Shell

全部标签

c++ - shell 扩展 : DragQueryFile returns at most 16 (in Windows 7)

我已经编写了一个shell扩展(由TheCompleteIdiot'sGuidetoWritingShellExtensions指导),在我升级到Windows7(32位)之前它可以正常工作。现在,函数DragQueryFileUINTuNumFiles=DragQueryFile(hDrop,0xFFFFFFFF,NULL,0);返回所选文件的正确数量,直到该数量超过16。然后始终返回16。我已经在XP(32)和Vista(32)中测试过它,它可以工作,在Windows7(32/64)中它没有。有什么想法吗?谢谢。 最佳答案 IS

c++ - 是否有用于 Shell 扩展的点击处理程序

经过MSDNShellExtensions之后我不太确定我是否可以扩展资源管理器的ShellClick或ClickEvent的行为。任何建议或代码片段、文章或演练? 最佳答案 不存在这种可能性。那会使外壳太脆弱。想象一下所有利用此功能的恶意软件。如果要捕获点击事件,没有简单的方法。你可以SetWindowsHookEx并监视/捕获CabinetWClass和/或DirectUIHWND类的所有窗口的鼠标消息。您可以将您的代码注入(inject)explorer.exe的进程并从那里拦截消息。这是injectingadllintoap

windows - Shell 命名空间扩展添加障碍

我在WindowsXP中使用默认shellView实现了命名空间扩展。一切正常,但我想添加路障(ADescriptionofProtectedFolders-也适用于WindowsXP)。是否可能使用已记录/未记录的函数(SFVM消息),或者此功能是硬编码的? 最佳答案 如果您自己为扩展View填充所有数据,那么您可以自己读取隐藏(或任何其他)文件夹的内容并立即显示它们,或者在需要时隐藏。您的扩展使用它自己的命名空间,它不受内置shell保护选项的控制。附言从Windows7+开始应该不是问题。

c# - 缩略图 shell 扩展 .NET

有人知道用C#编写的适用于winXP的工作缩略图shell扩展吗?此外,如果不存在,是否有人知道如何在C#中实现IExtractImage接口(interface)和所有需要的结构?提前致谢。注意:它可以使用.NET4来完成,并且所有在一个代码框架中提供了它的示例,但没有用于preVista系统的示例。 最佳答案 官方说法是shell扩展不应该写在托管代码中。比如看什么Raymond不得不说。或来自MSDN的官方专线. 关于c#-缩略图shell扩展.NET,我们在StackOverfl

c# - 从 shell 运行的 ffmpeg 运行正常,但在 .NET 中调用时运行不正常

我正在尝试在C#程序中使用ffmpeg(在Windows上使用Cygwin编译),方法是使用Process类生成一个ffmpeg实例。但是,我遇到了一个没有多大意义的相当奇怪的错误。当我直接从shell(无论是Cygwin的bash、PowerShell、cmd)运行ffmpeg时,ffmpeg可以正确地解码和重新编码文件而不会出现任何问题:PSC:\audio>ffmpeg-i.\sound1.wav-acodeclibvorbis-foggabc.oggffmpegversion1.2Copyright(c)2000-2013theFFmpegdevelopersbuiltonAp

c# - 从 .NET Windows 服务调用 Shell32.dll

我有一个.NET4.0库,它使用Shell32和Folder.GetDetailsOf()从WTV文件中获取元数据。我已经成功地将它用于控制台和Windows窗体应用程序,没有任何问题。但由于某种原因,当从.NET4.0Windows服务调用组件时,调用启动Shell类会导致COM错误。库中失败的代码:Shell32.Shellshell=newShell();错误:无法将“System.__ComObject”类型的COM对象转换为接口(interface)类型“Shell32.Shell”。此操作失败,因为IID为“{286E6F1B-7113-4355-9562-96B7E9D6

c# - 如何使用 GhostScript (gswin32c.exe) shell 命令在默认网络打印机上打印 PDF

我想通过GhostScript在Windows的网络打印机上打印PDF文件。(我不想使用Adob​​eReader)我读过gswin32c.exe可以完成这项工作。我尝试了许多命令,但找不到如何强制gs在我的(Windows默认)网络驱动器上打印PDF的方法。我不需要精确的网络打印机——可以使用默认值。但如果没有这样的选项,我也很乐意传递打印机名称。(我试过使用param-SDevice="\server_IP\printer_name"但这也没有用...)Windowscmd下运行的命令:gswin32c-dPrinted-dBATCH-dNOPAUSE-dNOSAFER-q-dNu

c# - 我如何声明派生的 "shell"类,它们除了重命名外什么都不做?

我在代码中传递和使用了两种不同类型的字符串,这两种字符串密切相关,但不应相互混淆。我想我可以通过拥有两个只是字符串但具有不同名称的类来帮助自己避免错误,这样方法签名(以及一般的类型不兼容)将强制执行两种不同类型字符串的语义。同时,我不想从something="foo";重构。至something.Value="foo";在一百个地方。第一个想法:privateclassFirstKind:string{}privateclassSecondKind:string{}想法是如果我有voidMyMethod(FirstKindvarOne,SecondKindvarTwo){...},然后

c# - 缺少 System.Windows.Shell 引用

我有一个Windows窗体应用程序,我想制作自己的自定义跳转列表。为此,我需要使用命名空间System.Windows.Shell但我无法访问它,而且我也无法在引用列表中找到它的引用。我查看了一些教程,但它们都使用XAML(WPF应用程序),其中一些只提到这也可以通过编码来完成。所以我的问题是,是否可以访问Windows窗体应用程序中所需的命名空间,或者我是否需要使用WPF?如果可能的话怎么办?如果没有,那么是否有另一种方法可以在Windows窗体应用程序中执行此操作?我正在使用VisualStudio2010Ultimate(C#)。提前致谢! 最佳答案

c# - 我什么时候应该使用 "Invariant Language (Invariant Country)"作为程序集的中性语言?

目前我能想到三种情况:不包含任何资源的程序集在其资源文件中仅包含图像(即ToolBoxBitmaps)的控制库仅包含用于抛出异常的文本的库(无论如何我们都不希望用户看到这些,对吗?;-))我对这些案例的看法是否正确,还有其他我现在没有看到的案例吗? 最佳答案 仅仅因为一个库只包含非文本资源并不意味着它不需要本地化。图像也可能需要本地化,要么是因为它们包含文本,要么是因为它们受到文化偏见的显着影响(当然,我知道目前没有主要应用程序仅出于这个原因对图像进行本地化)。可能还有特定于语言/文化的声音文件。此外,仅仅因为库中的唯一文本是异常文