问题标签 [shell32]

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.

0 投票
2 回答
2458 浏览

visual-studio-2010 - LNK 2019 ShellExecuteEx 无法解析的外部符号 Qt Creator

我用 c++ 语言在 Windows7 x64 上工作。

当我使用 ShellExecuteEx 函数向我的网络摄像头显示标记时,我创建了一个打开 Firefox 浏览器的项目。我的项目适用于 Visual Studio 2010。

但是,当我尝试使用 Qt Creator 运行我的项目时,我收到了这个错误:

代码是:

我认为问题是 shell32.lib 。如果是,我的电脑中没有这个库。我该如何解决?

你能帮助我吗?

提前致谢!

0 投票
1 回答
1847 浏览

windows - 由于操作系统版本之间的 GetDetailsOf 列编号发生变化,是否有正确的方法在 Windows 中获取文件详细信息?

我们一直在使用 Shell32 Folder.GetDetailsOf(folderItem, column) 来获取不同文件的文件详细信息和扩展文件详细信息。不幸的是,这在操作系统版本之间中断,因为列编号发生了变化,从这个代码示例中可以看出(与我们的项目无关) 。

我似乎找不到正确的方法来获取不会轻易破坏的扩展文件详细信息,也没有办法(非 hackily)找到正确的列编号。那么问题来了,这是如何以正确的方式完成的?

(编辑:更具体地说,我们读出的信息是音频、视频和图像信息,例如大小、fps、比特率等。)

0 投票
1 回答
561 浏览

vb.net - 即使调用 ToggleDesktop() (shell32.dll) 也让表单保持在顶部

无论如何,当触发显示桌面事件并使我的表单可见时,是否有捕获和取消或执行类似 me.activate 的操作?

注意:显示桌面事件是由安装在我的一些用户电脑中的另一个应用程序触发的。我并不想让我的表单始终位于其他打开的窗口之上。

提前致谢。

0 投票
4 回答
7629 浏览

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

我有一个 .NET 4.0 库,它使用 Shell32 和 Folder.GetDetailsOf() 从 WTV 文件中获取元数据。我已经成功地将它与控制台和 Windows 窗体应用程序一起使用,没有问题。但由于某种原因,当从 .NET 4.0 Windows 服务调用组件时,启动 Shell 类的调用会导致 COM 错误。

库内失败的代码:

Shell32.Shell shell = new Shell();

错误:

无法将“System.__ComObject”类型的 COM 对象转换为接口类型“Shell32.Shell”。此操作失败,因为 IID 为“{286E6F1B-7113-4355-9562-96B7E9D64C54}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .

我阅读了我的 Apartment Threading、COM Interops、Dynamic、PIA 等 等 :) 但我找到的解决方案组合都没有解决这个问题。它必须是来自另一个看不到互操作的线程的调用。请帮忙 :)

0 投票
1 回答
1319 浏览

vb.net - VB.net 类未注册错误

我正在编写一个 VB 应用程序,但是每当我运行该应用程序时,我都会收到下面列出的错误:

“创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:检索具有 CLSID {11219420-1768-11D1-95BE-00609797EA4F} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(来自 HRESULT 的异常:0x80040154 (REGDB_E_CLASSNOTREG))。”

我已经尝试注册 shell32.dll 文件,我在注册表中查看了条目 {11219420-1768-11D1-95BE-00609797EA4F} 但它不存在,并且我尝试为 x86 编译此应用程序。

其他信息:我在 Windows 7 64 位机器上。我有 .Net 4.0 和以前的版本,并且在 Visual Studio 2012 中工作。我还在我的项目中添加了 shell32.dll 作为参考。任何解决此问题的帮助将不胜感激。

谢谢。

0 投票
4 回答
17156 浏览

c# - 如何通过 CLSID 在 C# 中实例化 COM 对象?

如果我的术语不对,请原谅我,因为这对我来说有点未知。

