问题标签 [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.
c++ - 如何使用 c++ 从其他应用程序关闭设备启动时生成的错误消息框?
我让我的应用程序说test.exe
每当我启动我的移动设备时就会启动。
我还将文件保存dummy.log
在MyDevice\Windows\startup\
文件夹中,因此当我重新启动设备时,我看到dummy.log
文件出现错误消息框。
我在任务管理器中观察到,shell32
每当我使用上述配置启动设备时,大小都会增加。
并且还观察到 shell32 的大小会因为test.exe
启动设备后出现错误消息框而增加。
如果我关闭错误消息框,则shell32
大小会减小并且test.exe
不会产生任何问题。
Shell32
在上述情况下只有大小会增加,在其他情况下它可以正常工作。
我不知道它error message box
是如何与我的test.exe
应用程序相关联的。
我进行了调试和检查,我想到的唯一选择是从我的应用程序中关闭错误消息框i.e. test.exe
。
编辑部分:-
谁能让我知道如何检查和关闭我的应用程序中的错误消息框,即“test.exe”?
第二次编辑:-
还请让我知道错误消息框如何与我的应用程序(即“test.exe”)链接?它与计时器有关吗?我没有为我的应用程序中的外部窗口做任何事情
请回复谢谢。
c# - 使用 Shell32 进行 P/Invoke,绕过 Interop.Shell32.dll 生成
所以我使用以下代码将每个扩展文件属性转储到调试控制台...
由于 Shell32 是一个非托管库,我不能直接在程序中嵌入 DLL 资源,它必须生成一个互操作帮助 DLL。
任何人都知道 Shell32 中这些函数的 DLLImport 命令行来绕过整个互操作 DLL 的生成?我检查了 pinvoke.net 并且在 Shell32 条目下,他们要么没有我要找的东西,要么没有命名我所期望的。
如果无法使用 DLLImport 来完成此操作,是否有人知道使用托管 DLL 提取有关文件的所有扩展属性的方法,或者至少有一种方法可以在我不必生成的情况下执行此操作帮助 DLL 并需要安装程序和我正在开发的应用程序?
非常感谢!
c# - 如何优化 Shell32 方法调用?
我正在设计一个媒体播放器,并且我设计了一个电影类。Movie 类有一个 MovieInfo 成员,它继承自 MediaInfo。MediaInfo 有几个属性表示电影文件的元数据(你叫它吗?),例如文件长度、文件大小、文件路径等。为了提取这些信息,我使用了 Shell32。
问题是 Shell32 中提供的方法非常非常慢。在我的数据库中有 1 部电影,这不是问题,但有 10 部电影,它开始变得明显,并且有 100 部电影,加载程序大约需要 5 分钟,在某些情况下我必须重新初始化运行时的电影,这再次停止了程序的流程。
MediaInfo 构造函数调用 Initialize 方法:
这是 Shell32Processing.GetShellFolder 方法:
和 Shell32Processing.GetShellFolderItem 方法:
每次调用 GetDetailsOf(Shell32 中提供的代码)都需要花费大量时间来处理——我使用 ANTS 分析器来找到它,因为起初我无法确定是什么让我的程序如此缓慢。
所以问题是:如何优化 Shell32 方法,如果不能,是否有替代方法?
visual-studio-2010 - 无法在 .Net 4.0 项目中使用 Shell32.dll
我有使用 Shell32.dll 的 C# VS 2010 项目。Shell32.dll 用于创建 zip 文件。本机为Win7 64位。当 .net 目标版本为 2.0 或 3.5 时,项目编译并运行良好。但是将其更改为 4.0 会导致编译失败。我尝试再次删除和添加对 Shell32.dll 的引用并将目标平台更改为 X86。但是还是编译失败。寻找原因和解决方案。
更新:我尝试创建新项目并添加了对 Shell32.dll 的引用。这次我从 C:\Windows\SysWOW64 引用了 C:\Windows\System32 中的 dll。现在这一次它编译得很好。但我不确定这个项目是否会在 32 位 windows 和 XP 等版本上运行。
c# - 当 Internet Explorer 处于 Kiosk 模式时,将 PDF 置于前台
我正在处理一个需要在 Internet Explorer 信息亭模式窗口中显示 Flash 项目的项目。此外,Flash 使用套接字与我的 C# 应用程序进行通信,以完成 Flash 自身无法执行的各种任务。其中一项任务是打开 PDF 并将其置于前台。由于 Flash 安全性,Flash 无法直接打开 PDF,这迫使您选择网络或本地模式,而网络是该项目的唯一选择。
我遇到的问题是在使用 IE 8 的 Windows XP 上,kiosk 模式似乎与 Shell32 命令冲突,以最小化 Internet Explorer 和/或将 PDF 置于前台。我已经设法让它在 Windows 7 中工作(无法测试 Vista),但我尝试的任何东西似乎都无法在 Windows XP 中始终如一地工作。
我使用 C# 进程启动窗口,如下所示:
Explorer 现在已打开并处于信息亭模式。接下来我打开PDF。
最后,使用 Shell32.dll 命令 ShowWindow 我在 PDF 上调用最大化,迫使用户注意它。
在 Windows 7 中,我现在将 PDF 最大化,并且信息亭模式 Internet Explorer 窗口位于 PDF 后面。这样,当 PDF 关闭时,用户将返回到信息亭模式窗口。在 Windows XP 中,PDF 在后台打开,似乎没有多少 ShowWindow 调用将它带到资源管理器实例的前面。我尝试最小化资源管理器实例,并尝试在 IE 和 PDF 上执行其他 Windows 事件,例如显示/隐藏/恢复,以尝试将 XP 哄骗到我想要的内容中,但没有成功。我不确定这是否真的是 XP 的错,或者它是否是 Windows 7(对我而言)在 XP 上有 IE9 和 IE8 的错。
还有其他人遇到过这种情况,或者知道有什么办法可以欺骗 XP 将 PDF 带到前台吗?
c# - 如何获取指向 IShellView2 接口的指针
我们需要在我们的应用程序中托管类似资源管理器的浏览器窗口。由于需要保持与 Windows XP 的兼容性,我们不能使用新的 IExplorerBrowser。
主要问题是我们需要默认以“大图标”模式显示项目。不幸的是,使用 FOLDERSETTINGS.viewMode = 0x1 /* LargeIcon */ 调用 IShellVIew.CreateViewWindow() 不会将视图模式更改为所需的。但我可以通过窗口中的上下文菜单手动执行此操作。
所以我们需要设置“大图标”查看模式。我没有找到任何以编程方式获取视图本身的上下文菜单的方法。
然后,我发现 IShellView2 似乎需要走的路 - IShellView2.CreateViewWindow2() 接收视图模式作为 GUID 而不是预定义的 const。但是无法访问界面!
IShellFolder.CreateViewObject(hwndOwner, typeof(IShellView).GUID) 返回正确的实例。但是当我尝试 IShellFolder.CreateViewObject(hwndOwner, typeof(IShellView2).GUID) 我有异常“指定的演员表无效”。
如何获取 IShellView2 接口的对象???
c# - Folder.GetDetailsOf 返回错误的项目类型
我正在使用 Shell32 库从 .mp4 文件中检索数据。
我在本地主机上工作的代码,但是当我在 IIS 服务器上使用它时,它会将文件作为“MP4 文件”而不是“MP4 视频”返回,这会导致没有视频数据(宽度、高度、帧速率等)。 ) 找回。
我读到我可以使用GetDetailsEx来获取正确的数据,但是 Folder 类中似乎不存在这种方法。
Web.config 中是否有设置或类似设置需要更改才能正常工作?
编辑:我看到我被否决了,这样做的人可以解释为什么吗?我很想详细说明我的问题
c# - 获取文件发送到回收站的日期
是否有任何电话可以获取文件发送到回收站的日期。
Items 对象Shell32
给出了lastmodified
日期,但没有给出发送到回收站的时间。
我希望能够恢复在特定日期删除的文件。
c++ - 鼠标右键单击时如何获取快捷方式显示名称(c ++ / c#)
我正在构建一个关于filecontextmenu的dll,我需要在鼠标右键单击时获取执行路径和快捷方式displaynem。现在我可以获取路径,但不知道如何获取显示名称。EX:桌面中的IE快捷方式,我需要用户可以编辑的名称“IE”,而不是“iexplore.exe”。
这是一个非常相似的参考,但我找不到我应该做的,当桌面上的快捷方式
如果有任何建议我将不胜感激,这是我的代码,谢谢。
explorer - NSE:文件更新通知
我有问题。我设计了命名空间扩展(NSE)。我的 NSE 提供带有 PIDL 的文件。我在 PIDL 中存储各种信息。发生了一些事情,文件的 PIDL 已更改,但名称仍然旧。旧 PIDL 无效,新 PIDL 有效。我应该如何通知资源管理器这些更改?函数 SHChangeNotify() 通知资源管理器这些事情。似乎只有 SHCNE_RENAMEITEM 标志允许在 SHChangeNotify() 调用中使用新旧 PIDL。但是文件名没有改变!