|
最近在公司需要编一个autoit软件,设置一个窗口界面,里面有一些输入文本或者下拉菜单控件,还有一个确定按钮。
要求:输入文本后点击确定按钮,这些文字可以直接发送给RTX的用户。
我测试了下用RTXclientSDK可以实现这个功能给单个用户发送即时消息,但是如果需要发送给一个群的话就会出现,点击一下确定它就跳出一个新建的RTX窗口,这样点了好几次确定就跳出好几个窗口,非常的麻烦。现在就是需要所有的对话信息都是出现在一个窗口中。
后来我又考虑用RTXserverSDK通过服务器来发送即时消息,所以我想问问大家一下代码是否可行。或者还有其他什么方法能解决这个问题?以下是利用RTXclientSDK发送的代码:万分感谢~~#include <GUIConstantsEx.au3>
#Include <WinHttp.au3>
#include <IE.au3>
#include <ClipBoard.au3>
Global $item1,$item2,$item3,$item4,$item5,$item6,$item,$createbutton
;Opt("GUIOnEventMode", 1)
$mainwindow = GUICreate("派单工具", 800, 500)
;GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Group1 = GUICtrlCreateGroup("请求明细", 8, 2, 320, 490)
GUICtrlCreateLabel("请求人", 26, 33,50,40)
$requester=GUICtrlCreateInput("", 85, 30, 220,20)
GUICtrlCreateLabel("所属区域", 26, 63,50,100)
$site=GUICtrlCreateCombo("", 85, 60, 220,60)
GUICtrlSetData(-1,"上海区域公司|上海区域公司-南京|上海区域公司-武汉")
GUICtrlCreateLabel("主题", 26, 93,50,90)
$title=GUICtrlCreateEdit("", 85, 90, 220,80)
GUICtrlCreateLabel("描述", 26, 183,50,90)
$description=GUICtrlCreateEdit("", 85, 180, 220,80)
GUICtrlCreateLabel("工程师", 26, 283,50,80)
$technician=GUICtrlCreateCombo("", 85, 280, 220,60)
GUICtrlSetData(-1, "C.程军|C.陈绍良|C.陈志刚|F.凤琪|H.黄娟|L.刘若卉|W.王东凯|Y.杨韵|Z.周晓磊|Z.张贇")
GUICtrlCreateLabel("分类", 26,313,50,80)
$category=GUICtrlCreateCombo("", 85, 310, 220,60)
GUICtrlSetData(-1, "CCBM系统问题|CCIP系统问题|FTP上传、下载|FTP账号维护|KASPERSKY管理|专业软件维护|其他|办公软件维护|合同评审|咨询类|")
GUICtrlCreateLabel("故障时间", 26,343,50,80)
$time=GUICtrlCreateCombo("", 85, 340, 220,60)
GUICtrlSetData(-1, "A-5分钟|B-15分钟|C-30分钟|D-1小时|E-2小时|F-4小时|G-10分钟|H-3小时|I-1.5小时|J-45分钟|K-2.5小时|L-20分钟|M-1.25小时|N-3.5小时|O-100分钟")
;$item=$requester & $site & $title & $description & $technician & $category
$okbutton = GUICtrlCreateButton("确定", 24, 385, 280, 80)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $okbutton
$item1=GUICtrlRead($requester)
$item2=GUICtrlRead($site)
$item3=GUICtrlRead($title)
$item4=GUICtrlRead($description)
$item5=GUICtrlRead($technician)
$item6=GUICtrlRead($category)
$item7=GUICtrlRead($time)
If $item1="" Then
MsgBox(0,'错误',"请求人不能为空")
ElseIf $item2="" Then
MsgBox(0,'错误',"请求人区域不能为空")
ElseIf $item3="" Then
MsgBox(0,'错误',"主题不能为空")
ElseIf $item5="" Then
MsgBox(0,'错误',"工程师不能为空")
ElseIf $item6="" Then
MsgBox(0,'错误',"分类不能为空")
ElseIf $item7="" Then
MsgBox(0,'错误',"故障时间不能为空")
Else
oSend1()
;oSend2()
EndIf
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Func oSend1()
$objApi = ObjCreate("RTXClient.RTXAPI") ;创建RTXAPI对象
$objApp = $objApi.GetObject("AppRoot") ;通过RTXAPI对象获取AppRoot对象
$objIm = $objApp.GetAppObject("RTXPlugin.IM") ;通过AppRoot获取RTXPlugin.IM对象
$objIm.SendIM ("500猪;1000猪") ;发送即时消息
Send($item1&" "&$item2&" "&$item3&" "&$item4&" "&$item5)
Send("!s")
EndFunc
下面是利用RTXserverSDK发送的代码,不知道是否可行,还没有配置服务器故没有测试过。$RTXSAPIRoot = ObjCreate("RTXSAPIRootObj.RTXSAPIRootObj")
$RTXSAPIObj = $RTXSAPIRoot.CreateAPIObj
$RTXSAPIObj.AppGUID = "79210E58-99EB-45D0-8890-763EFEAA143F}"
$RTXSAPIObj.AppAction = "AA_DISTILL"
$RTXSAPIObj.AppName = "RTXSTestApp"
$RTXSAPIObj.AppPriority = 0
$RTXSAPIObj.FilterAppName = "all"
;$RTXSAPIObj.FilterKey = "Something to filter"
$RTXSAPIObj.FilterSender = "aleck"
$RTXSAPIObj.FilterReceiver = "james"
$RTXSAPIObj.FilterReceiverState = "Anystate"
$RTXSAPIObj.FilterRequestType = "Tencent.RTX.IM"
$RTXSAPIObj.FilterResponseType = "none"
$RTXSAPIObj.ServerIP = "10.1.9.73"
$RTXSAPIObj.ServerPort = 8080
;以上暂不确定
$RootObj = ObjCreate("RTXSAPIRootObj.RTXSAPIRootObj")
$DisGroupManager = $RootObj.GetObject("RTXSAPIDisGroupManager")
$strDisGroupIDs = $DisGroupManager.GetDisGroupIdsByName("上海运维")
$RootObj.SendIM("yang.yun","tudoubb@0607","接收者","消息内容",$strDisGroupIDs);最后一个值为"会话ID"
;If Err.Number <> 0 Then
;MsgBox (0,"Error # ","");& Err.Number & Chr(13) & Err.Description
;Else
;MsgBox (0,"发送成功","发送成功")
;EndIf
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
|