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

c# – 从.NET Windows服务调用Shell32.dll,第1张

概述我有一个.NET 4.0库,它使用 Shell32和Folder.GetDetailsOf()从WTV文件中获取元数据.我已经成功使用它与控制台和 Windows窗体应用程序没有问题.但是由于某些原因,当从.NET 4.0 Windows服务调用组件时,启动Shell类的调用会导致COM错误. 库内失败的代码: Shell32.Shell shell = new Shell(); 错误: 无法将类 我有一个.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)) .

我读了我的公寓线程,COM Interops,动态,PIA等等的填充等:)但是我没有找到的解决方案的组合已经解决了这个问题.它必须是来自另一个线程的调用,看不到Interop.请帮助 :)

解决方法 最近我用命令行应用程序(控制台)也遇到了同样的问题.原来,需要使用[STAThread]属性注释程序的Main()方法.还有人注意到,如果使用[MTAThread]注释入口点,它将以完全相同的方式失败.我希望它有帮助. 总结

以上是内存溢出为你收集整理的c# – 从.NET Windows服务调用Shell32.dll全部内容,希望文章能够帮你解决c# – 从.NET Windows服务调用Shell32.dll所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1239401.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存