Описание функции
GetScintillaRangeText
Получает часть текста из окна Scintilla, являющимся сторонним процессом.
GetScintillaRangeText(ScintillaHandle, position, length)
Параметры
ScintillaHandle | Дескриптор Scintilla |
position |
Позиция начала диапазона |
length |
Длина диапазона |
Возвращаемое значение
Возвращает часть текста находящийся в окне Scintilla |
Примечания
Получить дексриптор Scintilla можно двумя методами: передачей в качестве параметра от редактора к инструменту, либо поиском окна с элементом Scintilla.См. также
GetScintillaText, SCI_GETTEXTПример
Procedure.s GetScintillaRangeText(ScintillaHandle, position, length)
Protected ReturnValue.s
; Protected length
Protected *buffer
Protected processId
Protected hProcess
Protected result
If length
*buffer = AllocateMemory(length + 2)
If *buffer
SendMessageTimeout_(ScintillaHandle, #SCI_GETRANGEPOINTER, position, 0, #SMTO_ABORTIFHUNG, 2000, @result)
If result
GetWindowThreadProcessId_(ScintillaHandle, @processId)
hProcess = OpenProcess_(#PROCESS_ALL_ACCESS, #False, processId)
If hProcess
ReadProcessMemory_(hProcess, result, *buffer, length, 0)
ReturnValue = PeekS(*buffer, -1, #PB_UTF8)
CloseHandle_(hProcess)
EndIf
EndIf
EndIf
FreeMemory(*buffer)
EndIf
ProcedureReturn ReturnValue
EndProcedure