Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.216.174] |
|
Сообщ.
#1
,
|
|
|
Огромнейшее спасибо rivitna за подробный предыдущий ответ.
Мне нужно написать программу на TASM которая должна запретить копирование определённого файла и вообще копирование.(под WIN). Как отслеживать и перехватывать нажатие на клавиши, перехватывать функцию копирования и что бы прогу нельзя было убить (Ctrl+Alt+Del) - прочитал, что это делается вроде с помощью HOOKов если можно, то поподробнее. Можно ли сделать неактивным пункт копирование в всплывающем меню которое появляется при нажатии на левую кнопку мыши. Подскажите хоть чего нибудь. Через GlobalMemotyStatus я снял информацию о памяти (проверил через td32), данные хранятся в структуре MemoryStatus как вывести отдельные значения из нее и все значения. Алексей. P.S. Rivitna: С предыдущего вопроса я плохо сформулировал ) Можно ли вырезать информацию (имя компа,кол-во памяти т.д.)вызываемую функцией ShellAboutA и если можно то как? Эта функция выводит на экран информацию (имя компа,кол-во памяти,и т.д) разбить эту инфу на блоки и по отдельности вывести на экран:имя,память и т.д. (наприм через MessageBox) ? Алексей |
Сообщ.
#2
,
|
|
|
На самом деле вопрос больше подходит для форума C/C++, это их хлеб
Цитата Мне нужно написать программу на TASM которая должна запретить копирование определённого файла и вообще копирование.(под WIN). На мой взгляд лучше написать хук на вызов АПИшных функци, рекомендую обратиться к тов. Рихтеру, есть его пример установки хука. На АСМе это сделать будет очень муторно Цитата Как отслеживать и перехватывать нажатие на клавиши... Пишешь хук на WH_KEYBOARD или WH_KEYBOARD_LL (для NT/2000). На АСМе это сделать просто. Я, например, все больше склоняюсь к тому, чтобы писать простенькие dll-ки с процедурами хуков на АСМе, в итоге код порядка 4Кб вместо 40Кб (на VC), а трудозатраты не намного больше. При желании могу привести пример. Насчет хуков лучше почитай MSDN или соответствующую литературу, а также посмотри примеры... Цитата что бы прогу нельзя было убить (Ctrl+Alt+Del)... Для Win9x (На C): UINT uiPrevState; Запрет комбинаций Ctrl+Alt+Del, Alt+Tab и т.д. SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &uiPrevState, 0); Разрешение комбинаций Ctrl+Alt+Del, Alt+Tab и т.д. SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &uiPrevState, 0); Для WinNT (На C): Хук на WH_KEYBOARD_LL (есть пример в MSDN). Только в этом случае Ctrl+Alt+Del не блокируется, но при блокировке клавиатуры и мыши (см. ниже) пользователь кроме перезагрузки ничего не сможет сделать... Кроме того придется писать еще два хука на WH_KEYBOARD и WH_MOUSE для блокировки клавиатуры и мыши... Цитата Через GlobalMemotyStatus я снял информацию о памяти (проверил через td32), данные хранятся в структуре MemoryStatus как вывести отдельные значения из нее и все значения Честно говоря, не понятно в чем проблема? Используй функцию API wsprintf... А дальше выводи текстовые строки... Цитата Можно ли вырезать информацию (имя компа,кол-во памяти т.д.)вызываемую функцией ShellAboutA и если можно то как? Эта функция выводит на экран информацию (имя компа,кол-во памяти,и т.д) разбить эту инфу на блоки и по отдельности вывести на экран:имя,память и т.д. (наприм через MessageBox) ? Используй отдельно соответствующие функции API, которые использованы в ShellAboutA |
Сообщ.
#3
,
|
|
|
Спасибо !!!
Это прога должна быть именно на ASMе (обязательное условие - не я придумал) !!!!!! Если можно, то поподробнее про хук на вызов АПИшных функций (принцип:что ,куда,зачем...) Если не сложно вышли пример на ASM WH_KEYBOARD или WH_KEYBOARD_LL на aserpent@yandex.ru Вопросы: Функция SystemParametersInfo у нее много параметров а значения у них какие ? Например SPI_SETSCREENSAVERRUNNING equ ??? SPI_SETMOUSEBUTTIONSWAP equ ??? . . . . . . . . . . . . . . . . . . . . . . . . И где вообще брать значения параметров (которых в WIN.inc и т.д. нет) ?? Как узнать какие функции использует ShellAboutA ? Serpent |
Сообщ.
#4
,
|
|
|
Цитата Если можно, то поподробнее про хук на вызов АПИшных функций (принцип:что ,куда,зачем...) Все же лучше, если ты обратишься к классикам (Рихтеру и Питреку), это довольно тонкий момент, чтобы в форуме в двух словах объяснять. Примеры на C и кое-какую информацию вышлю на почту. Цитата Если не сложно вышли пример на ASM WH_KEYBOARD или WH_KEYBOARD_LL на aserpent@yandex.ru То же самое: вышлю на почту. Но только заготовку на АСМе, лишнее удалю. Ссылки примеров на C: http://www.sources.ru/cpp/cpp_lock_mouse_and_keyboard.shtml http://www.sources.ru/cpp/tips/system_wide_hook.shtml http://www.sources.ru/cpp/cpp_pwdspy.shtml http://support.microsoft.com/support/kb/articles/Q81/3/34.ASP Цитата Вопросы: Функция SystemParametersInfo у нее много параметров а значения у них какие ? Например SPI_SETSCREENSAVERRUNNING equ ? SPI_SETMOUSEBUTTIONSWAP equ ? SPI_SETSCREENSAVERRUNNING EQU 97 Если нужно еще какие значение, я уточню, просто VC 6.0 у меня на работе и я отвечаю по памяти... Цитата И где вообще брать значения параметров (которых в WIN.inc и т.д. нет) ? Смотри в заголовочных файлах MS VC++ и добавляй по мере необходимости в твой личный win32.ini (свой я тебе вышлю с примером хука) Цитата Как узнать какие функции использует ShellAboutA ? С помощью утилитки eXeScope посмотри какие функции импортируются в shell32.dll особенно из kernel32.dll и user32.dll. Короче, прояви смекалку... |