You can also imitate by KeyBd_Event
Small sample (based on Lance' code)
If to type the word "LEFT", cursor automatic moves to previous position (at first time only)
Code:
#Compile Exe #Register None #Include "WIN32API.INC" Global hDlg& Global gOldSubClassProc As Dword Function SubClassProc(ByVal hWnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&) As Long Static Ex& Function = CallWindowProc(gOldSubClassProc, hWnd&, wMsg&, wParam&, lParam&) Control Get Text hDlg&, 102 To a$ If UCase$(Right$(a$, 4)) = "LEFT" And Ex& = 0 Then KeyBd_Event %VK_LEFT, MapVirtualKey(%VK_LEFT, 0), 0, 0: Sleep 0 KeyBd_Event %VK_LEFT, MapVirtualKey(%VK_LEFT, 0), %KEYEVENTF_KEYUP, 0: Sleep 0 Ex& = 1 End If End Function CallBack Function DlgCallBack Static hEdit& Select Case CbMsg Case %WM_INITDIALOG Control Handle CbHndl, 102 To hEdit& gOldSubClassProc = SetWindowLong(hEdit&, %GWL_WNDPROC, CodePtr(SubClassProc)) Case %WM_DESTROY SetWindowLong hEdit&, %GWL_WNDPROC, gOldSubClassProc End Select End Function Function PbMain Dialog New 0, "Type left",,, 170, 100, %DS_CENTER Or %WS_SYSMENU To hDlg Control Add TextBox, hDlg, 102, "", 10, 10, 150, 50, %ES_MULTILINE _ Or %ES_WANTRETURN, %WS_EX_CLIENTEDGE Dialog Show Modal hDlg Call DlgCallBack End Function
Leave a comment: