VB中实现网页和EXE交互

VB中实现网页和EXE交互,第1张

概述实例1, 通过网页元素属性交互: 1.  正常编写HTML页面,利用元素<a ....></a>的url属性传递参数。例如某个链接写成: <a href="about.htm" url="run:notepad">执行此应用程序</a> 2. VB中编写代码。首富,引入WebBrowser控件,在部件中选中“Microsoft Internet Controls”;     引用它比较安全,发布时

实例1,通过网页元素属性交互:

1. 正常编写HTML页面,利用元素<a ....></a>的url属性传递参数。例如某个链接写成:

<a href="about.htm" url="run:notepad">执行此应用程序</a>

2. VB中编写代码。首富,引入Webbrowser控件,在部件中选中“Microsoft Internet Controls”;

引用它比较安全,发布时不用带上,因为windows系统都会有它,且会随着电脑上IE的不同而不同,内核版本完全一致。

3. 在”引用“中引用”Microsoft Object library“(它指向的是MSHTML.TLB文件);

4. 在本窗体模块全局声明:Public WithEvents m_doc As HTMLdocument;

5. 在Webbrowser加载文档结束窗口事件中赋值:

Private Sub webAbout_documentComplete(ByVal pdisp As Object,URL As Variant)
Set Me.m_doc = Me.webAbout.document
End Sub

6. 响应m_doc的点击事件:

Private Function m_doc_onclick() As Boolean
On Error Resume Next

Dim sUrl$
sUrl = m_doc.activeElement.URL
If left(sUrl,3) = "run" Then
sApp = Right(sUrl,Len(sUrl) - 4)
If Dir(sApp) = "" Then
MsgBox "此文件不存在!" & vbCrLf & sApp,vbCritical,"!"
Exit Function
Else
ShellExecute 0&,vbNullString,sApp,vbnormalFocus
End If
End If
Exit Function
myEnd:
'MsgBox "不能执行,路径或文件不存在!" & m_doc.activeElement.URL,"!"
m_doc_onclick = True
End Function

实例2 一个示例:

不多说了,直接看代码吧

Public WithEvents m_runnotepad As HTMLAnchorElement
Public WithEvents m_doc As HTMLdocument


Private Sub Form_Load()
Me.Webbrowser1.Silent = True
Me.Webbrowser1.Navigate "about:blank"

Const tag$ = "<a href='#' url='$url' style='display:block;wIDth:200px;margin:0 32px'>运行$name</a>"
Dim s$
'//s = "<a href='#' url='aaaa' ID='runnotepad' onclick='runnotepad();'>运行NOTEPAD</a>"
Dim oFSO As Variant,ofiles As Variant,ofile As Variant
Set oFSO = CreateObject("Scripting.fileSystemObject")
Set ofiles = oFSO.getfolder("c:\windows\system32").files
Dim sDoc$


sDoc = "<body>"
For Each ofile In ofiles
If LCase(Right(ofile.name,4)) = ".exe" Then


s = Replace(tag,"$url",ofile.Path)
s = Replace(s,"$name",MID(ofile.name,1,Len(ofile.name) - 4))
sDoc = sDoc + s
End If
Next

sDoc = sDoc + "</body>"
Me.Webbrowser1.document.write (sDoc)
Set Me.m_doc = Me.Webbrowser1.document

Set Me.m_runnotepad = Me.Webbrowser1.document.getElementByID("runnotepad")
'//MsgBox Me.Webbrowser1.document.getElementByID("runnotepad").onclick
End Sub


Private Function m_doc_onclick() As Boolean
On Error Resume Next
'//DeBUG.Print m_doc.activeElement.URL

If Err.Number Then Exit Function
Shell m_doc.activeElement.url,vbnormalFocus
End Function


Private Function m_runnotepad_onclick() As Boolean
'//Shell "notepad",vbnormalFocus
End Function


实例3 EXE和Js交互:

首先,要让Js调用EXE里的函数,函数必须写成Public,Sub或Function都可以。然后,在Webbrowser的documentComplete事件中给网页body加上窗体的方法,如下:

Private Sub Webbrowser1_documentComplete(ByVal pdisp As Object,URL As Variant)
' On Error Resume Next
pdisp.document.body.setAttribute "extend",Me
End Sub

再写个doSomething函数(方法)给网页调用:

Function doSomething(ByVal sParam$)
MsgBox sParam,vbinformation Or vbOKOnly,"doSomething"
End Function

网页的代码如下:

<HTML>
<a href="voID(0)" onclick="document.body.extend.doSomething('www.Google.com');return false;">Google.com</a><br />
</HTML>

欧了,就这么多,实现交互了。

实例4

最后再给出一个HTML文档,利用脚本执行EXE。不过这个可能需要权限。代码如下:

<script type="text/JavaScript"> function run(exename) { //alert('aa'); var wsh; try{ wsh=new ActiveXObject("WScript.Shell"); } catch(e) { //alert(e); } wsh.run(exename); } </script> <a href="#" onclick="run('file:///C:/abc.exe');">运行NOTEPAD</a>

全文结束。鸣谢ConfIDence! 总结

以上是内存溢出为你收集整理的VB中实现网页和EXE交互全部内容,希望文章能够帮你解决VB中实现网页和EXE交互所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1275765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存