Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2008, 00:36   #11
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Что значит везде? Есть общесистемные хуки, есть обычный ввод с клавиатуры, который идет окну, имеющему фокус, есть возможность послать любое сообщение любому окну, есть возможность послать сообщение любому потоку. Как надо-то?
B_N вне форума Ответить с цитированием
Старый 25.01.2008, 08:51   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
кто знает как в делфи называетс CAPS LOCK?
VK_CAPITAL
Цитата:
ну чтоб она не где-то нажималась, а везде?
Ну я даж незаню что ответить, бродкастом разошли чтоли сообщение о нажатии всем окнам (HWND_BROADCAST)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.01.2008, 16:26   #13
)Игнат(
Форумчанин
 
Регистрация: 06.01.2008
Сообщений: 180
По умолчанию

HWND_BROADCAST вместо Edit1.Handle???
)Игнат( вне форума Ответить с цитированием
Старый 28.01.2008, 09:04   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
HWND_BROADCAST вместо Edit1.Handle???
э-э-э стоп! Если нужно послать всем открытым окнам вообще то да
Если нужно послать всем Эдитам на форме То луче в цикле перебрать их
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.01.2008, 09:16   #15
Zevseg
 
Аватар для Zevseg
 
Регистрация: 30.11.2007
Сообщений: 5
По умолчанию

Блин, я же Вам написал код. В нем подставляешь клавишу и он будет её нажимать когда ты захочешь в любое время. И её функция будет зависеть от окона которое активно.
Папробуй и говори что непонятно
Caps Lock - Запереть шашки
Zevseg вне форума Ответить с цитированием
Старый 31.01.2008, 17:25   #16
)Игнат(
Форумчанин
 
Регистрация: 06.01.2008
Сообщений: 180
По умолчанию

Цитата:
Сообщение от Zevseg Посмотреть сообщение
Впринципе в место w можно писать номер клавиши которую нужно нажать ж). Так же значение клавиши будет зависеть от текущей раскладки ж)

setkey(form1,w);

В данном примере при Вашем условие наберется слово Привет ж) если раскладка клавиатуры будет русской ж)

Код:
{Процедура имитирования нажатия клавиши}
procedure TForm1.SetKey(Sender: TObject; key:integer);
begin
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;

{пишет в строке ввода (если доступно) то что вы хотите :)) }

procedure TForm1.Button1Click(Sender: TObject);
var w,i:word;
s:string;
Layout: array[0.. KL_NAMELENGTH] of char;
begin
s:='Ghbdtn'; //пишем что надо послать по русски анг буквами;
if <условие при котором произойдет имитация написания слова "привет"> then
begin
  for i:=1 to length(s) do
  begin
  w:=VkKeyScan(s[i]);
  setkey(form1,w);
end;
end;
end;
а можно это в сам проект, без формы? например так
Код:
begin
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY,0);
  keybd_event(Key,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
end;
)Игнат( вне форума Ответить с цитированием
Старый 31.01.2008, 20:20   #17
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

жми CapsLock при помощи keybd_event - CapsLock для всех и всего жмется!!!
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 01.02.2008, 18:28   #18
)Игнат(
Форумчанин
 
Регистрация: 06.01.2008
Сообщений: 180
По умолчанию

Я толком честно говоря не понял этот код(делфи только начинаю учить) может кто нить его мне пояснить?
)Игнат( вне форума Ответить с цитированием
Старый 13.02.2008, 20:36   #19
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Что значит везде? Есть общесистемные хуки, есть обычный ввод с клавиатуры, который идет окну, имеющему фокус, есть возможность послать любое сообщение любому окну, есть возможность послать сообщение любому потоку. Как надо-то?
если окно имеющее фокус - это то окно которое я вижу на экране то как это сделать? передать сообщ о нажатии клавиши этому окну???
^_^
WOLFak вне форума Ответить с цитированием
Старый 13.02.2008, 20:52   #20
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от WOLFak Посмотреть сообщение
если окно имеющее фокус - это то окно которое я вижу на экране то как это сделать? передать сообщ о нажатии клавиши этому окну???
Читайте внимательнее: "есть обычный ввод с клавиатуры, который идет окну, имеющему фокус". А передать любое сообщение любому окну можно с помощью SendMessage и т.п.
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц