web程序如何传递消息给exe程序(win程序在客户端)
各位朋友,我现在要实现这样一个任务,
就是用c#写成的exe应用程序,在客户端需要接收web应用程序发送的消息,以便执行exe程序,实现一个输入法功能。
现在要解决的问题是,在两者之间传消息的问题。
请大家帮忙下,希望能给我详细指导下。
谢谢大家!
[解决办法]
只能是exe应用程序主动请求!
[解决办法]
在客户端需要接收web应用程序发送的消息,以便执行exe程序,实现一个输入法功能。 难道不能通过web页面发消息给exe 程序?? 没听明白什么意思,
你那个exe是在服务器端?
还是说跟着页面一起到了客户端?是要实现服务器端发送一个信息,客户端页面收到后就执行下载到本地的exe程序?
[解决办法]
如果exe跟页面都在客户端的话,就是要实现页面调用exe的功能喽?
<script language=javascript>
var wsh=new ActiveXObject("wscript.shell");
wsh.run("notepad.exe");
</script>这样就可以,
如果你的exe是要接收到了一个服务器发送过来的消息后做某些事情的话,下面是我的一看法,希望能对你有点帮助
1,就是比较简单的
在exe中做轮循,去访问服务器
2,在exe中做个socket通信,与服务器建立起连接,就像很多网页中下控件一样,如果你这里有了一个exe,反正要下到客户端去的话,完全可以在里面做个与服务器的通信,这样服务器就可以给exe发送消息了
[解决办法]
调用经过数字签名的dll或ocx可以操作客户端本地资源。
本文以Microsoft.Net中创建签名的CAB文件为例,说明怎样创建签名文件,从而使你的代码可以安全的在INTERNET上发布。希望能起到抛转引玉的作用。
关键字:数字签名,ActiveX,CAB
一、 Internet安全与数字签名
对于 Internet 应用程序的开发人员和用户而言,代码安全是一个主要问题。有下列风险:恶意的代码、被篡改的代码和来自未知站点或作者的代码。
为 Internet 开发时有两种保证安全的基本方法。第一种方法称为“沙箱”。在此方法中,应用程序只能访问一组特定的API,并且被从潜在危险的 API(如文件 I/O,程序可能在此毁坏用户计算机中的数据)中排除。第二种方法使用数字签名来实现。此方法对 Internet 称为“收缩包装”。使用私匙/公匙技术验证和签名代码。在代码运行之前,验证其数字签名,确保该代码的来源是已知的并且经过验证,并且自签名后该代码未被更改过。
在第一种情形中,信任应用程序不会有任何损害,并且信任该应用程序的来源。在第二种情形中,使用数字签名来验证真伪。数字签名是用于识别和提供关于代码发行者的详细资料的工业标准。其技术基于标准,包括 RSA 和 X.509。浏览器一般允许用户选择是否希望下载并运行来源未知的代码。
本文主要讨论第二中情形“数字签名”。给文件签名首先要获得软件发行证书。为此,必须向证书颁发机构提出请求。在申请期间,必须生成一个密匙对并向证书颁发机构提供标识信息(如名字、地址和公匙)。还必须作出在法律上具有约束力的保证,即保证您不能也不会分发您知道或本应知道含有病毒或将以其他方式恶意损害用户的计算机或代码的软件。
在本文的例子中,使用Microsoft.Net带的MAKECERT和CERT2SPC实用工具生成测试的软件发行证书。当然,对软件发行是无效的,仅可用于测试代码签名。
二、 创建签名的CAB文件
本例使用Microsoft visual studio .Net 2003开发工具。所以你必须拥有Microsoft visual studio .Net 2002以上版本的环境。
1、 获得软件发行证书(测试)
第一步:开始菜单->运行,输入cmd.exe。打开windows 2000的命令提示符环境窗口。
第二步:输入CD C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin,进入该目录,用dir命令你可以看到signcode.exe、makecert.exe和cert2spc.exe程序。注意:以上路径根据你机器Microsoft.Net的安装路径不同而异。
第三步:创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。
输入makecert -sk WHX -n "CN=WHX COMPANY" c:\testWHX.cer。
就会在你的C:生成testWHX.cer文件。
说明:参数-n指定主题的证书名称。此名称必须符合 X.500 标准。最简单的方法是在双引号中指定此名称,并加上前缀 CN=;例如,"CN=myName"。注意这里的CN必须大写。-sk指定主题的密钥容器位置,该位置包含私钥。如果密钥容器不存在,系统将创建一个。输入makecert -?可以查看其他参数的用法。
第四步:创建发行者证书 (SPC)。
注意,发行者证书测试工具通过一个或多个 X.509 证书创建发行者证书 (SPC)。Cert2spc.exe 仅用于测试目的。可以从证书颁发机构(如 VeriSign 或 Thawte)获得有效的 SPC。
输入命令:cert2spc c:\testWHX.cer c:\testWHX.spc,在C:盘生成证书文件。至此,你已经拥有了仅用于测试的软件证书。其实,我们开发的程序或ActiveX控件只要仅用于企业内部,完全可以用这种办法作数字签名,使你的控件可以在浏览器里自动下载,而不必去专门的证书办法机构获得证书。
2、 创建CAB文件
CAB文件是一种WINDOWS的标准压缩格式文件,在网页上发布ActiveX的时候经常使用该压缩格式对文件进行包装,目的是使文件便于在Internet上传输。创建CAB文件的方法有很多,可以在Microsoft visual studio .Net 2003中“创建CAB项目“,也可以用WINDOWS自带的iexpress.exe(c:\windows\system32目录下),甚至还有其他的压缩工具。
下面描述iexpress.exe的使用方法。在开始菜单->运行里输入iexpress,按如下图示操作。
在c:\创建whx.CAB 文件。
也可不使用 CAB 文件而直接签名 DLL 和 OCX。CAB 文件的优势在于压缩,而且如果与 INF 文件一起使用,它可将所有必要的代码绑定在一起。
3、 签署文件
在上面打开的dos窗口里,输入如下命令:
signcode /spc c:\testWHX.spc /k WHX c:\whx.cab
至此,已经对成功对whx.cab文件签名。可以查看文件的属性,查看数字签名。
[解决办法]
<script language=javascript>
var wsh=new ActiveXObject("wscript.shell");
wsh.run("notepad.exe");
</script>这样就可以,
调用用这个就可以了,但如果你要把exe下到客户去的话就要按楼上的来做了