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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2010, 06:55   #41
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Так вот же он - http://www.programmersforum.ru/showp...3&postcount=39
Это весь мой пример. Добавляем в свою программу процедуру PostKeyEx32 и используем ее по аналогии с TForm1.Button1Click.

Последний раз редактировалось Sibedir; 24.09.2010 в 08:01.
Sibedir вне форума Ответить с цитированием
Старый 24.09.2010, 07:44   #42
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Что у Вас на форме кроме кнопки?
xRamzeSx вне форума Ответить с цитированием
Старый 24.09.2010, 08:00   #43
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Ничего.
Я это сделал только для того, чтобы убедится, что эмуляция нажатия клавишь работает.

Можно сделать например так:
1. Наша программа запускается программа
2. Делает окно игры активным. Запоминаем текущее здоровье персонажа X
3. Таймер каждые 0.1 сек проверяет здоровье нашего персонажа
4. Если здоровье упало ниже критического (X * 0.15), эмулирует нажатие
Код:
PostKeyEx32(Ord('i'), [ssAlt], False);
(где i: 1..6)
до тех пор, пока здоровье не восстановится до X * 0.8.

Последний раз редактировалось Sibedir; 24.09.2010 в 08:09.
Sibedir вне форума Ответить с цитированием
Старый 24.09.2010, 10:08   #44
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Эта функция очень-очень полезная.
Но всё же, можно ли как нибудь сделать нажитие по Check'ам?
xRamzeSx вне форума Ответить с цитированием
Старый 24.09.2010, 10:25   #45
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

xRamzeSx, это как называется. Я сам когда-то был новичком. Но тут то даже вообще не программист разберется. Как с помощью чекбоксов выполнять/не выполнять процедуры разобрались, как эмулировать нажатие разобрались. Вы что хотите зказать, что вот это сложно было додумать.
Код:
procedure TForm1.Prem;
begin
  while Button1.Tag = 1 do begin
    if CheckBox1.Checked then begin
      Memo1.Lines.Add ('Alt+1 HotKey start');
      PostKeyEx32(Ord('1'), [ssAlt], False);
    end;
    if CheckBox2.Checked then begin
      Memo1.Lines.Add ('Alt+2 HotKey start');
      PostKeyEx32(Ord('2'), [ssAlt], False);
    end;
    if CheckBox3.Checked then begin
      Memo1.Lines.Add ('Alt+3 HotKey start');
      PostKeyEx32(Ord('3'), [ssAlt], False);
    end;
  end;
end;
Как жевать знаем, как глотать тоже. А кушать не умеел.
Мне то тема интересна, я потихоньку разбираюсь. Но вы то чему научитесь, если даже такие действия сами не можете провернуть?

Добавлено --------------------------------------------
Перечитал свой пост и понял: звучит довольно грубо. Но к сожелению сообщения на форумах еще не могуг передавать интанаций голоса. Поверте, если бы я говорил вам это своим голосом, то вы бы не услышали интонаций надменности и строгости. Это была бы, скорей, ирония. Мол, ну и как же это, любезный, называется.
xRamzeSx, я пытаюсь лишь оказать вам посильную помошь, но ни как не выставить вас в не хорошем свете.

Последний раз редактировалось Sibedir; 24.09.2010 в 10:52.
Sibedir вне форума Ответить с цитированием
Старый 24.09.2010, 11:20   #46
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Всё равно у меня не получается, посмотрите, может где что-то не так, или я не так использую.
PS: Настараживает вопрос - как программа узнаёт, в какой программе ей выполнять процедуры? Изучая исходный код, названия окна я не нашёл...
Вложения
Тип файла: rar Project.rar (15.8 Кб, 9 просмотров)
xRamzeSx вне форума Ответить с цитированием
Старый 24.09.2010, 11:50   #47
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Код:
PostKeyEx32(Ord('3'), [ssAlt], False);
Эмулирует нажатие клавишь вообще как таковое.

Например вот это
Цитата:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
PostKeyEx32 (9, [ssAlt], True);
end;
Будет работать как будто вы Alt-Tab постоянно нажимаете.



Проект скачал. Накануне посмотрю.

Последний раз редактировалось Sibedir; 24.09.2010 в 12:01.
Sibedir вне форума Ответить с цитированием
Старый 26.09.2010, 11:27   #48
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Тот архив, который Вы загрузили, с ошибкой исходника, посмотрите этот.

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Можно сделать например так:
1. Наша программа запускается программа
2. Делает окно игры активным. Запоминаем текущее здоровье персонажа X
3. Таймер каждые 0.1 сек проверяет здоровье нашего персонажа
4. Если здоровье упало ниже критического (X * 0.15), эмулирует нажатие
Код:
PostKeyEx32(Ord('i'), [ssAlt], False);
(где i: 1..6)
до тех пор, пока здоровье не восстановится до X * 0.8.
Как это в коде записать?
Вложения
Тип файла: rar Proect1.rar (9.3 Кб, 6 просмотров)

Последний раз редактировалось Stilet; 26.09.2010 в 12:26.
xRamzeSx вне форума Ответить с цитированием
Старый 26.09.2010, 12:03   #49
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Самое главное здесь - это узнать здоровье персонажа. Я думаю это можно сделать по аналогии с именем.
Как сделать окно другого приложения активным найти легко
http://www.delphisources.ru/pages/fa...tivate_it.html
Далее все делает таймер, два условия в его обработчике и функция PostKeyEx32.
Sibedir вне форума Ответить с цитированием
Старый 26.09.2010, 13:45   #50
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Самое главное здесь - это узнать здоровье персонажа.
Вот адрес, отображающий здоровье $0049DD9C
Цитата:
Сообщение от Sibedir Посмотреть сообщение
Далее все делает таймер, два условия в его обработчике и функция PostKeyEx32.
Как это записать?

PS: Та ссылка с кодом. Программа ругается на этот код.

Последний раз редактировалось xRamzeSx; 26.09.2010 в 13:50.
xRamzeSx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Горячие клавиши dmitriegorovih Общие вопросы Delphi 2 10.09.2010 14:58
Горячие клавиши. Lazio Помощь студентам 2 08.09.2010 02:20
Горячие клавиши в Delphi Maddy Помощь студентам 7 23.04.2010 17:43
Горячие клавиши Altera Общие вопросы Delphi 5 13.09.2008 21:27