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.