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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2012, 22:02   #11
JekaDefer
Форумчанин
 
Регистрация: 07.04.2009
Сообщений: 112
По умолчанию

ты то что описано в посте №6 пробовал? в линейке на ура прокатывает. качал некра и автоматом 4 окна сверху сами мп лили хилили и дансили)
JekaDefer вне форума Ответить с цитированием
Старый 15.05.2012, 22:26   #12
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

Цитата:
Сообщение от JekaDefer Посмотреть сообщение
ты то что описано в посте №6 пробовал? в линейке на ура прокатывает. качал некра и автоматом 4 окна сверху сами мп лили хилили и дансили)
) честно сказать, не понимаю ассемблерного кода...
Miha85193 вне форума Ответить с цитированием
Старый 15.05.2012, 22:36   #13
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Miha85193 Посмотреть сообщение
) честно сказать, не понимаю ассемблерного кода...
Это обычный вызов PostMessage(Wnd, WM_KEYDOWN, VKey, 0) в предположении, что компилятор запихнет параметры в регистры, а не в стек.
s-andriano вне форума Ответить с цитированием
Старый 15.05.2012, 22:50   #14
JekaDefer
Форумчанин
 
Регистрация: 07.04.2009
Сообщений: 112
По умолчанию

ты не смотри на ASM, вставь тупо эту функцию в программу и используй
Код:
EmulateKey(Хэндл на окно(игру в которую нужно послать), Код клавиши(то что нажать, например 13(Enter)));
JekaDefer вне форума Ответить с цитированием
Старый 15.05.2012, 23:04   #15
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

Цитата:
Сообщение от JekaDefer Посмотреть сообщение
ты не смотри на ASM, вставь тупо эту функцию в программу и используй
Код:
EmulateKey(Хэндл на окно(игру в которую нужно послать), Код клавиши(то что нажать, например 13(Enter)));
Честно говоря, не хотелось бы, чтоб получилось "тупо", а то еще комп взорвется ненароком и форума я дооолго не увижу ))). Ну не доверяю я ассемблеру. Да и потом, как получить хэндл игры в полноэкранном режиме?
Miha85193 вне форума Ответить с цитированием
Старый 15.05.2012, 23:15   #16
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Не понимаю, зачем использовать какую-то левую EmulateKey, когда она всего-навсего вызывает из себя стандартную PostMessage?
s-andriano вне форума Ответить с цитированием
Старый 16.05.2012, 00:41   #17
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Не понимаю, зачем использовать какую-то левую EmulateKey, когда она всего-навсего вызывает из себя стандартную PostMessage?
Для PostMessage тоже нужен хэндл игры.
Miha85193 вне форума Ответить с цитированием
Старый 16.05.2012, 12:32   #18
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

Получить Handle и имя класса окна под курсором

Код:
type 
  TForm1 = class(TForm) 
    Label1: TLabel; 
    Label2: TLabel; 
    Timer1: TTimer; 
    procedure Timer1Timer(Sender: TObject); 
    procedure FormCreate(Sender: TObject); 
  private 
    procedure ShowHwndAndClassName(CrPos: TPoint); 
  public 

end; 

var 
  Form1: TForm1; 

implementation 

{$R *.DFM} 

procedure TForm1.Timer1Timer(Sender: TObject); 
var 
  rPos: TPoint; 
begin 
  if Boolean(GetCursorPos(rPos)) then ShowHwndAndClassName(rPos); 
end; 

procedure TForm1.ShowHwndAndClassName(CrPos: TPoint); 
var 
  hWnd: THandle; 
  aName: array [0..255] of Char; 
begin 
  hWnd := WindowFromPoint(CrPos); 
  Label1.Caption := 'Handle :  ' + IntToStr(hWnd); 

  if Boolean(GetClassName(hWnd, aName, 256)) then 
    Label2.Caption := 'ClassName :  ' + string(aName) 
  else 
    Label2.Caption := 'ClassName :  not found'; 
end; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
  Form1.FormStyle := fsStayOnTop; 
  Timer1.Interval := 50; 
end;
Тут есть пример полезной программки

Последний раз редактировалось Noor; 16.05.2012 в 12:36.
Noor вне форума Ответить с цитированием
Старый 16.05.2012, 13:05   #19
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

А если игра на DirectX API и не работает в оконном режиме?
Miha85193 вне форума Ответить с цитированием
Старый 16.05.2012, 22:30   #20
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Miha85193 Посмотреть сообщение
А если игра на DirectX API и не работает в оконном режиме?
Тебе то что за забота?
Тебе хендл нужен, а не оконный режим.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поочередная имитация нажатия клавиш usb72 Общие вопросы Delphi 4 16.08.2011 01:44
Имитация нажатия комбинации клавиш! stalsoft C# (си шарп) 2 24.06.2011 00:13
имитация нажатия клавиш RAVAL(c) HTML и CSS 10 07.02.2011 12:29
Имитация нажатия клавиш в играх. simtiko Общие вопросы Delphi 2 01.06.2010 15:02
Имитация нажатия клавиш Air Свободное общение 28 04.02.2010 12:38