在我的Java应用程序中,我使用
获取Imports System.IO
Public Class Form1
Private Sub Form1_FormLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
uxNote.Text = "Starting"
End Sub
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
RunApp()
End Sub
Sub RunApp()
Dim b As New BostonWorkStation
Dim myHandle As Long
b.Shell_("C:\Software\Application.exe")
b.Activate("AppCaption", True)
b.Connect("AppCaption", enumStreamType1.stWindows)
uxNote.Text = myHandle.ToString
Me.Refresh()
Application.DoEvents()
b.Wait(2)
b.Pause("@378,423")
b.Tab_("user")
b.Enter("password")
b.Wait(2)
b.Shell_("C:\Software\Application2.exe")
b.Activate("App2Caption", True)
b.Wait(4)
b.Connect("App2Caption", enumStreamType1.stWindows)
uxNote.Text = myHandle.ToString
Me.Refresh()
Application.DoEvents()
b.Wait(4)
b.Smart.Create("App2Caption@726,1088", -1024, -633, 0)
b.Smart.Click(False, False)
b.Wait(3)
b.Activate("Patient Lookup", True)
b.Connect("Patient Lookup", enumStreamType1.stWindows)
uxNote.Text = myHandle.ToString
Me.Refresh()
Application.DoEvents()
b.Wait(1)
b.Pause("@104,423")
ProcessPatients(b)
Me.Close()
End Sub
Sub ProcessPatients(ByVal w As BostonWorkStation)
Dim ID As String
Dim record() As String
Dim sr As New StreamReader("my path for csv or txt file")
Do While Not sr.EndOfStream
record = sr.ReadLine.Split(CChar("|"))
ID = record(0) ' <-- grab your "ID" from somewhere in "record"
w.Enter(ID)
w.Wait(2)
'some more code steps here specific to what should be done once patient id has been selected
Loop
sr.Close()
End Sub
End Class
对象
MQQueue
队列是远程队列。有没有办法获得相应的本地传输队列?
(使用MQQueue tQueue = qManager.accessQueue(tqName, tqOptions);
)
由于
答案 0 :(得分:3)
是的,使用runmqsc
控制台。
首先在命令提示符下运行
runmqsc <qmgr>
。
控制台开启后运行
dis qr<remote q> XMITQ
显示远程队列定义使用的传输队列。
<强>更新强>
另一种方法是使用PCF类。
PCFMessageAgent pcfma = new PCFMessageAgent("QM");
PCFMessage pcfCmd = new PCFMessage(MQConstants.MQCMD_INQUIRE_Q);
pcfCmd.addParameter(MQConstants.MQCA_Q_NAME, "Q.REMOTE");
PCFMessage[] pcfResponse = pcfma.send(pcfCmd);
String xmitQName = (String) pcfResponse[0].getParameterValue(MQConstants.MQCA_XMIT_Q_NAME);
System.out.println("XmitQ name " + xmitQName);
答案 1 :(得分:1)
当MQ打开队列时,它会运行名称解析过程来解析要打开的本地队列。如果应用程序打开QRemote,它通常会解析为传输队列。
找出已解析队列的名称很简单。成功打开队列后,只需向MQ询问: