Эта страница предназначена в первую очередь тем пользователям, которые, обладая навыками программирования, захотят использовать некоторые встроенные в Runner возможности межпрограммного взаимодействия. В частности, используя систему сообщений Windows, можно отдать Runner'у команду показать пиктограмму, если он скрыт, можно передать ему любую допустимую команду расписания для немедленного выполнения, а также получить командную строку запуска Runner-а.
Взаимодействие осуществляется с помощью двух сообщений, которые нужно зарегистрировать, используя функцию Win32 API RegisterWindowMessage, а затем отправлять с помощью PostMessage или SendMessage, адресуя окну Runner-a, HWND которого можно получить, использовав функцию FindWindow с указанием класса окна "PanSoft Runner":
команда | сообщение | значение WPARAM | значение LPARAM | получатель |
показать пиктограмму | WM_RUNNER | 0 | игнорируется | Runner |
вернуть Process ID | WM_RUNNER | 1 | HWND окна-получателя ответа | Runner |
вернуть указатель char* на командную строку | WM_RUNNER | 2 | HWND окна-получателя ответа | Runner |
возврат Process ID Runner-a | WM_RUNNER | 3 | Process ID Runner-a | приложение |
возврат командной строки Runner-a | WM_RUNNER | 4 | char* указатель на командную строку |
приложение |
команда для выполнения Runner-ом | WM_RUNNER_EXEC | Process ID приложения |
char* указатель на команду | Runner |
1 - в адресном пространстве Runner-а. Для получения
нужно использовать функцию ReadProcessMemory, предварительно получив
HANDLE процесса Runner-a с помощью OpenProcess (для чего и нужен
Process ID Runner-a). Исходники и то, что нужно для сборки (кроме стандартных библиотек)
Runner-a можно обнаружить
здесь.
2 - получить Process ID можно с помощью функции
GetCurrentProcessId.
3 - Runner возвращает запрошенную информацию также
с помощью сообщения WM_RUNNER, направленного окну, заданному в запросе
.