guti Posted May 1, 2017 Posted May 1, 2017 (edited) Sorry for my English How to get code of the event's (SciTE): Undo (WM_UNDO?) Redo (EM_REDO?) Paste (WM_PASTE?) CUT (WM_CUT?) ... and so on. Functions I found: ;===... $hGui = GUICreate(StringTrimRight(@ScriptName, 4), 420, 350, -1, -1) $hRichEdit = _GUICtrlRichEdit_Create($hGui, "Это тест.", 10, 10, 400, 220, _ BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL)) GUISetState(@SW_SHOW) _GUICtrlRichEdit_AppendText($hRichEdit, ReadBmpToRtf(FindFirstBMP()) & @CR) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;===... are applicable to "GUI" user-created only. How to get events when you click on the "Undo" button or when you insert text in the editor "SciTE" for example? Is it possible? Closest thing I have found is: expandcollapse popupHotKeySet("{ESC}", "_Quit") While 1 SendSciTE_Command("") Sleep(500) WEnd ; ; Send a command to SciTE Func SendSciTE_Command($sCmd) Local $WM_NOTIFY = 78 Global $SciTE_Return_Info $Scite_hwnd = ControlGetHandle("[CLASS:SciTEWindow]", "", "[CLASS:Scintilla; INSTANCE:1]") Local $My_Hwnd = GUICreate("AutoIt3-SciTE interface") ; Create MyGUI to be able to receive SciTE info GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ConsoleWrite('hwnd - ' & $My_Hwnd & @LF) Local $CmdStruct = DllStructCreate('Char[' & StringLen($sCmd) + 1 & ']') DllStructSetData($CmdStruct, 1, $sCmd) Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr') DllStructSetData($COPYDATA, 1, 1) DllStructSetData($COPYDATA, 2, StringLen($sCmd) + 1) DllStructSetData($COPYDATA, 3, DllStructGetPtr($CmdStruct)) DllCall('User32.dll', 'None', 'SendMessage', 'HWnd', $Scite_hwnd, _ 'Int', $WM_NOTIFY, 'HWnd', $My_Hwnd, _ 'Ptr', DllStructGetPtr($COPYDATA)) GUIDelete($My_Hwnd) Return $SciTE_Return_Info EndFunc ;==>SendSciTE_Command ; ; Received Data from SciTE Func WM_NOTIFY($hWnd, $msg, $wParam, $lParam) Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr', $lParam) $SciTECmdLen = DllStructGetData($COPYDATA, 2) Local $CmdStruct = DllStructCreate('Char[' & $SciTECmdLen + 1 & ']', DllStructGetData($COPYDATA, 3)) $SciTE_Return_Info = StringLeft(DllStructGetData($CmdStruct, 1), $SciTECmdLen) ConsoleWrite('SciTE Returned <-- ' & $SciTE_Return_Info & @CRLF) $SciTE_Return_Info = StringTrimLeft($SciTE_Return_Info, StringInStr($SciTE_Return_Info, ":", 0, 3)) EndFunc ;==>WM_NOTIFY Func _Quit() Exit EndFunc ;==>_Quit by use https://www.autoitscript.com/forum/topic/40372-more-complete-example-of-using-scintilla-in-autoit/ by "Jos". But it's not quite what I need. Аnd maybe even not what I need. Point me in the right direction, please. Edited May 2, 2017 by guti Change the title
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now