Описание функции
GetScintillaText
Получает текст из окна Scintilla, являющимся сторонним процессом.
GetScintillaText(ScintillaHandle)
Параметры
ScintillaHandle | Дескриптор Scintilla |
Возвращаемое значение
Возвращает текст находящийся в окне Scintilla |
Примечания
Получить дексриптор Scintilla можно двумя методами: передачей в качестве параметра от редактора к инструменту, либо поиском окна с элементом Scintilla.См. также
SCI_GETTEXT, GetScintillaRangeTextПример
Procedure.s GetScintillaText(ScintillaHandle)
Protected ReturnValue.s
Protected length
Protected *buffer
Protected processId
Protected hProcess
Protected result
length = SendMessage_(ScintillaHandle, #SCI_GETLENGTH, 0, 0)
If length
length + 2
*buffer = AllocateMemory(length)
If *buffer
SendMessageTimeout_(ScintillaHandle, #SCI_GETCHARACTERPOINTER, 0, 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