CN105786565A - 一种通过web端调用后台控制程序的方法 - Google Patents

一种通过web端调用后台控制程序的方法 Download PDF

Info

Publication number
CN105786565A
CN105786565A CN201610100320.3A CN201610100320A CN105786565A CN 105786565 A CN105786565 A CN 105786565A CN 201610100320 A CN201610100320 A CN 201610100320A CN 105786565 A CN105786565 A CN 105786565A
Authority
CN
China
Prior art keywords
program
control
client
key
activex
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610100320.3A
Other languages
English (en)
Inventor
丁万年
洪文洁
陈日良
薛梦丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co Ltd
Original Assignee
RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co Ltd filed Critical RETURNSTAR INTERACTIVE TECHNOLOGY GROUP Co Ltd
Priority to CN201610100320.3A priority Critical patent/CN105786565A/zh
Publication of CN105786565A publication Critical patent/CN105786565A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种通过WEB端调用后台控制程序的方法,在注册表的[HKEY_CLASSES_ROOT]主键下建立一子键;注册表中建立所需键值对;利用VS2008制作自定义Activex控件,具体过程如下:建立一个Windows控件库项目,然后增加一个控件UstcOriWebLab.cs;打开AssemblyInfo.cs修改程序集信息,引用System.Security命名空间,并添加安全声明,并使程序集Com可见;之后为Com Interop注册,并创建Guid工具生成一个新的Guid,加在类头上,实现IObjectSafety接口,把ActiveX控件标记为安全的;安装Activex控件至客户端,客户端通过该控件调用程序,若客户端安装该程序,则启动该程序;便于用户使用。

Description

