从active-x

时间:2017-03-23 09:30:38

标签: c# internet-explorer vb6 activex

我不知道如何解决以下任务,如果有人能给我一个小建议,我会很高兴。

我在 visual basic 6.0 中获得了旧的源代码,活动的x浏览器插件启动了一个VB .dll模块,用于将文档上传到服务器。这是webclient的一部分。要启动upload-services,将调用active-x控件。

Private Sub ProgressStarter()
Dim hModule As Long
hModule = 0

Dim strExe As String
Dim strParam As String
Dim nResult As Long

 strExe = App.path & "\ClientServiceStarter.exe"


strParam = "some_params"

' wait for Exe
nResult = ExecCmd(strExe & strParam)


If nResult < 32 Then
    MsgBox "Error", vbCritical Or vbOKOnly
End If

Exit Sub

execcmd-func启动VB .dll

Public Function ExecCmd(cmdline$)
Dim proc As PROCESS_INFORMATION
Dim Start As STARTUPINFO

' Initialize the STARTUPINFO structure:
Start.cb = Len(Start)

' Start the shelled application:
Dim Ret As Long
Ret& = CreateProcessA(vbNullString, cmdline$, 0&, 0&, 1&, _
                      NORMAL_PRIORITY_CLASS, 0&, _
                      vbNullString, Start, proc)

' Wait for the shelled application to finish:
ExecCmd = Ret&

Ret& = WaitForSingleObject(proc.hProcess, 1)
While Ret& = WAIT_TIMEOUT
    DoEvents
    Ret& = WaitForSingleObject(proc.hProcess, 1)
Wend
Call GetExitCodeProcess(proc.hProcess, Ret&)
Call CloseHandle(proc.hThread)
Call CloseHandle(proc.hProcess)
End Function

现在我想将VB .dll更改为c#编写的应用程序。我的问题是,我应该使用什么样的应用程序以及如何调用它,因为只更改ProgressStarter函数中的文件名并不起作用(没有任何反应)。 我尝试使用wpf-application,它自己运行,但无法从这个active-x执行。 那么......我做错了什么?任何想法如何解决这个问题?

亲切的问候和 抱歉我的英语不好。

0 个答案:

没有答案