OCX可以调用外部执行程序吗? ( 积分: 100 )

  • 主题发起人 主题发起人 叶不归
  • 开始时间 开始时间

叶不归

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要在网页上调用客户本机的可执行程序,不知是否可以用activeX的ocx实现?
例如: html --> ocx --> 打开exe
如果可以,如何调用exe?
(我试过在ocx里用shellexecute和winexec都无反应)
 
我需要在网页上调用客户本机的可执行程序,不知是否可以用activeX的ocx实现?
例如: html --> ocx --> 打开exe
如果可以,如何调用exe?
(我试过在ocx里用shellexecute和winexec都无反应)
 
可以啊,我在VB中是这样做的:
Public Sub Run(StrExePath As String) '调用一个EXE文件,如果该文件已经存在,则激活它
Dim Res As Integer
Dim FileName As String
Dim StrCurrentDir As String
Dim IntPathLng As Integer

On Error GoTo Err_Handler
FileName = Dir(StrExePath)
IntPathLng = Len(StrExePath) - Len(FileName) - 1
StrCurrentDir = Left(StrExePath, IntPathLng)

'Res = Shell(StrExePath, vbNormalFocus) Shell函数无法设定EXE文件的运行起始路径,因此改用API函数ShellExecute
Res = ShellExecute(UserControl.hwnd, "open", StrExePath, (GcCode &amp
&quot
&quot
&amp
DocType &amp
&quot
83"), StrCurrentDir, SW_SHOW + SW_RESTORE)
If Res < 32 Then Err.Raise 12345 + vbObjectError, App.EXEName, &quot;调用可执行文件错误&quot;
Exit Sub

Err_Handler:
Dim StrPrompt As String
StrPrompt = &quot;系统调用失败(没有找到可执行文件)。&quot
&amp
vbCrLf
MsgBox StrPrompt
End Sub

Private Sub UserControl_Initialize()
NoError = True
GcCode = &quot;&quot;
DocType = &quot;&quot;
End Sub
 
用ShellExecute,我估计是你的程序执行路径没指定。
 
function run(str){
CallExe.DocType=&quot;1&quot;;
CallExe.GcCode=str;
CallExe.StrExePath=&quot;C:/GIS/CompleteDocNew.exe&quot;;
CallExe.Run();
}
/form>
<OBJECT id=&quot;CallExe&quot
codeBase=&quot;GisFlow.CAB#version=1,0,0,0&quot
classid=CLSID:A208D1A1-3B05-4058-A73A-CB183AF7C9B9 width=0 height=0 VIEWASTEXT>
<PARAM NAME=&quot;_ExtentX&quot
VALUE=&quot;2249&quot;>
<PARAM NAME=&quot;_ExtentY&quot
VALUE=&quot;926&quot;>
</OBJECT>
</body>
</html>
 
可了以,谢谢。是字串处理的错误。
winexec(pchar('dxxxxxxxx.exe -ss'), sw_show)
----这样错误,没反应

改成这样就通过了:
var s: string;
s := 'dxxxxxxxx.exe -ss';
winexec(pchar(s),sw_show);
 
接受答案了.
 
后退
顶部