Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 337

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Как можно получить список действующих в данный момент горячих клавиш - как системных, так и пользовательских? Просмотром в редакторе реестра или можно программой ?
И в развитие этого вопроса : могу написать прогу, которая по горячей клавише заносит что-то в буфер, другая по другой г.к. - что-то другое, но это тупо, а нельзя ли в одной программе по разным ключам писать разные значения, например, Ctrl-Alt-1 - "First", Ctrl-Alt-2 -- "Second" etc.
Достаточно ли сумбурно изложил вопрос?

Толяныч Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Толяныч (статус: 4-ый класс)
Вопрос отправлен: 17 июня 2010, 10:34
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Толяныч!
Просто так получить список всех зарегистрированных горячих клавиш, насколько мне известно - нельзя. Но есть обходные методы - об одном описано здесь http://wasm.ru/article.php?article=gui_subsystem (знание с++ и написания драйверов приветствуется:) ).
А вот с регистрацией своих клавиш для помещения в буфер чего то своего - это просто. Первая часть задачи разобрана людьми до мелочей - http://disketa.info/page.asp?page=doc&idd=2751&raz=6
Помещение в буфер обмена тоже не сложно в делфи.
в список uses добавляем модуль ClipBrd. Теперь у нас появляется глобальный объект Clipboard. Используем так
Поместить какой то текст с едита в буфер
Clipboard.AsText := Edit1.text;
забрать текст с буфера обмена
Edit1.text := Clipboard.AsText
Проверить, если в буфере что то похожее на текст
if Clipboard.HasFormat(CF_TEXT) then ShowMessage('Clipboard содержит текст') ;
Почему похоже? а можно скопировать текст с форматированием, красивый, а вставить как обычный текст - все само преобразуется.
А вот такой строкой можно даже картинку с TBitmap в буфер уложить
Clipboard.Assign(MyBitmap) ;
А дальше уже наверно по хелпу:)

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 17 июня 2010, 11:09
Оценка за ответ: 5

Комментарий к оценке: C Clipboard'ом работаю уже без проблем, сейчас засяду вникать в Hot Key. До того обленился заполнять формы, да и клавиатуру жалко :=)

Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 17 июня 2010, 10:40; участников в обсуждении: 1.
min@y™

min@y™ (статус: Доктор наук), 17 июня 2010, 10:40 [#1]:

Цитата (Толяныч):

а нельзя ли в одной программе по разным ключам писать разные значения

Можно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.02 сек.