ActiveX Exe 只允许一个进程时创建对象失败
有这么一个需求:1、某程序既要能独立运行(随系统自动启动,我用的是服务的方式),又能在网页中(asp中)调用 ------>于是我想到用ActiveX Exe来做。
2、只能运行一个进程 ------>于是我使用App.PrevInstance 来判断是否有前一个进程,如果有则当前程序结束。
问题来了:
1、如果这个程序只是在网页中通过CreateObject()或GetObject()的方式启动,没有人为地去先点击运行或随系统启动。(一句话,在网页调用之前没有这个进程),那么一切正常。(即使没有用App.PrevInstance 来限制只运行一个进程,而是设置“工程属性->线程缓冲池(1),不管开几个网页,都只有一个进程,很完美)。
2、在网页调用之前,已经存在这个进程,那么在网页中通过CreateObject()或GetObject()的方式启动时,就无法创建对象(App.PrevInstance的限制);如果取消了App.PrevInstance的限制,则会启动第二个进程,甚至还可以再通过手动点击运行n个进程。
有没有办法既 只运行一个进程,又能(当已存在这个进程时)在网页中创建对象?
或者,有没有办法 在创建对象时,如果ActiveX Exe进程已存在,就引用到当前进程中的实例,而不是新创建一个进程。
有点乱。感觉像是个"impossible mission"
testActiveXExe.rar
(11.19 KB)
[ 本帖最后由 jiashie 于 2010-7-30 14:04 编辑 ]