Войти

Показать полную графическую версию : Delphi 7 нужна помощь


OldGamer
23-09-2017, 17:37
Здравствуйте!

Я новичок в Delphi - помогите, пожалуйста, реализовать задуманное...

Имеется эмулятор приставки PS2 - PCSX2

http://i93.fastpic.ru/thumb/2017/0923/64/3a3654e8b9362849d5177e1c64037d64.jpeg (http://fastpic.ru/view/93/2017/0923/3a3654e8b9362849d5177e1c64037d64.png.html)

Написал лаунчер, содержащий авто запуск игры

http://i91.fastpic.ru/thumb/2017/0923/5c/2a39280b0f5fd374717b23f8918d785c.jpeg (http://fastpic.ru/view/91/2017/0923/2a39280b0f5fd374717b23f8918d785c.png.html)

Требуется: автоматизировать вызов настроек - при клике на кнопку "Controller" (btn3Click) запускался эмулятор и автоматически открывал окно с настройками управления (плагина)

http://i89.fastpic.ru/thumb/2017/0923/a8/9e1854ff6891110a918f9f10711a9ca8.jpeg (http://fastpic.ru/view/89/2017/0923/9e1854ff6891110a918f9f10711a9ca8.png.html)
http://i91.fastpic.ru/thumb/2017/0923/34/de3c63297ab98b8b4c70e66a76419834.jpeg (http://fastpic.ru/view/91/2017/0923/de3c63297ab98b8b4c70e66a76419834.png.html)

Проблема заключается в реализации перехода во второе подменю "Controllers (PAD)" и, соответственно, нажатия там нужной кнопки "Plugin Settings...".



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, ShellAPI;

type
TForm1 = class(TForm)
img1: TImage;
btn1: TBitBtn;
btn2: TBitBtn;
btn3: TBitBtn;
btn4: TBitBtn;
procedure btn1Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
form1.Close;
end;

procedure TForm1.btn4Click(Sender: TObject);
begin
form1.Close;
ShellExecute(Application.Handle,PChar('open'),PChar('Start Game.exe'),nil,nil,SW_SHOW)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetClassLong(Handle, GCL_STYLE, GetClassLong(Handle, GCL_STYLE) or CS_NOCLOSE);
end;

procedure TForm1.btn3Click(Sender: TObject);
Var
Men :HMenu;
Hnd :HWnd;
HndMen,HndSMen :HMenu;
IdBtn,idMen :integer;
begin
Hnd:=FindWindow(nil, 'PCSX2 Burnout 3: Takedown');
if Hnd <>0 then begin
windows.SetForegroundWindow(Hnd);
HndMen:=GetMenu(Hnd);
HndSMen:=GetSubMenu(HndMen,2);
idMen:=GetMenuItemID(HndSMen,6);
if idMen<>0 then begin
PostMessage(Hnd,WM_COMMAND,idMen,0);
end;
end;
end;

end.




© OSzone.net 2001-2012