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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 9507|回复: 18
打印 上一主题 下一主题

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

  [复制链接]

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
跳转到指定楼层
楼主
发表于 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

348

主题

3572

帖子

9327

积分

论坛元老

Rank: 8Rank: 8

积分
9327
18#
发表于 2020-4-27 03:42:37 | 只看该作者
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9327

积分

论坛元老

Rank: 8Rank: 8

积分
9327
17#
发表于 2020-4-27 03:42:03 | 只看该作者
这个能不能做成一个功能,要用直接就能配置就好了
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

67

主题

685

帖子

1815

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1815
16#
发表于 2020-5-23 09:17:49 | 只看该作者
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9327

积分

论坛元老

Rank: 8Rank: 8

积分
9327
15#
发表于 2020-5-21 21:34:25 | 只看该作者
刘亚东 发表于 2015-10-26 16:42
有点复杂,最简单的就是直接把那些程序集成到我们的客户端目录下,直接用相对路径调用撒

整个快捷方式?
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
14#
发表于 2020-3-27 23:21:36 | 只看该作者
不错哈,可以开个新帖说明一下如何向exe传递参数。
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
13#
 楼主| 发表于 2020-3-27 19:14:35 | 只看该作者
已经经过实际的CS集成登录验证。主贴的内容可以完美实现CS客户端的单点集成登录。
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
12#
 楼主| 发表于 2020-3-27 19:06:47 | 只看该作者
我们还可以利用System.Diagnostics.Process.Start来启动本地的exe程序。

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

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

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

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-24 09:18 , Processed in 0.138238 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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