编写windows服务中调用activeX控件(SDK)的心得

简介:

程序目的:

用windows服务程序调用activeX控件(二次封装过),达到服务启动时开始录制影音(不需要用窗体显示出来),服务结束时录制结束 。

遇到问题:

activeX控件必须加System.Windows.Forms; 而windows服务程序没有,引进来后就会出很多错误。

比如在new一个activeX实例时

“ 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“3c33f325-cd56-4005-9e34-d0c6ab70b1eb”。

这个问题很经典,就以上面这句话为搜索条件会出来很多解决方法。

以后还会出现ActiveX 控件无法初始化的问题等等。

改变方法:

将activeX控件就放在一个winform中,用服务去调这个winform方法。

将要做的事放在winform的load事件里,似乎没有出现问题了。将winform程序编成.exe文件,在服务的onstart方法里用进程Process调用System.Diagnostics.Process.Start(AppDomain.CurrentDomain.BaseDirectory + ”aaa.exe“)

OnStop()中结束这个进程。

问题是解决了,可是总觉得不太好,开了两个进程解决一个问题。

有空再考虑一下。

另外,总是认为这种方法会在服务启动时跳出一个窗体,可是没有跳出,网上说只有将这个服务的属性中改为”允许交互“才会跳出窗体。所以也不用考虑隐藏窗体的方法了。

如果要显示主窗体的话,服务安装后一定要注意,右键->属性->登录,选择 "本地系统帐户"下面的"允许服务与桌面交互"打勾.




本文转自94cool博客园博客,原文链接http://www.cnblogs.com/94cool/archive/2010/01/20/1652474.html,如需转载请自行联系原作者

相关文章
|
2月前
|
开发框架 监控 安全
Windows Defender 导致 Web IIS 服务异常停止排查
某日凌晨IIS服务异常停止,经查为Windows Defender安全补丁KB2267602触发引擎更新,导致系统资源波动,进而引发应用池回收。确认非人为操作,系统无重启。通过分析日志与监控,定位原因为Defender更新后扫描加重负载。解决方案:将IIS及.NET相关路径添加至Defender排除列表,避免业务影响。
388 116
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
297 6
|
9月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
268 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
11月前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
1205 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
API 开发工具 C#
神策SDK不支持Windows客户端全埋点,怎么实现用户统计分析?
本文将介绍,ClkLog针对神策不支持全埋点的客户端实现用户访问基础统计分析 1。
神策SDK不支持Windows客户端全埋点,怎么实现用户统计分析?
|
边缘计算 安全 网络安全
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
1073 4
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
272 9
|
Kubernetes API 开发工具
【Azure Developer】通过SDK(for python)获取Azure服务生命周期信息
需要通过Python SDK获取Azure服务的一些通知信息,如:K8S版本需要更新到指定的版本,Azure服务的维护通知,服务处于不健康状态时的通知,及相关的操作建议等内容。
188 18
|
应用服务中间件 Apache Windows
免安装版的Tomcat注册为windows服务
免安装版的Tomcat注册为windows服务
395 3