找回密码
 加入
搜索
查看: 3436|回复: 0

[网络通信] 关于RTX发送窗口的问题

[复制链接]
发表于 2012-4-18 16:00:39 | 显示全部楼层 |阅读模式
最近在公司需要编一个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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-2 20:58 , Processed in 0.077731 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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