Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 415
от 21.11.2004, 14:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1955
Отправлено ответов: 4388
Активность: 224.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Vet
Статус: Доверительный
Общий рейтинг: 120.51
[Подробней >>]
CJ
Статус: Профессиональный
Общий рейтинг: 117.9
URL: Персональный сайт Каратецкого Кирилла.
Телефон: +375297353706
[Подробней >>]
Alex
Статус: Доверительный
Общий рейтинг: 131.03
[Подробней >>]
 
sir henry
Статус: Профессиональный
Общий рейтинг: 163.62
[Подробней >>]
komrad
Статус: Начальный
Общий рейтинг: 110
[Подробней >>]
vitaly
Статус: Начальный
Общий рейтинг: 125
[Подробней >>]
 
Boriss
Статус: Профессиональный
Общий рейтинг: 155.91
URL: Программирование на Паскале
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 132.61
URL: Программирование
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1934. Писал программу без использования форм и визуальных компонент, но в памяти она все равно занимает 1-1,5 Мб. Как можно уменьшить размер? (Программа простая - перехватывает нажатие клавиш NUM+ - открыть CD-ROM, NUM- - закрыть).... (ответов: 4)
Вопрос № 1935. Здравствуйте. Есть ToolBar и ToolButton-ы на нем. При наведении мыши на какую либо кнопку на ней должна изменяться картинка; после того как мышь покидает кнопку, картинка должна восстанавливаться. Как это можно проделать? Спасибо.... (ответов: 1)
Вопрос № 1937. Здравствуйте. Подскажите, пожалуйста, как на Delphi послать в окно сообщение что нажата комбинация клавиш(т.е. сами клавиши на клаве не нажаты, а программно сэмулировать этот процесс), напрпимер Alt-N. Спасибо.... (ответов: 3)
Вопрос № 1938. Как программно на Delphi определить, подключено новое аппаратное устройство (то что втсавляется в USB порт - flash, съёмный диск, накопители и др.).... (ответов: 1)
Вопрос № 1939. Добрый вам денек. Помогите чем можете. Требуется отловить завершение любой программы (к примеру Windows Media Player 9(WMP9)). Пример задачи таков. Пусть имеется программа которая через определенный промежуток времени проверяет события винды. Далее з... (ответов: 1)
Вопрос № 1940. Спасибо за ответ про эмуляцию кнопок: Конкретно для Alt+N SendMessage(Form1.Handle{Хандл окна которому посылаешь сообщение},WM_KEYDOWN,$6E,$20310001); $6E - Виртуальный код клавиши \'n\' $20310001 - 29 - й бит установлен в еденицу если нажат Alt А мо... (ответов: 1)
Вопрос № 1941. Подскажите пожалуйста как полужить серийный номер жесткого диска установленного в компьютере (не серийный номер тома). Именно тот номер который напечатан на его корпусе. Любой способ для делфи7 и XP... (ответов: 1)

Вопросов: 7, ответов: 12


 Вопрос № 1934

Писал программу без использования форм и визуальных компонент, но в памяти она все равно занимает 1-1,5 Мб. Как можно уменьшить размер? (Программа простая - перехватывает нажатие клавиш NUM+ - открыть CD-ROM, NUM- - закрыть).



Вопрос отправлен: 16.11.2004, 21:51
Отправитель: jinxed

[Следующий вопрос >>] [Список вопросов]

Отвечает Vet

Добрый день, 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-ы на нем. При наведении мыши на какую либо кнопку на ней должна изменяться картинка; после того как мышь покидает кнопку, картинка должна восстанавливаться. Как это можно проделать?
Спасибо.



Вопрос отправлен: 17.11.2004, 10:11
Отправитель: Derf

[Следующий вопрос >>] [Список вопросов]

Отвечает komrad

Добрый день, Derf!
Создайте два imagelist'a.
укажите у toolbar'a в свойствах
hotimages и images эти imagelist'ы
и поставте свойство flat в true


Ответ отправлен: 17.11.2004, 12:20
Отправитель: komrad


 Вопрос № 1937

Здравствуйте.
Подскажите, пожалуйста, как на Delphi послать в окно сообщение что нажата комбинация клавиш(т.е. сами клавиши на клаве не нажаты, а программно сэмулировать этот процесс), напрпимер Alt-N.
Спасибо.



Вопрос отправлен: 17.11.2004, 12:34
Отправитель: Вадим

[Следующий вопрос >>] [Список вопросов]

Отвечает vitaly

Добрый день, Вадим!
Конкретно для 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, съёмный диск, накопители и др.).



Вопрос отправлен: 17.11.2004, 17:33
Отправитель: Николай

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Приветствую Вас, Николай!
Вот, например, некоторые статьи об 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 с объяснением (так будет более понятнее)
Заранее большое человеческое спасибо за старания



Вопрос отправлен: 17.11.2004, 18:49
Отправитель: Тема

[Следующий вопрос >>] [Список вопросов]

Отвечает vitaly

Добрый день, Тема!
Это тебе надо хуками пользоваться
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
А можно по-подробнее где эти коды взять и что по битам означает второй параметр, чтобы мне самостоятельно эмулировать что мне нужно - сочетания с шифтом, контролом и без них.
Спасибо



Вопрос отправлен: 18.11.2004, 11:49
Отправитель: Вадим

[Следующий вопрос >>] [Список вопросов]

Отвечает vitaly

Доброе время суток, Вадим!
Виртуальные коды клавиш можно посмотреть в хелпе 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



Вопрос отправлен: 18.11.2004, 12:39
Отправитель: Олег

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Добрый день, Олег!
Посмотрите на 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.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (21)
C / C++ (17)
Perl (4)
Builder / Delphi (17)
Pascal (19)
Basic / VBA (8)
Java / JavaScript (6)
PHP (18)
Криптография (6)
WinAPI (17)
Радиоэлектроника (11)
Пользователю
Windows 95/98/Me (38)
Windows NT/2000/XP (59)
"Железо" (37)
Поиск информации (20)
Администратору
Windows NT/2000/XP (34)
Linux / Unix (17)
Юристу
Гражданское право (10)
Семейное право (5)
Трудовое право (8)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.





http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться

В избранное