Форум: "WinAPI";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизHook Найти похожие ветки
← →
Grim Rider (2002-02-21 11:03) [9]Почему сразу забросить? Не брошу, но иногда надо просто решить задачу, на остальное время нету.... А когда оно появится можно и экспериментировать.......
Тут возник попутный вопрос (не один, а много конечно же =8)))
Я пытаюсь переписать прогу с ВБ, которую я и один мой коллега писали несколько лет назад. Та прога мониторила клаву на определенные последовательности, и если таковые были, при их копировании в буфер, переделовала содержимое буфера и через SendKeys посылала обратно в прогу, которая инициировала копирование в буфер.
Так вот, там я обошелся SetWindowLong.
В новой проге, я не хочу использовать SendKeys, так как они очень нестабильны. Я хочу использовать PostMessage(WM_PASTE...).
Если используется SetWindowLong, то при попытке послать сообщение "впастить" другому приложению получаю -1, Access Denied...
Вопрос в том, что все таки стоит использовать SetWindowLong или SetWindowsHookEx?
Я перенес хук по вашему совету в длл - спасибо - все переваривается без проблем. Я регистрирую себя с очереди на буфер обмена через SetClipboardViewer, далее пытаюсь ловить сообщения:
function GlobalHook(nCode: Integer; wParam: Integer; lParam: Integer): Integer; stdcall;
var
...
begin
if nCode = HC_ACTION then begin
case wParam of
WM_DRAWCLIPBOARD: begin
........
Правильно ли это? Потому как, ничего не происходит, и я подозреваю, что сюда я просто не попадаю.
Прошу не пинать, и извинить, если вопросы дурацкие, и объяснить или отправить туда где доступно написано (Мсдн я читаю постоянно, но не совсем все понятно).
Спасибо.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c