Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Lifebinder
9 / 9 / 2
Регистрация: 04.10.2009
Сообщений: 103
#1

Память процесса, эмуляция нажатий клавиш

11.03.2010, 09:05. Просмотров 3324. Ответов 6
Метки нет (Все метки)

1. Дайте плиз кто-нибудь пример или исходник с использованием ReadProcessMemory и WriteProcessMemory , читал статьи всякие, постоянно какие-то ошибки выдает..

2. switch... какой вариант правильный? первый или второй? или вообще как-то по другому?
Delphi
1
2
3
4
5
6
7
switch (var)
begin
  case 1: ....;
  case 2: ....;
  case 3: ....;
  case 4: ....; break;
end;
Delphi
1
2
3
4
5
6
7
switch (var)
begin
  case 1: ....; break;
  case 2: ....; break;
  case 3: ....; break;
  case 4: ....; break;
end;
3. Эмуляция нажатий клавиш в неактивное приложение, будь то буква, цифра, или функциональная клавиша (например shift, enter,...) . Опять же лучше на конкретном примере.

Вот что я делал:
нажатие ескейпа пашет:
Delphi
1
2
SendMessage(wnd,WM_KEYDOWN,VK_ESCAPE,0);
SendMessage(wnd,WM_KEYUP,VK_ESCAPE,1);
а нажатие ентера нет:
Delphi
1
2
SendMessage(wnd,WM_KEYDOWN,VK_RETURN,0);
SendMessage(wnd,WM_KEYUP,VK_RETURN,1);
Добавлено через 7 часов 37 минут
так никто ничем и не поможет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2010, 09:05
Ответы с готовыми решениями:

Эмуляция нажатий клавиш
У меня есть залогированы клавиши в блокноте в таком виде(много): Как мне...

Эмуляция нажатий клавиш в браузерную строку.
Подскажите пожалуйста, как можно эмулировать нажатия клавиш в браузерную...

Эмуляция нажатий клавиш (число или слово из переменной)
Привет всем! Есть база данных из которой в переменную выгружаем значения....

Эмуляция нажатий клавиатуры
Привет всем. Я только начал изучать делфи7 и хочу написать свою первую...

Подсчет нажатий клавиш на клавиатуре
Приветствую. Понадобилось сделать сабж, но дело тут вот в чем. Счетчик должен...

6
*~<`PIK`>~*
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
606 / 386 / 81
Регистрация: 15.12.2009
Сообщений: 753
11.03.2010, 15:28 #2
имитация нажатия клавиши:
Delphi
1
keybd_event(bVk: Byte; bScan: Byte; dwFlags, dwExtraInfo: DWORD);//клавиатура
или
Delphi
1
mouse_event(dwFlags, dx, dy, dwData, dwExtraInfo: DWORD);//мышь
0
Lifebinder
9 / 9 / 2
Регистрация: 04.10.2009
Сообщений: 103
11.03.2010, 19:19  [ТС] #3
Цитата Сообщение от *~<`PIK`>~* Посмотреть сообщение
имитация нажатия клавиши:
Delphi
1
keybd_event(bVk: Byte; bScan: Byte; dwFlags, dwExtraInfo: DWORD);//клавиатура
или
Delphi
1
mouse_event(dwFlags, dx, dy, dwData, dwExtraInfo: DWORD);//мышь
неа, не то, оно в нактивные окна не посылает
0
EvgeniiSp
146 / 136 / 57
Регистрация: 05.06.2009
Сообщений: 310
11.03.2010, 19:30 #4
Используйте вместо switch оператор case.
Delphi
1
2
3
4
5
case (var) of
1: ...;
2: ...;
else ...;
end;
0
*~<`PIK`>~*
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
606 / 386 / 81
Регистрация: 15.12.2009
Сообщений: 753
11.03.2010, 21:29 #5
Цитата Сообщение от Lifebinder Посмотреть сообщение
неа, не то, оно в нактивные окна не посылает
ну так сделай окно активным и посылай=))

Добавлено через 1 минуту
и вообще это не нажатие кнопки в определенном окне а обычное нажатие. Чтобы нажать кнопку в нужном тебе окне нужно его сделать активным
0
Lifebinder
9 / 9 / 2
Регистрация: 04.10.2009
Сообщений: 103
12.03.2010, 21:48  [ТС] #6
нет.. поверь я посылал нажатие кнопок в неактивное окно)
только вот сейчас я не могу послать ни одной кнопки, кроме ескейпа, и меня это раздражает

EvgeniiSp пасиба

Добавлено через 23 часа 7 минут
все.. решилось все..
0
Likelihood
0 / 0 / 0
Регистрация: 25.11.2011
Сообщений: 1
28.11.2011, 22:32 #7
Цитата Сообщение от Lifebinder Посмотреть сообщение
все.. решилось все..
Пожалуйста, опиши решение своей проблемы, чтоб не создавать новой темы.

Мой вариант кода (нажимает только в активном окне, в неактивном не хочет):
Delphi
1
2
3
4
5
6
7
8
  fgHWND := GetForegroundWindow();
  if fgHWND <> wkHWND then begin
    SendMessage(wkHWND, WM_KEYDOWN, VKey, 0);
    SendMessage(wkHWND, WM_KEYUP, VKey, 1);
  end else begin
    keybd_event(VKey, 0, 0, 0);
    keybd_event(VKey, 0, KEYEVENTF_KEYUP, 0);
  end;
0
28.11.2011, 22:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2011, 22:32

Считывание и обработка нажатий клавиш
Всем привет! Мне нужно написать маленькую программку, которая выполняла бы...

Имитация нажатий клавиш клавиатуры
Как соорудить программу, чтобы по нажатию ранее назначеной клавише происходила...

Эмуляция нажатия клавиш
Всем привет! Помогите написать простенькую программу. Что должна делать?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru