我现在遇到一个很棘手的问题,为表达清楚,我先具体描述一下,请各位高手耐心看下去:
我现在需要做一个vb Active X控件,实现的功能就是根据外部提供的一个word模板文件.dot创建一个Word文件 .doc,在标签位置插入适当的内容。并按照用户提供的路径和名称保存。现在这个功能已经实现了。(最后我会提供源代码,和大家共享)这个控件要被Web调用。同时Web还要调用另一个控件(由别人来完成)在Web页面中嵌入一个Word形式的窗口,并打开已经生成的Word文件.doc。总体来说就是完成一个在线编辑器的功能。这个控件我已经做好了,基本功能已经实现。
出现的问题:
(1)由于这个控件是要在硬盘中写东西,所以系统认为这个控件是不安全。每次刷新或者第一次打开Web页面时总要提示,问是否允许继续运行,如果允许,是可以正常运行的。但是这样很麻烦的,不符合 用户的要求。解决的方法有 两个。一个是实现IObjectSafty接口。一个是修改注册表,
HKEY_CLASSES_ROOT
\CLSID
\{我的控件的ID}
\Implemented Categories
\{7DD95802-9882-11CF-9FA9-00AA006C42C4}
\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
前一个方法我不会,如有知道的,请告诉小第一下
(2)再就是这个控件从一个目录拷贝到另一个目录,就要重新注册才能运行,所以要手动运行:regsvr32 命令。
请问怎样才能解决这两个问题, 可以写一个批处理文件,同时注册和修改注册表。
(3)我还有些不太明白,Active X控件该开始时部署在服务器上的,当用户第一次调用这个页面,就会下载客户端机器上的默认路径下,这个默认路径是哪一个?
(4)在控件注册的时候,是在服务器上注册后,客户端都可以使用,还是要在每个客户端注册。
我现在头都打了,也不知道怎么描述了。!!!!还请大家给我详细介绍一下ActiveX控件在Web上的工作原理和机制。
我现在需要做一个vb Active X控件,实现的功能就是根据外部提供的一个word模板文件.dot创建一个Word文件 .doc,在标签位置插入适当的内容。并按照用户提供的路径和名称保存。现在这个功能已经实现了。(最后我会提供源代码,和大家共享)这个控件要被Web调用。同时Web还要调用另一个控件(由别人来完成)在Web页面中嵌入一个Word形式的窗口,并打开已经生成的Word文件.doc。总体来说就是完成一个在线编辑器的功能。这个控件我已经做好了,基本功能已经实现。
出现的问题:
(1)由于这个控件是要在硬盘中写东西,所以系统认为这个控件是不安全。每次刷新或者第一次打开Web页面时总要提示,问是否允许继续运行,如果允许,是可以正常运行的。但是这样很麻烦的,不符合 用户的要求。解决的方法有 两个。一个是实现IObjectSafty接口。一个是修改注册表,
HKEY_CLASSES_ROOT
\CLSID
\{我的控件的ID}
\Implemented Categories
\{7DD95802-9882-11CF-9FA9-00AA006C42C4}
\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
前一个方法我不会,如有知道的,请告诉小第一下
(2)再就是这个控件从一个目录拷贝到另一个目录,就要重新注册才能运行,所以要手动运行:regsvr32 命令。
请问怎样才能解决这两个问题, 可以写一个批处理文件,同时注册和修改注册表。
(3)我还有些不太明白,Active X控件该开始时部署在服务器上的,当用户第一次调用这个页面,就会下载客户端机器上的默认路径下,这个默认路径是哪一个?
(4)在控件注册的时候,是在服务器上注册后,客户端都可以使用,还是要在每个客户端注册。
我现在头都打了,也不知道怎么描述了。!!!!还请大家给我详细介绍一下ActiveX控件在Web上的工作原理和机制。
解决方案 »
- 关于 MID 父窗体 实例化子窗体的
- 求一个为图片瘦身的脚本
- 将乱序字串,判断正确词语
- VB 的 VScroll MAX 不够用,谁有好的?
- 关于控件透明的问题。。
- ☆☆☆☆一个关于多项目之间相互调用窗体的问题☆☆☆☆
- excel vba
- 我来问个最简单的问题,dao、rdo能做到的事情是不是ado基本都能做到,
- Who can help me about parameter in crysatal report 8.5
- VB中连接数据库执行SQL语句后,看结果集怎么办
- 在RichTextBox中,如何从selStart得到光标开始位置到文本开始位置的单字节个数?
- 请问怎样关闭PopupMenu?
新建—Active X控件—在“通用“、“声明“中写入 如下代码:
Private bmName As String
Private bmCont As String
Private strDotPathAndName As String
Private strDocPathAndName As String
Private objword As New Word.Global
Private oWord As New Word.Application
Private mydoc As New Word.Document Public Sub createDocFile(strdot As String)
strDotPathAndName = strdot
oWord.Visible = False
Set mydoc = oWord.Documents.Add(strDotPathAndName, , wdFormatDocument, True)
End SubPublic Sub insertBookMark(bmNamet As String, bmCont As String)
bmName = bmNamet
bmCont = bmCont
oWord.Selection.GoTo wdGoToBook, , , bmName
oWord.Selection.TypeText bmCont
End SubPublic Sub closeAndSave(strdoc As String)
strDocPathAndName = strdoc
oWord.ActiveDocument.SaveAs (strDocPathAndName)
oWord.ActiveDocument.Close
oWord.Quit
Set oWord = Nothing
End Sub
第一个过程是根据模板创建 空文件,strdot是模板存储路径和名称,第二个过程是插入内容:bmNamet是标签名称,bmCont是应该插入的内容。第三个工程是保存文档:strdoc是文件的保存路径和名称。这三个工程全部是在声明中写的,这就是这个控件的全部代码。
然后保存,并生成wordActivex.ocx控件。测试用的Web页面的代码:
<html>
<head>
<title>kdjfk</title>
</head>
<body>
<script language="VBScript">
Sub createFile()
oframe.createDocFile "D:\sunlin\sunlin\inert_word\111.dot" //111.dot是一个模板名称
End Sub
Sub inser()
oframe.insertBookMark "合同标题","你好吗?"//标签名称 和内容
oframe.insertBookMark "合同编号","123456789"
oframe.insertBookMark "签约单位","商捷集团"
End Sub
Sub clo()
oframe.closeAndSave "D:\sunlin\sunlin\inert_word\sunjet.doc"//保存路径和名称
End Sub
</script>
<tr>
<td>
<div onClick="createFile">Create a New Doc</div><br>
<div onClick="inser">Insert the BookMark</div><br>
<div onClick="clo">Save the Doc</div><br>
</td>
</tr>
<object classid="clsid:ECB70A79-11A3-45E5-9503-A6943B20A94B" CODEBASE="wordActivex.CAB#version=1,0,0,0" id="oframe" width="0" height="0">
</object></body>请问我在编写过程中又没有出现问题,怎样改正,是否需要打包?在服务器上怎么部署?Word模板是存处在服务器上的。当控件下载到客户机上 后,上面的路径是不是认为是本地机器上的路径了,这样肯定找不到模板。应该怎样处理。
我头都大了,希望大家耐心详细的指教!!!分数不够还可以再加!!!
谢谢