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

Вниз

как подменить WM_TIME для определенного процесса?   Найти похожие ветки 

 
devMaster   (2004-08-26 16:38) [0]

Подскажите плз  - Необходимо поймать обращение проги к системному таймеру и блокировать ответ(или подменить его).


 
Erik1   (2004-08-26 17:25) [1]

Сделай на нее hook и отлавливай WM_TIMER.


 
devMaster   (2004-08-26 17:52) [2]

Какую константу использовать для отлова

 { SetWindowsHook() codes }

 {$EXTERNALSYM WH_MIN}
 WH_MIN = -1;
 {$EXTERNALSYM WH_MSGFILTER}
 WH_MSGFILTER = -1;
 {$EXTERNALSYM WH_JOURNALRECORD}
 WH_JOURNALRECORD = 0;
 {$EXTERNALSYM WH_JOURNALPLAYBACK}
 WH_JOURNALPLAYBACK = 1;
 {$EXTERNALSYM WH_KEYBOARD}
 WH_KEYBOARD = 2;
 {$EXTERNALSYM WH_GETMESSAGE}
 WH_GETMESSAGE = 3;
 {$EXTERNALSYM WH_CALLWNDPROC}
 WH_CALLWNDPROC = 4;
 {$EXTERNALSYM WH_CBT}
 WH_CBT = 5;
 {$EXTERNALSYM WH_SYSMSGFILTER}
 WH_SYSMSGFILTER = 6;
 {$EXTERNALSYM WH_MOUSE}
 WH_MOUSE = 7;
 {$EXTERNALSYM WH_HARDWARE}
 WH_HARDWARE = 8;
 {$EXTERNALSYM WH_DEBUG}
 WH_DEBUG = 9;
 {$EXTERNALSYM WH_SHELL}
 WH_SHELL = 10;
 {$EXTERNALSYM WH_FOREGROUNDIDLE}
 WH_FOREGROUNDIDLE = 11;
 {$EXTERNALSYM WH_CALLWNDPROCRET}
 WH_CALLWNDPROCRET = 12;
 {$EXTERNALSYM WH_MAX}
 WH_MAX = 12;
 {$EXTERNALSYM WH_MINHOOK}
 WH_MINHOOK = WH_MIN;
 {$EXTERNALSYM WH_MAXHOOK}
 WH_MAXHOOK = WH_MAX;


 
wicked ©   (2004-08-26 17:54) [3]

WH_MIN наверное...


 
Erik1   (2004-08-26 17:58) [4]

На этом сайте есть статья о Hook почитай ее.


 
devMaster   (2004-08-26 18:09) [5]

http://www.delphimaster.ru/articles/hooks/index.html
А описание сообщения времени?
Может быть ктонибудь писал чтото подобное именно с SysDate(системным временем)


 
devMaster   (2004-08-26 18:12) [6]

Может использовать WH_GETMESSAGE а среди него опять же нужно найти именно WM_Time

Подскажите  или кинте ссылку плз.


 
Digitman ©   (2004-08-27 08:34) [7]


> devMaster


решение зависит от того, с какими параметрами трэд целевого процесса вызвал ф-цию SetTimer()

lpTimerFunc

Points to the function to be notified when the time-out value elapses. For more information about the function, see TimerProc.
If lpTimerFunc is NULL, the system posts a WM_TIMER message to the application queue. The hwnd member of the message"s MSG structure contains the value of the hWnd parameter.

если соблюдается подчеркнутое условие, то сообщения таймера, установленного данным вызовом ф-ции SetTimer(), можно "ловить" и с помощью того же WH_GETMESSAGE

если иначе, то сообщения как такового нет и хук здесь не поможет ... а поможет перехват вызова ф-ции SetTimer() и подмена параметра TIMERPROC lpTimerFunc с переадресацией на свой обработчик


 
devMaster   (2004-08-27 09:53) [8]

>Digitman
 Я даже незнаю как реализован запрос на получение времени в программе, но блокировать необходимо.
Дело в том что прога эта АРМ Бухгалтера написаный вроде бы  на Delpi 3(не уверен)  и в БД PARADOX используют поле(уникальный ключ) типа String  в виде Date+"_"+Time так вот после 2004 года (не понятно почему)он какуюто пургу вставляет и кричит что нарушен уникальный ключ , а дату в компике минять нельзя.
 Резидент написаный на ASMe в ХР не работает только под ДОС или WIN9x(???)
повторюсь может кто сталкивался с такой проблемой ? - Помогите


 
Digitman ©   (2004-08-27 10:10) [9]


> вроде бы  на Delpi 3(не уверен)


для начала достоверно убедись, что приложение это является Win32-приложением ... а на чем оно написано - не суть как важно


> незнаю как реализован запрос на получение времени в программе


ну тогда ты, видимо, не в том направлении движешься

чтобы подставить свое значение даты/времени тебе, вероятно, следует перехватить вызовы приложением ф-ций GetLocalTime/GetSystemTime


 
Anatoly Podgoretsky ©   (2004-08-27 10:23) [10]

Да наверно просто база разрушена, для Парадокса это обычное явление. Проверить какими ни будь ремонтниками.



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

Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
3-1094131004
Донской
2004-09-02 17:16
2004.10.03
Триггер счетчика


3-1094566704
Виталий Панасенко
2004-09-07 18:18
2004.10.03
Обновление VIEW


4-1093110717
spoyler
2004-08-21 21:51
2004.10.03
Дни недели


4-1093807352
romario
2004-08-29 23:22
2004.10.03
Отладка DLL проекта


3-1094201577
AndreyG
2004-09-03 12:52
2004.10.03
Установка MSSQL на CD





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский