以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]bat文件执行问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106190)

--  作者:lzzhx
--  发布时间:2017/9/4 12:38:00
--  [求助]bat文件执行问题
请教老师:下面代码执行有问题

dim proc as new process
proc.file = projectpath & "mydll\\aaaa.bat"
on error resume next
proc.start()
proc.waitforinputidle()
if err.number <> 0 then
    messagebox.show("控件注册失败!")
else
    messagebox.show("控件注册成功!")
endif

执行后控件已经注册成功了,但弹出的对话框却是  控件注册失败!



--  作者:有点甜
--  发布时间:2017/9/4 12:49:00
--  
 注册好以后,尝试createobject生成对应的对象,如果报错,说明没有成功,否则,就是注册成功了。
--  作者:lzzhx
--  发布时间:2017/9/4 12:54:00
--  
已经注册成功了,但弹出的对话框却是  控件注册失败!
--  作者:lzzhx
--  发布时间:2017/9/4 13:08:00
--  
bat文件见附件,试验时将bat文件放在某个中文文件夹,代码如下,执行时修改的路径认不出来了,执行会出错,请老师看看如何 修改?
Dim batfilename As String = ProjectPath & "mydll\\MxDraw52\\RegMxDrawX.bat"
Dim OldText As String = FileSys.ReadAllText(batfilename)
Dim dirsz() As String = batfilename.Split("\\")
Dim dirstr As String = "cd\\" & vbcrlf & dirsz(0) & vbcrlf
For n As Integer = 1 To dirsz.Length -2
    dirstr = dirstr & "cd " & dirsz(n) & vbcrlf
Next
dirstr = dirstr.trim(vbcrlf)
MessageBox.Show(OldText)
Dim NewText = OldText.Replace("%~d0" & vbcrlf & "cd %~dp0",dirstr)
FileSys.WriteAllText(batfilename,NewText,False)
MessageBox.Show(NewText)
Dim Proc As New Process
Proc.File = batfilename
On Error Resume Next
Proc.Start()
Proc.WaitForInputIdle()
If Err.Number <> 0 Then
    MessageBox.Show("控件注册失败!")
Else
    MessageBox.Show("控件注册成功!")
End If
FileSys.WriteAllText(batfilename,OldText,False)
[此贴子已经被作者于2017/9/4 13:11:15编辑过]

--  作者:lzzhx
--  发布时间:2017/9/4 13:12:00
--  
附件怎么传不上去?
[此贴子已经被作者于2017/9/4 13:12:32编辑过]

--  作者:lzzhx
--  发布时间:2017/9/4 13:14:00
--  
附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:regmxdrawx.zip


请老师看看
[此贴子已经被作者于2017/9/4 14:10:15编辑过]

--  作者:有点甜
--  发布时间:2017/9/4 14:36:00
--  

无法那样判断的,你要判断注册表,红色改成你控件或dll的对应编号

 

Dim reg = Registry.ClassesRoot.OpenSubKey("CLSID\\{7713F78A-44DE-42BA-A1F6-3FB0BD6CA63B}\\")
If reg Is Nothing Then
    msgbox("没注册")
End If


--  作者:lzzhx
--  发布时间:2017/9/4 15:05:00
--  
bat文件替换一些字符后,在运行时汉字不认识了,路径错误
--  作者:有点蓝
--  发布时间:2017/9/4 16:41:00
--  
使用英文路径
--  作者:lzzhx
--  发布时间:2017/9/4 16:46:00
--  
proc.waitforinputidle()  感觉没有起作用