有个想法,如何实现????????

forever_chang 2002-01-31 11:18:32
有一个WebBrowser控件,我想将它正在浏览的网页存为Word文件,如何通过代码实现?
刚才自己思考了一下,能否先对网页正在显示的内容全选(相当于鼠标右键点开后的弹出菜单中的全选功能),然后拷贝到剪切板,最后拷贝到一个Word文件中。也许这种方法比较愚蠢,希望各位高手高高手不吝赐教,给小弟指条明路,小弟感激不敬,另有300大分,还望笑纳。
...全文
141 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony_jian 2002-02-01
  • 打赏
  • 举报
回复
我想如果用你的思路的话那完全可以用模拟Ctrl+V组合键的操作来解决问题,要达到你的要求只需稍微改改就行了.

Private Declare Function GetForegroundWindow& Lib "user32" ()
Private Declare Function GetWindowText& Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long)
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Function MapVirtualKey& Lib "user32" Alias "MapVirtualKeyA" _
(ByVal wCode As Long, ByVal wMapType As Long)

Private Const VK_CONTROL& = &H11 'ctrl键的虚拟键值
Private Const KEYEVENTF_KEYUP% = &H2
Private Const VK_V& = &H56 'V键的ascii码值(虚拟键值)

Private Sub Command1_Click()
Text1.Text = ""
End Sub

Private Sub Text1_Change()
Timer1.Enabled = True
Clipboard.Clear
Clipboard.SetText Form1.Text1.Text
End Sub

Private Sub Timer1_Timer()
Dim dl1&, dl2&
Dim Canp As String * 255
dl1& = GetForegroundWindow&() '获取当前活动窗口的句柄
dl2& = GetWindowText&(dl1&, Canp$, 255) '获取窗口的标题

If Left(Canp$, 14) = "Microsoft Word" Then
MyCapture 1
Timer1.Enabled = False
End If
End Sub
Public Sub MyCapture(ByVal mode%) '生成一次模拟击键Ctrl+v
Dim altscan%
Dim dl&
Dim snapparam%
altscan% = MapVirtualKey(VK_CONTROL, 0)
keybd_event VK_CONTROL, altscan, 0, 0
keybd_event VK_V, 0, 0, 0
keybd_event VK_CONTROL, altscan, KEYEVENTF_KEYUP, 0
End Sub
playyuer 2002-02-01
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "about:blank"
End Sub
yanchang 2002-02-01
  • 打赏
  • 举报
回复
怎么样了?解决了吗
tief 2002-02-01
  • 打赏
  • 举报
回复
up?
c7654321 2002-01-31
  • 打赏
  • 举报
回复
呵呵~~~~~~~~~~~如果只是手工操作你的办法绝对可行的。
我但要做成通用的程序——————比较困难。
如果微软给咱一个接口就好了,可能小生学太少,也许它给我咱还不知道。
VB有个控件叫RICHEDIT,你看看能不能把它和WebBrowser结合起来,
再用一些剪贴板函数,保存的文件格式或许和WORD是兼容的。
lihonggen0 2002-01-31
  • 打赏
  • 举报
回复
这个想法不错,不过有难度
gongwen 2002-01-31
  • 打赏
  • 举报
回复
upup
wssqsh 2002-01-31
  • 打赏
  • 举报
回复
:forever_chang 你的想法在一般的网页上可行,可复杂如表格等就会发现自己粘的是一堆《html》
uguess 2002-01-31
  • 打赏
  • 举报
回复
: dbcontrols(泰山__帮助你使我感到快乐.) 老乡又在蒙人!SaveAs能“存为Word文件”么?

:forever_chang 其实你的想法应该是正确的!
dbcontrols 2002-01-31
  • 打赏
  • 举报
回复
如何导出收藏夹到文件或者导入文件到收藏夹
在VB中选择菜单的Project | References 选项,在References对话框中选择Microsoft Internet Controls项,然后在程序中加入以下语句:
Dim dc As New SHDocVw.ShellUIHelperdc.ImportExportFavorites False, "c:\a.html"
Set dc = Nothing
就可以将收藏夹导出到 c:\a.htm 中了,如果要从文件导入到收藏夹,只要将上面的False改为True,将"c:\a.html"改为要导入的文件名就可以了。
ferrytang 2002-01-31
  • 打赏
  • 举报
回复
帮你u~~~~~~~p
dbcontrols 2002-01-31
  • 打赏
  • 举报
回复
SaveAs
tief 2002-01-31
  • 打赏
  • 举报
回复
下面是暗以前做的Doc转html历程,反过来也是easy,只要重设类型过滤器即可,而且Open的时候要指定html文档。

' 使用 VBA 代码将 Doc 格式的文档转化为 Html
' 同理,使用 VC 也可以类似如下方法解决
' 在 VC 中步骤如下:
' (1)在 App Wizard 中选择支持 Automation
' (2)Class Wizard -> Add class -> From a Type Library
' "c:\program files\microsoft offic\office\msword8.olb"
' 这样就可以对 Word 对象进行操作了。

Private Sub cmdConvert_Click()

' 建立 Word.Application 对象

Dim objWord As New Word.Application
objWord.Visible = False

' 打开要进行格式转化的文档

objWord.Documents.Open "c:\ddd.doc"
Debug.Print "ASSERT::" & objWord.FileConverters("HTML").FormatName

' 引用转化器,将文档保存为其它格式,转化器的选用取决于转化器的 ClassName

objWord.ActiveDocument.SaveAs "c:\ddd.html", objWord.FileConverters("HTML").SaveFormat

MsgBox "Converted!", vbInformation, "Doc2Html"

Set objWord = Nothing

End Sub

Private Sub Form_Load()

Dim objWord As New Word.Application
Dim objConverter As Word.FileConverter

objWord.Visible = False

' 遍历所有可用转化器的 FormatName 和 ClassName

For Each objConverter In objWord.FileConverters
Debug.Print "Converter = " & objConverter.FormatName
Debug.Print "ClassName = " & objConverter.ClassName
Next

Set objWord = Nothing

End Sub
Tenner 2002-01-31
  • 打赏
  • 举报
回复
RichTextBox.SaveFile
能保存成 .rtf 格式的文件,WORD能支持RTF格式的文件。
chsl918 2002-01-31
  • 打赏
  • 举报
回复
我想这个思路总比控制剪贴板好点,因为毕竟控制那个东东不如控制文件呢!

仅供参考,不对就笑。
chsl918 2002-01-31
  • 打赏
  • 举报
回复
我的想法就是
1.首先把那个网页存成文件
2.用word打开这个网页文件(Word本身支持网页格式的)
3.调用程序把这个打开的Word文件另存为Word文件
4.删除原先那个存出的网页文件

以上思路没有程序测试。
jett 2002-01-31
  • 打赏
  • 举报
回复
好题
先占个位置

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