比如已经打开一个实例(浏览器)
这个时候点外部链接的时候
不打开新窗体,让前一实例获得焦点
这个已经做到了If gOnlyOne = 0 Then '限制打开一个主窗体
If App.PrevInstance Then
'找到上一实例,让他最大化
Dim WinWnd As Long
WinWnd = FindWindow("ThunderRT6MDIForm", vbNullString)
ShowWindow WinWnd, SW_RESTORE
SetForegroundWindow WinWnd
Exit Sub
End
End If
End If
然后 怎么样向前一实例发送消息?并且让他捕获消息?消息的参数为 Command
在 main函数里接受外部参数,看是否是外部打开
gCommand = Command发送消息的方法SendMessage hwnd, gCommand, 65, 0可怎么样让前一实例捕获这个消息 并做出处理?
这个时候点外部链接的时候
不打开新窗体,让前一实例获得焦点
这个已经做到了If gOnlyOne = 0 Then '限制打开一个主窗体
If App.PrevInstance Then
'找到上一实例,让他最大化
Dim WinWnd As Long
WinWnd = FindWindow("ThunderRT6MDIForm", vbNullString)
ShowWindow WinWnd, SW_RESTORE
SetForegroundWindow WinWnd
Exit Sub
End
End If
End If
然后 怎么样向前一实例发送消息?并且让他捕获消息?消息的参数为 Command
在 main函数里接受外部参数,看是否是外部打开
gCommand = Command发送消息的方法SendMessage hwnd, gCommand, 65, 0可怎么样让前一实例捕获这个消息 并做出处理?
解决方案 »
- VB调用VC++动态库的问题,请大侠出手相助.
- 我对语言一点都不懂,我想学习VB不知道如何入手,请高手指教~!~!~!~~~!!
- 我想建立和数据库的连接不用ADO。SELECT查询后的记录集里有6个要分别放到不同的变量中去请各位老师帮忙写个程序着急用谢谢
- 怎样才能把源程序的所有文件另存到另外一个文件夹?
- 请问怎么用ADO备份SQL SERVER 2000数据库?在线等待。。。
- 请高手指点:
- SQL+VB的程序开发完成,怎么用程序在用户机器上添加数据库?
- 我真的不会?
- 谁能给我份显示VB柱状图的程序?告诉我那有下载的也行!谢谢!
- 有没有比较好的VB专业网站
- 新手求助!随机问题!
- 不能自動增加 ,,為何?
( main函数里 Command )传递给浏览器一浏览器一 接收到 并做出处理?大虾给个思路 谢谢!
Private Sub WebBrowser2_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Cancel = True
Me.WebBrowser1.Navigate2 URL
End Sub
1、使用内存映射文件共享两个进程中的IE控件的URL。
2、当第二个进程中的IE控件开始导航时,取消导航,然后传递自定义消息给第一个进程,通知它读内存映射文件取URL。
3、第一个进程得到URL后,使用Navigate2方法导航到指定的链接。
4、激活第一个进程。
注意事项:1、由于需要处理跨进程通信,故不能直接使用SendMessage传递URL。
2、如果两个进程具有父子关系,可以使用管道进行进程间通讯。
Private Sub WebBrowser2_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Cancel = True
Me.WebBrowser1.Navigate2 URL
End Sub这个浏览器一没给人任何消息 怎么打开url 啊?如果是跨进试,亦可按以思路进行,只不过思路改为:
1、使用内存映射文件共享两个进程中的IE控件的URL。
2、当第二个进程中的IE控件开始导航时,取消导航,然后传递自定义消息给第一个进程,通知它读内存映射文件取URL。
3、第一个进程得到URL后,使用Navigate2方法导航到指定的链接。
4、激活第一个进程。
注意事项:1、由于需要处理跨进程通信,故不能直接使用SendMessage传递URL。
2、如果两个进程具有父子关系,可以使用管道进行进程间通讯。这个是可以的 有没有进程通信的例子可以解决这个问题?
private Declare Function RegisterWindowMessage Lib "user32" _
Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
看看这个吧,前几天有一个贴子,一时间还找不到了
'BY 嗷嗷叫的老马
'http://www.m5home.com/
'窗体上添加一个图片框(拖大点,要显示东西的...),一个按钮,名称为默认.
'窗体的LinkMode设置为"1".
'编译后,运行两份,点击按钮,可以在另一份实例中看到效果.Option ExplicitPrivate Sub Command1_Click()
DDESendMessage "DDESendMessage=" & App.ThreadID
End SubPrivate Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
Picture1.Print CmdStr
Cancel = False
End SubPrivate Sub Form_Load()
Me.Caption = App.ThreadID
End SubPrivate Sub DDESendMessage(ByVal Msg As String)
Dim theTime As Long
With Picture1
.LinkMode = vbLinkNone
.LinkTopic = "Project1|Form1"
.LinkMode = vbLinkManual
.LinkExecute Msg
theTime = .LinkTimeout
.LinkTimeout = 10 '1秒超时
.LinkMode = vbLinkNone
.LinkTimeout = theTime
End With
End Sub