一种通过WEB端调用后台控制程序的方法
技术领域
本发明涉及一种通过WEB端调用后台控制程序的方法。
背景技术
近年来计算机技术得到了飞速的发展,人们对客户端与网页之间的无缝调用的需求也越来越高。很多的项目由网页部分及客户端大厅程序部分组成,网页上有一个点击客户端的按钮,如果客户端安装了,点击按钮直接打开客户端程序,如果未安装则提示消息提醒安装客户端程序,现有的一种方法是以javaScript的形式出现的,如下所示:
<script>
varwsh1=newActiveXObject("Wscript.Shell")
wsh1.run("notepad");
</script>
众所周知,javascript受浏览器的控制,不同的浏览器执行上述代码的结果可能就很不相同了,甚至有的可能就直接禁止运行了,某些杀毒软件也是不允许这样的代码执行的,可能就直接报病毒。大多数的浏览器默认设置中也是不允许执行上面的代码的。如果遇到javaScript失效或者客户端禁用javascript等,也是无法执行的。
发明内容
本发明要解决的技术问题,在于提供一种通过WEB端调用后台控制程序的方法,便于用户使用。
本发明是这样实现的:一种通过WEB端调用后台控制程序的方法,包括如下步骤:
步骤1、在注册表的[HKEY_CLASSES_ROOT]主键下建立一子键;
步骤2、注册表中建立所需键值对;
步骤3、利用VS2008制作自定义Activex控件,具体过程如下:
建立一个Windows控件库项目,然后增加一个控件UstcOriWebLab.cs;打开AssemblyInfo.cs修改程序集信息,引用System.Security命名空间,并添加安全声明,并使程序集Com可见;之后为ComInterop注册,并创建Guid工具生成一个新的Guid,加在类头上,实现IObjectSafety接口,把ActiveX控件标记为安全的;
步骤4、安装Activex控件至客户端,客户端通过该控件调用程序,若客户端安装该程序,则启动该程序。
进一步地,所述步骤4进一步具体为:安装Activex控件至客户端,客户端通过该控件调用程序,若客户端安装该程序,则启动该程序;否,则提醒用户。
本发明具有如下优点:本发明一种通过WEB端调用后台控制程序的方法,使得用户直接使用网页端即可调用后台程序,不会出现任何兼容性问题。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
具体实施方式
本发明通过WEB端调用后台控制程序的方法,一种通过WEB端调用后台控制程序的方法,包括如下步骤:
步骤1、在注册表的[HKEY_CLASSES_ROOT]主键下建立一子键;
步骤2、注册表中建立所需键值对;
步骤3、利用VS2008制作自定义Activex控件,具体过程如下:
建立一个Windows控件库项目,然后增加一个控件UstcOriWebLab.cs;打开AssemblyInfo.cs修改程序集信息。引用System.Security命名空间,并添加安全声明,并使程序集Com可见;之后为ComInterop注册,并创建Guid工具生成一个新的Guid,加在类头上,实现IObjectSafety接口,把ActiveX控件标记为安全的;
步骤4、安装Activex控件至客户端,客户端通过该控件调用程序,若客户端安装该程序,则启动该程序;否,则提醒用户。
本发明一种具体实施方式如下:
第一步:在注册表的[HKEY_CLASSES_ROOT]主键下建立[Wabshell]建。
[Wabshell]此键可以自定义任意。
第二步:注册表中建立相关键值对。
其中command项的值为D:\ProgramFiles\Test.exe"%1",这个"%1"是传递给Test.exe的参数。
使用时我们会在后面讲到如何使。
第三步:编写测试页面
说明:wabshell:是注册表中注册的协议名称。
hello是传入可执行程序的参数。
程序收到参数据自已去解析字符串中的相关信息。
其它说明:
利用记事本直接构造一个reg文件,实现上述自动注册的功能:
################################添加自定义URL
Protocol##################################
#################################################################
####################
WindowsRegistryEditorVersion5.00
[HKEY_CLASSES_ROOT\Wabshell]
"URLProtocol"="D:\\ProgramFiles\\Test.exe"
="WebshellProtocol"
[HKEY_CLASSES_ROOT\Wabshell\DefaultIcon]
="D:\\ProgramFiles\\Test.exe,1"
[HKEY_CLASSES_ROOT\Wabshell\shell]
[HKEY_CLASSES_ROOT\Wabshell\shell\open]
[HKEY_CLASSES_ROOT\Wabshell\shell\open\command]
="D:\\ProgramFiles\\Test.exe\"%1\""
##############################################################
在#内的为自定义URLProtocol的注册表信息,对每一行说明一下:
第一行是注册表工具的版本信息,可以自己改一改,或者自己导入任意一个注册信息,把这一行复制过来就行了;
第二行中的Wabshell就是在HKEY_CLASSES_ROOT下面添加一个Wabshell树,其中Wabshell的名称就对应着自定义URLProtocol的名称,在web中调用的时候需要这个名称;
第三行中的"D:\\ProgramFiles\\Test.exe"是指定应用程序的路径,注意只能是exe的程序;
第四行是协议的名称,可以是任意字符串,后面不会用到;
第五行表示在Wabshell中再加一个分支,照抄,不用管;
第六行中的D:\\ProgramFiles\\Test.exee也是对应的程序路径,后面的1照抄;
第七行同第五行;第八行同第五行;第九行同第五行;
第十行也是将路径换成自己的程序路径即可,其中%1表示到参数,参数可以在你的程序Test.exe中解析得到。
将#之间的内容复制到一个txt文档中,修改后缀名为.reg,双击该文件即可直接导入到注册表中。
第四步:利用VS2008制作自定义activex控件
a、首先在解决方案下建一个Windows控件库项目(windowsfromcontrollibrary),然后增加一个控件UstcOriWebLab.cs。
b、打开AssemblyInfo.cs修改程序集信息。引用System.Security命名空间,并添加[assembly:AllowPartiallyTrustedCallers()]安全声明,修改[assembly:ComVisible(false)]为[assembly:ComVisible(true)]使程序集Com可见。
c、为ComInterop注册。右键demoActiveX项目属性,在“生成”选项卡里将“为ComInterop注册”打上勾即可。
d、选择菜单工具->创建Guid工具生成一个新的Guid{E5FD041B-8250-4cbc-B662-A73FC7988FB5},copy下来,加在类头上[Guid("F325140B-90E3-42d7-8F27-F1E68E1BD92E"),ProgId("UstcOriWebLabActivex.UstcOriWebLab"),ComVisible(true)]F325140B-90E3-42d7-8F27-F1E68E1BD92E就是写入注册表的CLSID,UstcOriWebLabActivex.UstcOriWebLab为键名。
e、实现IObjectSafety接口,把ActiveX控件标记为安全的。
ActiveX危险,那么为什么QQ以及MediaPlayer等都是用ActiveX的方式创建的,却没有问题?原来,这是因为这些ActiveX组件都声明自己是脚本安全的,而IE的中级安全设置上,是允许脚本安全的ActiveX创建,并且不予警告的。
IE怎么知道一个插件是脚本安全的?它是通过以下两个办法。一是查询ActiveX组件是否实现了IObjectSafety接口,并且返回脚本安全;二是查询ActiveX组件是否在注册表的ComponentCategoryManager里表明自己实现了CATID_SafeForInitializing和CATID_SafeForScripting。
那么我们就通过实现IObjectSafety接口
建一个接口文件IObjectSafety.cs,内容如下:
在UstcOriWebLab.cs中实现接口
f、开始制作安装包
新建一个安装项目,在项目上点右键,【添加】->【项目输出】,添加刚才的项目,生成项目,这样我们的activex控件就会和客户端程序一起安装到用户的机器上了。会生成两个文件,一个exe文件和一个msi文件。
安装后,就是自动写入注册表键UstcOriWebLabActivex.UstcOriWebLab。
客户端通过js检查:
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (2)

