前言: 近两周被分到一个GIS项目组,本来以为可以好好接触下GIS项目的开发,但是没想到竟然碰到个恶心的需求,要将其中一个属性页面抽取出来,使用VB做成一个可视化的ocx插件,应用到系统中. 悲哀的项目,杯具的客户需求,我可悲命运.
首先声明,本人一没做过vb的项目,二无任何关于注册ocx的经验,三无C#桌面应用开发的经验. 基本上从零开始,但是得到了身边几位同事的指导,基本上把这一连串的内容都组装起来了,感觉还可以,但是哪天某位仁人路过,有啥更好的想法,尽管提啊,欢迎指教.
转入正题,就从我摸索的过程中总结起了啊,有些繁琐.
开发内容简述:
1. 创建一个OCX工程。需求为,做一个数据列表。(够简单吧? 主要内容不是VB的开发)
2. 编译生成一个ocx,分别能在网页中调用与C#桌面应用中使用。
详细步骤如下:
1. 工程开发如下:
(1)、创建一个ActiveX 控件工程;
(2)、将ListView控件添加到控制面板(选择菜单栏中“工程”-> "引用" -> "Microsoft XML, V6.0"、“工程”-> "部件" -> "Microsoft windows Common Controls 6.0"),并且拖一个到UserControl对象上,选择当前Listview对象,在属性框中“通用”->"查看"中选择"3 - lvwReport"
(3)、这一步比较繁琐,就是添加几个事件,UserControl的resize事件与添加一个按钮已经他的测试事件
备注:此处我是启动了一个tomcat服务,将一个xml文件放入其中,然后将服务器Url指向了这个文件,最后解析成一到ListView上的。我的vb工程以及服务器上放置的xml文件参见附件("VB工程以及一个xml文件,内部包含readme详细说明.rar")。
2. Ocx制作与web发布:
(1)、点击菜单栏 “文件”-> "生成xxx.ocx". 到这一步其实已经有了ocx,如果是本地测试使用的话,直接在命令行下"regsvr32 你的ocx路径",就可以注册
(2)、将ocx发布到服务器上,在客户端是需要注册的,并且需要将当前服务站点加为信任站点。首先,利用vb自带的打包工具将工程使用到附加dll或者ocx抽取出来。点击菜单栏“外接程序”-> "外接程序管理器" -> 选择最后一项"打包与展开向导"->点击确定(如果已经设置过,此步骤可以pass);再点击菜单栏“外接程序”->"打包与展开向导",就可以调出打包界面, 其中有一是设置包的类型,选择"Internet 软件包"。最后会在你选择生成的路径中看到一个CAB包、html测试页面以及一个support文件夹。下面进入到这个文件夹,新建两个文件分别命名为“setup.bat”,“setup.reg”,添加以下类似内容:(根据自己实际参数填写)
//setup.bat文件内容如下:
@echo off
taskkill /f /im iexplore.exe
copy ocx_gis_property.ocx %windir%\system32\ocx_gis_property.ocx
regsvr32 %windir%\system32\ocx_gis_property.ocx "-u" "-s"
regsvr32 %windir%\system32\ocx_gis_property.ocx
regsvr32 %windir%\system32\ocx_gis_property_view.ocx "-u" "-s"
regsvr32 %windir%\system32\ocx_gis_property_view.ocx
setup.reg
exit
//setup.reg (10.20.3.131修改成自己的IP,这个内容主要是开发窗口弹出,添加某个ip站点为新任站点)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range9]
":Range"="10.20.3.131"
"http"=dword:00000002
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]
"1004"=dword:00000000
"1201"=dword:00000000
"CurrentLevel"=dword:00000000
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows]
"PopupMgr"="yes"
(3)、web发布准备工作好后,需要将support下的dll、ocx以及新建的两个文件用winrar压缩成一个自解压格式的exe包,详细教程参见http://zhidao.baidu.com/question/79832407.html (注意:需要将setup.bat添加到解压后直接里面)。现在可以发布了,将之前打包提到的那个测试的html里面的Object对象的CLASSID的键值取出来,用来替换掉你的调用页面中CLASSID的值。我的vb工程抽取的内容参见附件“vb自带的cab包制作的package.rar”,在support目录包含了一个以及制作好的自解压auto_register.exe文件。 将“web服务上调用示例.rar”文件解压到一个tomcat容器的webapp/root下即可,访问时需要使用你setup.reg中注册信任站的ip 譬如我的是http://10.20.3.131:8080/ocx_test/XXXX.htm
3. 在C#桌面应用程序中使用可视化的ocx(其实用vb开发ocx再使用在C#中有点脱裤子放屁了,没办法我是被别人脱下裤子要我放,我还不放干嘛呢)。
(1)、引入ocx插件到工程。这个摸索了良久,主要还是对visual 开发的不熟悉造成的. 首先需要将ocx插件注册到本地, 我比较土,还是用的"regsvr32 ocx路径"执行一下,然后右击"工具栏"->选择"选择项(I)",会弹出工具箱项选择框,切换到"COM组件"tab页下,选择你刚才注册的ocx(太多的话,根据路径排序下再找看看).添加成功的话,左边会出现你刚才添加ocx控件,拖到你设计界面上,设置下就可以了.如果你直接用我开发的这个vb的OCX demo的话,在使用的时候,记得看下readme文件,设置好weburl等等参数,否则无法正常调用的。
(2)、如果本地运行没问题话,就可以直接发布了。详细的安装包制作过程参照下这个吧“http://developer.51cto.com/art/200908/144459.htm”,图形化介绍,试了一次就出来了。
哎~~~ 写了良久,做个记录以后自己再回头看看,要是各位看的不明白,或者写的太easy,那就把它当成个屁放掉吧~~~
呵呵。(靠找分类,不知道该放在哪了,随便放一个 到JavaEye了)
朋友的网站 http://woods2010.cn.alibaba.com/ 专业电子器件代购
分享到:
相关推荐
VB6.0(Visual Basic 6.0)是一款由微软公司开发的经典可视化编程环境,它在1998年发布,主要用于创建Windows桌面应用程序。VB6.0的强大之处在于其直观的拖放式用户界面设计、事件驱动编程模型以及丰富的控件库。在...
这个主题涉及到的是如何在Visual Studio 2010(VS2010)环境下使用C#语言调用由VB6.0编写的ActiveX DLL。ActiveX DLL是一种控件,它能够被其他应用程序或组件调用来实现特定功能。下面我们将详细探讨四种调用方式...
1. **应用程序开发**:在Visual Basic、VB.NET、C#等开发环境中,OCX控件被广泛用于创建用户界面,因为它们可以提供现成的图形组件,减少编程工作量。 2. **数据库访问**:许多OCX控件专门用于处理数据库操作,如...
PDFViewOCX是一款能够嵌入到VB6(Visual Basic 6)和C#应用程序中的控件,允许开发者轻松地集成PDF阅读功能。这个控件使得用户无需离开应用程序就可以查看PDF文件,提高了用户体验和效率。 PDFViewOCX提供了多种...
VB6.0源码调用ftd2xx.dll实现I2C通讯,将正常模式转换为I2C模式,进行通讯,需要C#源码的朋友可以将VB转C#,附件中提供在线转换网址,另外附件中包含VB常遇见的注册COMDLG32.OCX问题的解决方法
这个库包含了VB编写的程序在运行时所需的各种组件和模块,使得非VB开发环境的计算机也能执行VB开发的应用程序。"VB运行库完整版"通常指的是包含了所有必要的DLL文件和OCX控件,确保能够支持各种版本的VB程序运行。 ...
OCX控件,全称是OLE Control Extension,是Microsoft在早期Windows环境中开发的一种组件技术,用于在应用程序中创建可重用的自定义用户界面元素。本实验基于高级软件工程的视角,通过VB(Visual Basic 6.0)来创建一...
《深入理解MSComm32.ocx控件及其应用》 ...它简化了串行通信的复杂性,使得开发者可以专注于应用程序的核心逻辑,而不是底层通信细节。了解和熟练掌握MSComm32.ocx的应用,对于任何涉及串行通信的项目都是十分有益的。
总之,Microsoft Chart Control是.NET开发中一个强大的图表生成工具,无论是在桌面应用还是Web应用中,都能够帮助开发者创建出专业且美观的数据可视化展示。通过深入学习和实践,你可以熟练掌握它的功能,提升数据...
QRmaker二维码控件是一款强大的工具,专为开发者设计,用于在VB(Visual Basic)应用程序中生成、读取和管理二维码。这款控件使得在Windows Forms或.NET Framework项目中集成二维码功能变得简单易行,极大地扩展了...
OCX控件包是软件开发中的一个重要组成部分,主要用于增强应用程序的功能和交互性。这些控件是基于Microsoft的OLE(Object Linking and Embedding)技术,后来发展为COM(Component Object Model)组件,允许开发者在...
打印条形码控件,安装后可集成到VB C#等源码中 打印条形码动态库
要使自己的应用软件拥有短信收发功能,如全部从底层开发做起要... 目前版本的开发包还提供了用VB6.0、VC6.0、PB8.0、C#和Delphi7.0写成的利用短信控件收发短信的例程。 http://www.smsworld.com.cn tel:010-82356670
Hotkey控件在Windows应用程序开发中特别常见,尤其是在编写桌面应用时,它能增强用户体验,使用户能够通过按下预先设定的热键来触发程序的特定功能。 Hotkey控件的工作原理基于操作系统级别的键盘事件监听。当用户...
全球领先的条码打印软件 BarTender 适用于 BarTender 企业版 7.0以上版本 适用于 Visual Basic 6.0, VB.NET, C#,
- 目前网络上关于使用 VC++.NET 2005 进行 ArcEngine 开发的资源相对较少,大多数资料集中于 VB6.0、VC# 或 VB.NET 等其他语言。 **示例开发环境** - **组件版本**:本示例选择了 ArcEngine 9.2 组件。 - **开发...
您需要安装 MS SQL ...2) 前台程序不是我开发的,是一个刚学习VB的同学开发的。我个人建议前台不用去看了,没有值得花费时间的地方。 3) 进入“后台管理”目录,先注册 XPMenu.ocx,否则代码运行时会发生错误哟。