首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

ActiveX Exe 只允许一个历程时创建对象失败

2013-01-01 
ActiveX Exe 只允许一个进程时创建对象失败有这么一个需求:1、某程序既要能独立运行(随系统自动启动,我用的

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"
[解决办法]
实质就是使用ActiveX EXE创建多线程,可以参考老马的代码。
[解决办法]
先判断,用api获取进程句柄,如果找到就kill掉,然后创建
[解决办法]

引用:
CSDN论坛上连个上传附件的地方都没有?


我的社区——〉我的资源
[解决办法]
貌似有些麻烦.

帮你理一下:

一,无AX进程CreateObject时,正常,多次CreateObject与GetObject只会有一个AX进程.

二,已有AX进程时(以用户方式启动,非创建对象时自动启动),CreateObject与GetObject会创建新的AX进程.

三,要求用户方式启动,只能启动一个AX进程,同时CreateObject与GetObject共享的是已存在的AX进程中的数据.

正好我手头有类似的东西,但是并无用户运行要求,就改了一下,发现不好办.

手工运行与自动运行貌似是有区别的,自动运行时其父进程是svchost.exe,而手动时是explorer.exe.

并且,还没办法进行通讯了(那份代码是由一个AX为通讯核心,同步多个EXE间的数据的).

只有自动启动的,才能进行多个EXE间的通讯,不知道是不是哪里没搞对.

这个可能得让绿豆来看看,COM方面他貌似研究得比较多.
[解决办法]
复制下面内容粘贴到新建文本文件,保存后重命名 为 aaaa.rar

begin 600 AEXtest.rar
M4F%R(1H'`,^0<P``#0````````!S:G0@DC``:P```&X````"V1"V^<>&_CP=
M,PL`(````$%%6"YV8G<``<`%`/`!&%()D13,_9@-+X$X.N`2GR_'O>=#J02N
M<!=;!NM,0-#[^Q,8H24:N*Z;F;O*-S*L#3[[A\99TH3,6-;ZMX5.$!!3^GGQ
M[GOM<:KT(A4C2[.1U<K3WVX`)H@L(9C_E\GIQ+6^QAZ@)X#QUV_;RFQ-=""2
M-`".````C@````(,[J25,8C^/!TS#P`@````36]D=6QE,2YB87,``<`)`/##
M`UX)79T(OA$WP7!_ATU:4'@%H8&A"808ML8KDN!C_Q,<RKF%P*X[<#M46JQH
M$&X9]J^#][EGM?N*0L8M$[6''#5QW&L^>D/2*I:D\#V7)F_^';SW\.TK9THH
M&Q)"&X;5%5><WL2&06?0YC#1\K[MM?E6?G&5S#%1^3WUG^QBZH8,'$UJ79`_
M-6KH[Q%3C#T@`^YT()(U`)4```"\`````G>]"<EF@OX\'3,0``$```!-4U-#
M0U!22BY30T,``<`*`+#/\PP)W-30O9@1-Z#P>"S@34,,':B"Z$,$PKYJMPR
M_`OP1>]NQ,]X+6@ZG@WB0/!_DG))IFB0/W$K]]UW+3HFI^'=4#3Y!H-D\$F!
MO2B,B]N1NJLDB>^W9QL\<W5)ANSG%(1PVH6D\:!U?-(K&_*3""?_85%LO)!H
M'!]7Z^PR5NCZ&8E4SL6S1]GXV7"``3F-DV^XVL@?:$'`=""2,P`_`0``(0(`
M``+![0WX,8C^/!TS#@`@````0VQA<W,Q+F-L<P`!P`@`\-$J90V9%,S+W1-X
MD<':NFET`K.`&B26$42D=B)2;1.2-`Q0;B;<@7EYP(XZ<#-0E2A9:[6R!%2B
M.$>2]G_OV\Y#B]^\:\VUC\OLT_Z<X+*]TR090@:YL8'86Y)./B<>?@#J@`BK
MI23J0,'.#E:MV',>L;-\8SH(A(IJ618UPA,G>V,#(*U.$+1\W8X/M%80Q_L]
M9-L:6\)#5GG'>5[_%FD5L(J!3[2M91&H'\2_1LJYLLW</7FD\')J&TI.2:M.
MPLKG6$7>S\L#M(D(:P<$K])IA4L"2I3K"^BW;K.`;IQB_+<NOGZFCT-J,ZGU
MX@H_Q4]XU&UI1>EAN^8#R]?/TML=:G"3@40:H9TYP/C2"&Q0W)B`VC9Y3)-W
MJZS=@#ZW+3V\%7:%HOXMO]6X=$YGE7SL"/P7E7V\]8KFUK^G7BX7WV0\*'0@
MDC``Z@$```4#```"\]]XI#&(_CP=,PL`(````$%%6"YV8G```<`%`/`KC6<-
MF0S,T/V5/>@7@\$GC;0+`Y-T7PM#\)6X[8!LC@KEFVBR^";:>Q;6TF$DYLEH
MO=Z!KW99&G$6G=HG"RB<PDK"4N/G"CA(1PDC[/QG#-&Z<;;\H\>T?G\SDHD(
M;L;@]UQG-^*5'&?D.09QEBJ7ZM7P_36\PM=/0UZVN_,8Y_G?#]/L_=[#?:O;
MUSVZNO)F=?ZX-2-R$CFZ,/`)C,K+CZ98;S_5CN8J$FF$DABJI>,>9L&*YDI4


MLIHZ*EMLX6F+7+\-;G'($B.FB=N[!1#QD1"W>)_$<L[Q%T+JX-!$@[BQ_2G+
MR?,*8=8%@%\?#+$<5RKHL?A+A`^PVVU4BUY;4Y':33)4ZU3"I-:"N:P<P?BQ
M\][K1[>1&D9V"WZW*>T&S-A$+RRV(,]R%B.-7:K;0X/[;-]R6GGJJD,-0`J
MS`J;.P7<Q2ZG?K:B*BV;'#U`2GY^%F)^>8-X6Q1^=?1)1-G.;T)F]+;05G(W
M20?<Z.&CLK*D,`F8V*4@E7E[`A]YJ"QH<UCB_%ETM.22F[O(!Z7.:I2?_&[D
MT^4'S*<*T<;V=MJWS-FQL`%UPI&!C-/_$H9C^C6<8HZ[3OP]JB$]]E%MS5\P
MK"D8:@+"Q9M^%OSAEP3>]^V6"YH.(J!1`)<9M]]V;V7_121K"N_B`5YT()(R
M`.4!``!V!````G!JQ%,QB/X\'3,-`"````!&;W)M,2YF<FT``<`'`/!WR&(,
M&1$(S3T8$7OJ6^#XCC(UJ301L-DX/@QP<C2$Y%HY^.<6`9),C!X(,<3\=WP/
M=2G?4MY:M\$WP7?`YRB@3\,8,,!ACD4?@1PS$%757=48'CE*UE_BKR[NE]7&
MK^J_!N5;[,8.+"!.RBC\_DJ+J'D!RJV;Y'W03Z)`C4'H7@O%&2.HK<\XA=6Y
MT*!7!BR%X1#ZNLL-M([R)PBXNDM9M0\+$1XY7MIGA\PVR]<*4W:!%Y9<<Q@;
M1^'&RZC$,-!<%7@HO&$K6M=2P4+Y>1[C)`,SP8F(VN[\?K_?S\_W[FKU448A
M9BJDS`GWIB,W1UZJL$_(U#5P7$OJI#V(+.#(W(A%B50@LWN/T#7U"JFJD[R:
M2,-.?1T-VZ+\M)QKN%XCKH8T5RE+-!E/;2X_#P8U4Z&R@6YXRWIH[&$([%VI
M6E$]B[MQ3=A9M+NE]\;.F44S_=&$+OKW*^*-83@<(R%R>F8>"U/4W\^@%[*>
M\^()9=W/A'XX32BTX&;;`W%,3^7VTRV9XFB[=:#:H^A=W?^__GF^-T&C\&?7
M8`<3/9(66,Y%!]H9CC&5FKU7*2X-K'MV#.5/*FX8FROH8Y1YJNX\('T`D:'9
MT6NN3X5T+D"WJ66!%,:F*,\BHQ;;G_$UF4$,$=(6#DSP0$'I=""2,`"J#P``
M`%````+BYB,]-(C^/!TS"P`@````0458+F5X90`!P`4`""S@1`AU1$,C0_%
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
$`$`'`$Z6
?
end


[解决办法]
15 楼那一大坨 是源码打包的,CSDN传个资源都如此麻烦,要采取这种方式。
里面的代码很简单 ,就是一个public 变量累加。
双击AEX.exe运行 ,显示窗体, 点击按钮进行累加,在文本框显示。

然后通过代码  Set cls1 = CreateObject("AEX.Class1") 建立后
一样可以在之前的基础上进行累加显示。
AEX.exe始终是一个进程。不过我是在VB 和VBS 中测试的,asp中应该不会有什么差别。
AEX.exe 源码 很简单,估计是楼主设置的问题。

'Form1 代码
Dim cls1 As Object
Private Sub Command1_Click()
    Text1 = cls1.Lval
    cls1.Lval = cls1.Lval + 1
End Sub
Private Sub Form_Load()
    Set cls1 = CreateObject("AEX.Class1")
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Module1 代码
Public Gln As Long
Sub Main()
    If App.PrevInstance Then Exit Sub
    Form1.Show
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Class1 代码
Public Property Get Lval() As Variant
    Lval = Gln
End Property







[解决办法]
VB6的进程外COM没有在ROT中注册,所以你得想办法让你的对象在ROT里注册才行。

参考Matthew Curland的Advanced Visual Basic 6 ,里面有讲到怎么注册到ROT的
[解决办法]
神豆一出,谁与争锋,呵呵。
[解决办法]
手工运行的不能作为ActiveX服务器.

因为我手工运行的那个AX已经不能作为同步核心为多个进程同步数据了.

看豆子说的:

"VB6的进程外COM没有在ROT中注册,所以你得想办法让你的对象在ROT里注册才行。"
[解决办法]
的确是需要 ROT(《高级Visual Basic 编程》的第十章)。
调用时类似 Excel 一样,先 GetObject() 取已存在实例,如果出错,才用 CreateObject() 创建第一个实例。
[解决办法]
查了一下,据说当前用户的交互桌面和 ASP 运行的非交互桌面属于两个 workstation,它们的 ROT 是隔离的。
所以你的多个 Web 客户端应该是共享 ROT 的。如果一般 exe 也要共享,就通过间接访问 WebService 来实现。

热点排行