Hallo Leute.
Wie kann man den markierten Text aus einem SynEdit-Control ("TPSSynEdit") bekommen?
Ich sitze nun schon seit Tagen erfolglos daran, ein markiertes Wort aus dem SynEdit von PSPad (Haupt-Editor-Komponente) zu bekommen. Unzählige Hilfe- und Web-Seiten habe ich gelesen, viele, viele Test durchgeführt, doch ich finde es alleine nicht raus. Kann mir jemand helfen?
Hier ein Ausschnitt aus meinen Versuchen, SynEdit oder dem Parent ("TfChildEdit") etwas zu entlocken.
AutoIt
Dies ist kein lauffähiges Script, sondern stellt nur einen Ausschnitt meiner Tests dar!
;~ hWnd_ActvEdt hWnd_SynEdt ID_ActvEdt ID_SynEdt
$tActiveEdit = PSPad_GetActiveEditor($hPSPad)
Local $hwnd_ActvEd = $tActiveEdit.hWnd_ActvEdt
Local $hwnd_SynEdt = $tActiveEdit.hWnd_SynEdt
Local $iID_ActvEd = $tActiveEdit.ID_ActvEdt
Local $iID_SynEdt = $tActiveEdit.ID_SynEdt
$sClassNameChildEd = _WinAPI_GetClassName($hwnd_ActvEd)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sClassNameChildEd = ' & $sClassNameChildEd & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$sClassNameSynEd = _WinAPI_GetClassName($hwnd_SynEdt)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sClassNameSynEd = ' & $sClassNameSynEd & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hwnd_ActvEd = ' & $hwnd_ActvEd & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hwnd_SynEdt = ' & $hwnd_SynEdt & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iID_ActvEd = ' & $iID_ActvEd & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iID_SynEdt = ' & $iID_SynEdt & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$sSelTxt = ""
$sSelTxt = ControlGetText($hPSPad, '', $hwnd_ActvEd)
$sSelTxt = $sSelTxt & ' ' & ControlGetText($hPSPad, '', $hwnd_SynEdt)
$sSelTxt = $sSelTxt & ' ' & ControlGetText($hPSPad, '', $iID_ActvEd)
$sSelTxt = $sSelTxt & ' ' & ControlGetText($hPSPad, '', $iID_SynEdt)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sSelTxt = ' & $sSelTxt & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$aCtrlRecvMsg = GUICtrlRecvMsg($hwnd_ActvEd, $EM_GETSEL)
$aCtrlRecvMsg = $aCtrlRecvMsg & ' ' & GUICtrlRecvMsg($hwnd_SynEdt, $EM_GETSEL)
$aCtrlRecvMsg = $aCtrlRecvMsg & ' ' & GUICtrlRecvMsg($iID_ActvEd, $EM_GETSEL)
$aCtrlRecvMsg = $aCtrlRecvMsg & ' ' & GUICtrlRecvMsg($iID_SynEdt, $EM_GETSEL)
; Falls GUICtrlRecvMsg 0 zurückgibt, so kommt ein Fehler. Sonst wird der Inhalt des Arrays angezeigt.
If $aCtrlRecvMsg = 0 Then
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aCtrlRecvMsg - Ein Fehler ist aufgetreten. Der zurückgegebene Wert lautet: ' & $aCtrlRecvMsg & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
Else
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aCtrlRecvMsg - Start: " & $aCtrlRecvMsg[0] & " Ende: ' & $aCtrlRecvMsg[1] & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
EndIf
$sSelTxt = ""
;~ $range = _GUICtrlEdit_GetSel($hwnd_ActvEd) ; 5537639 17366664
;~ $range = _GUICtrlEdit_GetSel($hwnd_SynEdt)
;~ $range = _GUICtrlEdit_GetSel($iID_ActvEd)
;~ $range = _GUICtrlEdit_GetSel($iID_SynEdt)
;~ $range = _GUICtrlRichEdit_GetSel($hwnd_ActvEd)
;~ $range = _GUICtrlRichEdit_GetSel($hwnd_SynEdt)
;~ $range = _GUICtrlRichEdit_GetSel($iID_ActvEd)
$range = _GUICtrlRichEdit_GetSel($iID_SynEdt)
;~ If $range[0] <> $range[1] Then
If IsArray($range) Then
$sSelTxt = StringMid(GUICtrlRead($iID_SynEdt), $range[0] + 1, $range[1] - $range[0])
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $range[0] = ' & $range[0] & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $range[1] = ' & $range[1] & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sSelTxt = ' & $sSelTxt & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
EndIf
$sSelTxt = ""
$sSelTxt = _GUICtrlRichEdit_GetSelText($hwnd_ActvEd)
$sSelTxt = $sSelTxt & ' ' & _GUICtrlRichEdit_GetSelText($hwnd_SynEdt)
$sSelTxt = $sSelTxt & ' ' & _GUICtrlRichEdit_GetSelText($iID_ActvEd)
$sSelTxt = $sSelTxt & ' ' & _GUICtrlRichEdit_GetSelText($iID_SynEdt)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sSelTxt = ' & $sSelTxt & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$sSelTxt = ""
$sSelTxt = ControlCommand("[CLASS:TfPSPad]", "", $hwnd_ActvEd, "GetSelected", "")
$sSelTxt = $sSelTxt & ' ' & ControlCommand("[CLASS:TfPSPad]", "", $hwnd_SynEdt, "GetSelected", "")
$sSelTxt = $sSelTxt & ' ' & ControlCommand("[CLASS:TfPSPad]", "", $iID_ActvEd, "GetSelected", "")
$sSelTxt = $sSelTxt & ' ' & ControlCommand("[CLASS:TfPSPad]", "", $iID_SynEdt, "GetSelected", "")
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sSelTxt = ' & $sSelTxt & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
$sSelTxt = ""
$sSelTxt = ControlCommand($hPSPad, "", $hwnd_ActvEd, "GetSelected", "")
$sSelTxt = $sSelTxt & ' ' & ControlCommand($hPSPad, "", $hwnd_SynEdt, "GetSelected", "")
$sSelTxt = $sSelTxt & ' ' & ControlCommand($hPSPad, "", $iID_ActvEd, "GetSelected", "")
$sSelTxt = $sSelTxt & ' ' & ControlCommand($hPSPad, "", $iID_SynEdt, "GetSelected", "")
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sSelTxt = ' & $sSelTxt & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
Alles anzeigen
Gruß,
Bernd.