Писал программу без использования форм и визуальных компонент, но в памяти она все равно занимает 1-1,5 Мб. Как можно уменьшить размер? (Программа простая - перехватывает нажатие клавиш NUM+ - открыть CD-ROM, NUM- - закрыть).
Добрый день, jinxed! Программа действительно простая, но че-то все-равно многовато занимает. Чтобы уменьшить размер, можно: - писать без VCL, т. е. на WinAPI; - использовать прогу ASPack; - убрать из uses лишние модули. Ответ отправлен: 17.11.2004, 00:42 Отправитель: Vet Отвечает CJ
Здравствуйте, jinxed! Размер можно уменьшить упаковщиками AsPack или UPX. Ответ отправлен: 16.11.2004, 22:18 Отправитель: CJ Отвечает Alex
Здравствуйте, jinxed! Пеши программу с исползованием WinAPI. Постав ловушку на сообщения клавиатуры и выполняй необходимые действия. Ответ отправлен: 17.11.2004, 13:55 Отправитель: Alex Отвечает sir henry
Доброе время суток, jinxed! Пишите на чистом WinAPI - это единственное средство уменьшения размера программ. Ответ отправлен: 17.11.2004, 14:03 Отправитель: sir henry
Вопрос № 1935
Здравствуйте. Есть ToolBar и ToolButton-ы на нем. При наведении мыши на какую либо кнопку на ней должна изменяться картинка; после того как мышь покидает кнопку, картинка должна восстанавливаться. Как это можно проделать? Спасибо.
Добрый день, Derf! Создайте два imagelist'a. укажите у toolbar'a в свойствах hotimages и images эти imagelist'ы и поставте свойство flat в true
Ответ отправлен: 17.11.2004, 12:20 Отправитель: komrad
Вопрос № 1937
Здравствуйте. Подскажите, пожалуйста, как на Delphi послать в окно сообщение что нажата комбинация клавиш(т.е. сами клавиши на клаве не нажаты, а программно сэмулировать этот процесс), напрпимер Alt-N. Спасибо.
Добрый день, Вадим! Конкретно для Alt+N SendMessage(Form1.Handle{Хандл окна которому посылаешь сообщение},WM_KEYDOWN,$6E,$20310001); $6E - Виртуальный код клавиши 'n' $20310001 - 29 - й бит установлен в еденицу если нажат Alt
Ответ отправлен: 17.11.2004, 16:58 Отправитель: vitaly Отвечает Boriss
Здравствуйте, Вадим! Есть много статей на эту тему. См. например, http://delfaq.wallst.ru/faq/emul.html Ответ отправлен: 18.11.2004, 10:00 Отправитель: Boriss Отвечает Bob Johnson
Добрый день, Вадим! Можно послать окну сообщение, что клавиша нажата (WM_KEYDOWN) или проэмулировать ее нажатие (тогда на него отреагирует вся система) с помощью функции keybd_event.
* EMan1.5: ---===*** The game we play ***===---
Ответ отправлен: 18.11.2004, 17:23 Отправитель: Bob Johnson
Вопрос № 1938
Как программно на Delphi определить, подключено новое аппаратное устройство (то что втсавляется в USB порт - flash, съёмный диск, накопители и др.).
Приветствую Вас, Николай! Вот, например, некоторые статьи об USB: http://www.winsov.com/hard067.php http://www.winsov.com/hard067-2.php http://www.winsov.ru/hard084.php Ответ отправлен: 18.11.2004, 10:13 Отправитель: Boriss
Вопрос № 1939
Добрый вам денек. Помогите чем можете. Требуется отловить завершение любой программы (к примеру Windows Media Player 9(WMP9)). Пример задачи таков. Пусть имеется программа которая через определенный промежуток времени проверяет события винды. Далее запускаю WMP9 (фильм). Фильм идет идет идет и в какой-то момент времени заканчивается. Вот как узнать, что фильм закончился и WMP9 больше ничего не воспроизводит? Какой событие надо отловить? Каким образом? Если можно пример кода в Delphi с объяснением (так будет более понятнее) Заранее большое человеческое спасибо за старания
Добрый день, Тема! Это тебе надо хуками пользоваться http://www.rsdn.ru/article/baseserv/winhooks.xml к сожалению без примеров
Ответ отправлен: 18.11.2004, 09:37 Отправитель: vitaly
Вопрос № 1940
Спасибо за ответ про эмуляцию кнопок: Конкретно для Alt+N SendMessage(Form1.Handle{Хандл окна которому посылаешь сообщение},WM_KEYDOWN,$6E,$20310001); $6E - Виртуальный код клавиши \'n\' $20310001 - 29 - й бит установлен в еденицу если нажат Alt А можно по-подробнее где эти коды взять и что по битам означает второй параметр, чтобы мне самостоятельно эмулировать что мне нужно - сочетания с шифтом, контролом и без них. Спасибо
Доброе время суток, Вадим! Виртуальные коды клавиш можно посмотреть в хелпе Delphi (Virtual Key Codes) или в MSDN. а параметр $20310001 0-15 биты - счётчик повторений. Обычно =1 , но когда удерживаешь может быть больше 16 - 23 -OEM сканкод 25-28 - не исп. 29 - 1- была удержана кл. Alt 0 - не удержана. 30 - Предидущее состояние .1 - была нажата до того как послано сообщение. 0 - не была нажата . 31-Переходное состояние.1 - кнопка нажмётся. 0 -кнопка отпустится Если хочешь работать с Ctrl или с Shift то легче всего пользоваться keybd_event Пример Ctrl+n keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0); keybd_event($4E, MapVirtualKey($4E, 0), 0, 0); Ответ отправлен: 18.11.2004, 16:12 Отправитель: vitaly
Вопрос № 1941
Подскажите пожалуйста как полужить серийный номер жесткого диска установленного в компьютере (не серийный номер тома). Именно тот номер который напечатан на его корпусе. Любой способ для делфи7 и XP
Добрый день, Олег! Посмотрите на freeware приложение и код на http://www.winsim.com/diskid32/diskid32.html Ответ отправлен: 18.11.2004, 12:51 Отправитель: Boriss
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.