以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- axWebBrowser打开word文件时能否不闪烁 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136926) |
||||
-- 作者:kgdce -- 发布时间:2019/6/24 17:28:00 -- axWebBrowser打开word文件时能否不闪烁 全局代码—————————————————————————————————— Public Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) axWebBrowser = sender.ActiveXInstance End Sub axWebBrowser = Nothing —————————————————————————————————————— 在窗口中选择word按钮执行的代码——————————————————————— Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter = "word文件|*.docx" If dlg.ShowDialog = DialogResult.OK Then \'如果用户单击了确定按钮 Dim web As Object = e.Form.Controls("WebBrowser1").basecontrol web.Navigate(dlg.FileName) Do Until axWebBrowser IsNot Nothing Application.DoEvents Loop Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document",
System.Reflection.BindingFlags.GetProperty,
Nothing, axWebBrowser,
Nothing) Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing) oDocument.saved = True vars("doc")
= oDocument End If —————————————————————————————————————— 意图通过webbrowser显示word,更换word文件内容,但不想让word工具栏闪烁,能否做到? |
||||
-- 作者:有点甜 -- 发布时间:2019/6/24 17:50:00 --
做不到。这个无法控制。
|
||||
-- 作者:kgdce -- 发布时间:2019/6/24 19:02:00 -- Dim th As String = tab.Table.Current("题号") th = "C:\\Users\\wuyong\\Desktop\\wj\\第" & th & "题.docx" Dim app As New MSWord.Application Dim doc1 = app.Documents.Open(th) app.ActiveWindow.Selection.WholeStory app.ActiveWindow.Selection.Copy Application.DoEvents _app.ActiveWindow.Selection.WholeStory _app.ActiveWindow.Selection.MoveRight(Unit:=1, Count:=1) _app.ActiveWindow.Selection.TypeParagraph _app.ActiveWindow.Selection.Paste \'_app.Documents.save \'Doc1.Close app.quit Application.DoEvents 上述代码中_app为公共代码中的word应用程序,而app为新建的一个word进程,打开新文件,将此新文件内容拷到_app的文档中,可以实现不闪烁,但是就是太慢了,需要7至10秒,有没有更快的办法? 如果是用_app打开新文档,会出现提示,选择网页文件路径的提示! doc1 = _app.Documents.Open(th),如按网页地址写入应可以吗?
[此贴子已经被作者于2019/6/24 19:43:22编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/6/24 20:25:00 -- 不行的,做不到 |
||||
-- 作者:kgdce -- 发布时间:2019/6/25 18:58:00 -- 现在改变思路,准备在一个窗口中嵌入word文档,通过windows api操作,窗口的word通过vba操作。 在全局代码中定义
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Public awp As new MSWord.Application Public hWndWordApp As Long Public WordDocument As msword.Document 在窗口中 执行下面代码时 不知如何找到窗口句柄 Dim frm As WinForm.Form = Forms("试题编辑") Dim th As String = "C:\\Users\\wuyong\\Desktop\\wj\\第0题.docx" WordDocument= awp.Documents.Open(th) hWndWordApp = FindWindow("OpusApp", "第0题 - Microsoft Word") messagebox.show(hWndWordApp) Call SetParent(hWndWordApp, frm.hwnd) 这句中的frm的句柄找不到,如何解决,有没有一个具体的方案? |
||||
-- 作者:有点蓝 -- 发布时间:2019/6/25 20:56:00 -- Call SetParent(hWndWordApp, frm.baseform.Handle) |
||||
-- 作者:有点甜 -- 发布时间:2019/6/26 10:21:00 -- 嵌入exe,参考
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=73007&skin=0 |