Download
Download binaries here .
Download sources here .
Source Code
Module1.bas
Attribute VB_Name = "Module1" Public Type POINTAPI x As Long y As Long End Type Public Type MSG hwnd As Long message As Long wParam As Long lParam As Long time As Long pt As POINTAPI End Type Public Const WM_USER = &H400 Public Declare Function GetLastError Lib "kernel32" () As Long Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Public Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long Public Declare Function TranslateMessage Lib "user32" (lpMsg As MSG) As Long Public Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As MSG) As Long
Form1.frm
VERSION 5.00 Begin VB.Form Form1 Caption = "Form1" ClientHeight = 6735 ClientLeft = 60 ClientTop = 360 ClientWidth = 7245 LinkTopic = "Form1" ScaleHeight = 6735 ScaleWidth = 7245 StartUpPosition = 3 'Windows Default Begin VB.TextBox txtOut Height = 5655 Left = 120 MultiLine = -1 'True ScrollBars = 3 'Both TabIndex = 1 Top = 840 Width = 6975 End Begin VB.CommandButton Command1 Caption = "Start" Height = 375 Left = 120 TabIndex = 0 Top = 120 Width = 6975 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub Command1_Click() Dim ISL_Light_Desk_path As String Dim ISL_Light_Client_path As String Dim res As Long Dim params As String Dim m As MSG Dim ISL_Light_Desk_Username As String Dim ISL_Light_Desk_Password As String ISL_Light_Desk_path = "ISLLightDesk.exe" ISL_Light_Client_path = "ISLLightClient.exe" ISL_Light_Desk_Username = "demo" ISL_Light_Desk_Password = "demo" params = params & " --get-code" params = params & " --username " & ISL_Light_Desk_Username params = params & " --password " & ISL_Light_Desk_Password params = params & " --notification-message " & WM_USER + 2 params = params & " --notification-thread " & App.ThreadID params = params & " --auto-close" ShellExecute 0, "Open", ISL_Light_Desk_path, params, "", 0 txtOut.Text = txtOut.Text & "Starting ISL Light Desk" & Chr(13) & Chr(10) While GetMessage(m, 0, 0, 0) If m.message = WM_USER + 2 Then t = "Desk notification message: " t = t & "wparam = " & m.wParam t = t & " lparam = " & m.lParam txtOut.Text = txtOut.Text & t & Chr(13) & Chr(10) If m.wParam = 1 Then params = " --connect " & m.lParam params = params & " --notification-message " & WM_USER + 1 params = params & " --notification-thread " & App.ThreadID params = params & " --auto-close" ShellExecute 0, "Open", ISL_Light_Client_path, params, "", 0 txtOut.Text = txtOut.Text & "Starting ISL Light Client" & Chr(13) & Chr(10) End If ElseIf m.message = WM_USER + 1 Then t = "Client notification message: " t = t & "wparam = " & m.wParam t = t & " lparam = " & m.lParam txtOut.Text = txtOut.Text & t & Chr(13) & Chr(10) Else TranslateMessage m DispatchMessage m End If Wend End End Sub