我有一个程序需要创建一个FolderShortcut. Microsoft 有关于如何在 C++ 中创建它的文档,我正在尝试将说明转换为 C#。指令声明该CoCreateInstance函数需要CLSID_FolderShortcut作为参数调用,我推断这意味着它正在实例化一个 COM 对象。此对象的 CLSID 是{0AFACED1-E828-11D1-9187-B532F1E9575D}

我尝试从 COM 选项卡中添加对Shell32.dllFolderShortcut的引用,但该对象没有出现在 Intellisense 中(也许它不在 typelib 中?)。我也想过做一个DLLImport,但是,当然,这只能让我访问函数,而不是对象。

我需要做什么才能在 .Net 中访问此对象?

0 投票
1 回答
1214 浏览

c# - C# - Shell.Namespace(pathFolder) 返回 null,甚至存在

我正在尝试使用以下代码通过“开始菜单”文件夹进行递归循环:

问题是 Shell.Namespace 适用于某些文件夹,而不是全部。对于那些不工作的文件夹,即使这些文件夹确实存在,Shell.Namespace 也会返回 null。

我的代码有什么问题?

0 投票
1 回答
1427 浏览

windows - shell32.dll:GetOpenFileName 新线程期间的访问冲突

GetOpenFileName 因访问冲突而失败。文件必须在桌面上并且具有长名称。只有在第一次成功打开文件后才会出现问题。当鼠标光标悬停在文件上时会出现问题,因为工具提示即将显示。

请参阅下面的答案。我将在下面留下原始问题描述。

迈克 D。

========================

我正在使用 GetOpenFileName。我有时会在 shell32 内部遇到访问冲突。第一次使用此代码时不会发生违规,通常需要五六次尝试。此外,如果在打开文件窗口弹出后的一两秒内选择一个文件,则不会发生违规。此外,我调试时显示的调用堆栈不包括我的任何代码。就好像一些独立的线程正在醒来做某事。

任何关于我如何调试这个的见解都非常感谢!

我制作了一个“你好”的世界应用程序,表现出相同的行为。然而,它需要更多的尝试才能失败。似乎还必须在失败之前切换目录。

GOFN 是通过专门为此目的创建的线程完成的。下面是来自“hello world”应用程序的代码。

当它失败时,调用堆栈看起来像这样......

抱歉,我无法获得这些符号,因为我有一个旧的 Visual C++ :-(

在我看来,当鼠标光标悬停在文件名上时,当 GOFN 内容即将打开描述文件的弹出窗口时,就会出现问题。

导致问题的一系列情况有些奇怪。实验表明,必须在 GOFN 窗口中执行以下操作:

  • 在桌面上打开文件
  • 将鼠标悬停在长文件名上

如果我这样做两次,它总是失败。我使用的文件名是

IMCLOG_20120323_1658_-_20120324_0653_CST_+DST_E2_2_second.TXT

我用记事本尝试了同样的事情,同样的问题发生了!

0 投票
1 回答
844 浏览

c# - 计划任务用户未登录,用户登录后如何更改为交互模式

我有一个运行应用程序的计划任务;比方说notepad.exe。如果任务“仅在用户登录时运行”,我可以看到记事本,但如果任务“无论用户是否登录都运行”记事本不会在交互模式下运行。即使我登录并在此模式下运行任务,我也看不到记事本窗口或进程,直到我在任务管理器中选择“全部显示”。问题是当记事本出现错误时,在登录时,我看不到该错误,因此无法判断错误是什么或记事本在出现错误时正在做什么。看起来任务无法在交互模式下运行,因为在它启动时没有登录用户。所以我的问题是:一旦用户登录,有没有办法将记事本更改为交互模式?

查看编程解决方案,有没有办法在运行时使用 shell32 或 user32 将应用程序更改为交互模式?

另外,我的问题显然不在于记事本......只是一个概念证明。

0 投票
2 回答
311 浏览

winapi - 为 Windows Mobile 6 编译时找不到 Shell32.lib

我尝试编译一个使用 SHBrowseForFolder api 调用的简单 windows mobile 6 项目。我还在项目链接器依赖项中包含了 shell32.lib。不知何故,ARMv4 sdk 中似乎缺少 shell32.lib。有解决方法吗?

谢谢。