玉祥平台客服-15087858732

标题: 度量快速开发平台中集成登录CS程序的思路设想 [打印本页]

作者: 王爱东    时间: 2020-3-25 09:36
标题: 度量快速开发平台中集成登录CS程序的思路设想
    大家知道,度量快速开发平台中,集成登录其他BS系统,是已经提供好了集成接口。可以参考“度量第三方Web系统集成登录实现“这一篇文章。如果使用单位还想集成登录现有单位的客户端程序,该怎么办呢?度量快速开发平台中,提供了一个打开本地文件的方法:

使用示例:

OpenFile("C:\Windows\notepad.exe")
如果要集成进来的第三方CS程序,安装的目录都在同一个位置,直接把OpenFile里面的文件路径换成确定的即可。总所周知,客户端文件有个很大的特点,即各个电脑安装的客户端文件可能在不同的目录。比如QQ程序,我可以在我的机器上安装到C 盘,其他人可能安装到D盘,E盘等。所以OpenFile里面的路径,不同的人打开,那就需要设置每个电脑上自己安装程序的位置,也就是每个人在度量快速开发平台中,点击了这个”打开XX程序“时候,调用了OpenFIle这个方法,都需要打开的不同。
因此,我们可能需要建立一张电脑对应程序地址表。例如:

  
计算机名
  
程序地址
DELIT.CN01
C:\Program Files\qq\Bin\QQ.exe
DELIT.CN02
D:\Program Files\qq\Bin\QQ.exe
DELIT.CN03
C:\Tencent\QQ.exe
DELIT.CN04
E:\Program Files\qq\Bin\QQ.exe


那么,我们可以通过使用人是那一台电脑,就能打开哪一个地址下的文件。
  1. dim computer_name = System.Environment.MachineName
  2. dim program_path=executescalar("select program_path from table where computer_name='"+computer_name+"'")
  3. if program_path<>"" then
  4.     OpenFile(program_path)
  5. end if
复制代码


那如何向被集成的CS程序传递需要的数据过去呢?
可以直接在路径后面跟上指定的参数。
  比如:
  OpenFile("D:\Program Files\qq\Bin\QQ.exe  参数1 参数2 参数3 ")

当然,如果真要集成其他客户端程序,还不用登陆,直接进入到对方的系统中。还需要度量开发平台的登录用户名与被集成系统有一个账号对应关系,通过度量快速开发平台打开的被集成程序,自动传递登录的相关信息过去,被集成程序需要根据传递过去的信息,做相应的处理才行。
-------------------------------------------------------------------------------------------------------------------------------------
补充:目前度量快速开发平台中直接使用OpenFile的方法,后面还不能跟参数。如果要跟参数,请使用以下方式实现:
示例:
dim PathAndFileName="c:\Windows\notepad.exe"
dim FileVariable = " -help -copy -xxx "
dim obj = CreateObject("System.Diagnostics.Process")

dim OpenLocalFile=obj.Start(PathAndFileName,FileVariable )

FileVariable 变量的数据可以根据实际情况组合。这样就可以通过参数传入给被集成的CS程序,CS程序就可以不用输入用户密码直接登录系统了。



作者: 王爱东    时间: 2020-3-25 09:37
当然,计算机可能会有重复的名称,我们也可以用计算机的其他属性来对应被集成系统的安装地址。
作者: 王爱东    时间: 2020-3-25 09:40
这类方式,一般被集成系统的目录固定的话就更好弄,不然还需要使用者自己去设置路径。
作者: 万望    时间: 2020-3-25 21:09
单点登录?
作者: 万望    时间: 2020-3-25 21:32
传参数,多个参数用啥符号隔开?
作者: 张军勇    时间: 2020-3-25 21:42
总结得很全面。
作者: 陈晓龙    时间: 2020-3-26 13:19
长见识了,还可以这样搞
作者: 刘亚东    时间: 2020-3-26 16:42
有点复杂,最简单的就是直接把那些程序集成到我们的客户端目录下,直接用相对路径调用撒
作者: 张兴康    时间: 2020-3-26 17:39
因为是要在我们平台直接登录第三方系统,度量第三方Web系统集成登录实现中是要第三方系统来改动代码的,人家不一定愿意啊
作者: 张兴康    时间: 2020-3-26 17:40
就比如株洲二院这个项目,廉洁风险防控平台那边就说让我们来搞
作者: 王爱东    时间: 2020-3-27 09:03
集成单点登录的,我们只能提供方法,指导对方来修改。这个靠我们弄是不行的。别人的系统完全不熟悉,别个也不一定开放出来的。
作者: 王爱东    时间: 2020-3-27 19:06
我们还可以利用System.Diagnostics.Process.Start来启动本地的exe程序。

dim obj = CreateObject("System.Diagnostics.Process")
      dim aaa=obj.Start(文件绝对地址加名称,后面跟的参数)
作者: 王爱东    时间: 2020-3-27 19:14
已经经过实际的CS集成登录验证。主贴的内容可以完美实现CS客户端的单点集成登录。
作者: 张军勇    时间: 2020-3-27 23:21
不错哈,可以开个新帖说明一下如何向exe传递参数。
作者: 万望    时间: 2020-4-27 03:42
这个能不能做成一个功能,要用直接就能配置就好了
作者: 万望    时间: 2020-4-27 03:42

作者: 万望    时间: 2020-5-21 21:34
刘亚东 发表于 2015-10-26 16:42
有点复杂,最简单的就是直接把那些程序集成到我们的客户端目录下,直接用相对路径调用撒

整个快捷方式?
作者: 刘亚东    时间: 2020-5-23 09:17





欢迎光临 玉祥平台客服-15087858732 (http://p.delit.cn/) Powered by Discuz! X3.2