度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
楼主: 王爱东
打印 上一主题 下一主题

[分享] 度量快速开发平台中集成登录CS程序的思路设想

  [复制链接]

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
跳转到指定楼层
楼主
发表于 2020-3-25 09:36:06 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
    大家知道,度量快速开发平台中,集成登录其他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程序就可以不用输入用户密码直接登录系统了。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
沙发
 楼主| 发表于 2020-3-25 09:37:55 | 显示全部楼层
当然,计算机可能会有重复的名称,我们也可以用计算机的其他属性来对应被集成系统的安装地址。
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
板凳
 楼主| 发表于 2020-3-25 09:40:29 | 显示全部楼层
这类方式,一般被集成系统的目录固定的话就更好弄,不然还需要使用者自己去设置路径。
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
地板
 楼主| 发表于 2020-3-27 09:03:25 | 显示全部楼层
集成单点登录的,我们只能提供方法,指导对方来修改。这个靠我们弄是不行的。别人的系统完全不熟悉,别个也不一定开放出来的。
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
5#
 楼主| 发表于 2020-3-27 19:06:47 | 显示全部楼层
我们还可以利用System.Diagnostics.Process.Start来启动本地的exe程序。

dim obj = CreateObject("System.Diagnostics.Process")
      dim aaa=obj.Start(文件绝对地址加名称,后面跟的参数)
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3806

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3806
6#
 楼主| 发表于 2020-3-27 19:14:35 | 显示全部楼层
已经经过实际的CS集成登录验证。主贴的内容可以完美实现CS客户端的单点集成登录。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|玉祥公司客服-玉祥集团客服  本站关键词:快速开发平台

GMT+8, 2024-5-5 07:54 , Processed in 0.161191 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表