1.一种通过WEB端调用后台控制程序的方法,其特征在于:包括如下步骤:
步骤1、在注册表的[HKEY_CLASSES_ROOT]主键下建立一子键;
步骤2、注册表中建立所需键值对;
步骤3、利用VS2008制作自定义Activex控件,具体过程如下:
建立一个Windows控件库项目,然后增加一个控件UstcOriWebLab.cs;打开AssemblyInfo.cs修改程序集信息,引用System.Security命名空间,并添加安全声明,并使程序集Com可见;之后为ComInterop注册,并创建Guid工具生成一个新的Guid,加在类头上,实现IObjectSafety接口,把ActiveX控件标记为安全的;
步骤4、安装Activex控件至客户端,客户端通过该控件调用程序,若客户端安装该程序,则启动该程序。
2.根据权利要求1所述的一种通过WEB端调用后台控制程序的方法,其特征在于:所述步骤4进一步具体为:安装Activex控件至客户端,客户端通过该控件调用程序,若客户端安装该程序,则启动该程序;否,则提醒用户。
CN201610100320.3A 2016-02-24 2016-02-24 一种通过web端调用后台控制程序的方法 Pending CN105786565A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610100320.3A CN105786565A (zh) 2016-02-24 2016-02-24 一种通过web端调用后台控制程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610100320.3A CN105786565A (zh) 2016-02-24 2016-02-24 一种通过web端调用后台控制程序的方法

Publications (1)

Publication Number Publication Date
CN105786565A true CN105786565A (zh) 2016-07-20

Family

ID=56403082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610100320.3A Pending CN105786565A (zh) 2016-02-24 2016-02-24 一种通过web端调用后台控制程序的方法

Country Status (1)

Country Link
CN (1) CN105786565A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804056A (zh) * 2018-05-18 2018-11-13 北京票通信息技术有限公司 一种同时支持浏览器和客户端发票打印的方法
CN109710331A (zh) * 2018-12-27 2019-05-03 武汉益模科技股份有限公司 一种从网页上调用本地应用程序的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823671A (zh) * 2013-12-26 2014-05-28 远光软件股份有限公司 一种控件创建方法和调用方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823671A (zh) * 2013-12-26 2014-05-28 远光软件股份有限公司 一种控件创建方法和调用方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
O酒窝O: "如何判断本地某程序是否安装了?????????#7的回复", 《HTTPS://BBS.CSDN.NET/TOPICS/320165538》 *
O酒窝O: "打开本地程序,未安装则提示要求安装的实现攻略", 《HTTP://BLOG.CSDN.NET/LIYUN919/ARCHIVE/2009/11/13/4807958.ASPX》 *
平静大海: "web打开本地程序,未安装则提示要求安装的实现攻略", 《HTTPS://BLOG.CSDN.NET/XINGXING513234072/ARTICLE/DETAILS/9448495》 *
平静大海: "打开本地程序,未安装则提示要求安装的实现攻略", 《HTTPS://BLOG.CSDN.NET/XINGXING513234072/ARTICLE/DETAILS/938》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804056A (zh) * 2018-05-18 2018-11-13 北京票通信息技术有限公司 一种同时支持浏览器和客户端发票打印的方法
CN109710331A (zh) * 2018-12-27 2019-05-03 武汉益模科技股份有限公司 一种从网页上调用本地应用程序的方法

Similar Documents

Publication Publication Date Title
US5848246A (en) Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US8904368B2 (en) Instantiating a composite application for different target platforms
US20030085918A1 (en) Standardized and application-independent graphical user interface components implemented with web technology
US6964051B1 (en) Enabling and disabling remote features dynamically in software applications
CN103744686B (zh) 智能终端中应用安装的控制方法和系统
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
CN111259301A (zh) Html页面内元素渲染的方法、装置、设备和存储介质
CN109739661B (zh) 一种协同模块间消息更新的方法、装置及系统
CN110209395B (zh) 一种将sql嵌入高级语言的方法、设备及介质
KR102138421B1 (ko) 멀티스레드 지원을 위한 크로스플랫폼 시스템 및 운용방법
CN105786565A (zh) 一种通过web端调用后台控制程序的方法
CN113268277A (zh) 一种基于web的客户端访问方法及终端设备
Kasemir et al. Control system studio guide
CN102779059B (zh) 塞班客户端上启动应用的方法和装置
JP2006276939A (ja) 仮想マシンのプログラム起動方法およびクライアントサーバシステム
CN108268223B (zh) 基于http数据传输的打印方法和打印控件
US8726173B2 (en) Enabling browser based applications through customized temporary browser profiles
CN114217879A (zh) 一种用于程序启动运行突破安卓幽灵进程限制的方法
Cisco Basic SESM Customization and Development
Cisco 4 - Creating Accounting Policy Modules
Cisco Getting Started With the Cisco CRA Editor
Cisco Getting Started with the Cisco Application Editor
CN110727426A (zh) 一种针对房地产经纪行业的定制版浏览系统
JP2014229114A (ja) OSGiサービス登録装置、登録方法および登録プログラム
CN111897534B (zh) 一种访问sslvpn的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 350000 6, No. 1 Innovation Park, No. 3 east science and technology road, Minhou street, Minhou, Fuzhou.

Applicant after: Returnstar Interactive Technology Group Co., Ltd.

Address before: 350000 8 tower building, Orange Garden Industrial Park, 618 Jinshan Road, Jianxin Town, Cangshan District, Fuzhou, Fujian.

Applicant before: Returnstar Interactive Technology Group Co., Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20160720

RJ01 Rejection of invention patent application after publication