mbshareat
دوشنبه 01 آبان 1391, 08:50 صبح
سلام
من یه برنامه دارم به نام Easy Soud Player که تو این پست (http://barnamenevis.org/showthread.php?364322-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%B2%D9%85%D8%A7%D9%86-%D8%AA%D9%88%D8%B3%D8%B7-%D8%AA%D8%A7%DB%8C%D9%85%D8%B1-%D9%87%D9%86%DA%AF%D8%A7%D9%85-%D9%BE%D8%AE%D8%B4-%D8%B5%D9%88%D8%AA&p=1608466&viewfull=1#post1608466) گذاشتم.
می خوام از رویداد MouseUp یه Image از یه برنامه دیگه، پنجره این برنامه رو که در حال اجراست فعال کنم.
چند تا پروسیجر رو امتحان کردم که ممکنه پارامترها رو درست نداده باشم اما هیچیک کمکی نکردند:
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
NextHandle: Hwnd;
NextTitle: array[0..260] of char;
begin
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
GetWindowText(NextHandle, NextTitle, 255);
if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
begin
Result := NextHandle;
Exit;
end
else
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
Result := 0;
end;
procedure TQuranMain.LPagePicMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var
FormHand:THandle;
begin
FormHand:= FindWindowByTitle('Easy Sound Player');
If FormHand<>0 then
Begin
Windows.SetFocus(FormHand);
SetActiveWindow(FormHand);
SendMessage(FormHand,WM_MOUSEACTIVATE,0,0);
SendMessage(FormHand,WM_Activate,WA_CLICKACTIVE,0) ;
SendMessage(FormHand,WM_SetFocus,0,0);
SendMessage(FormHand,WM_MBUTTONDOWN,MK_LBUTTON,0);
SendMessage(FormHand,WM_MBUTTONUP,MK_LBUTTON,0);
SendMessage(FormHand,WM_MBUTTONDBLCLK,MK_LBUTTON,0 );
End;
end;
کسی میتونه بگه مشکل چیه؟
من یه برنامه دارم به نام Easy Soud Player که تو این پست (http://barnamenevis.org/showthread.php?364322-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%B2%D9%85%D8%A7%D9%86-%D8%AA%D9%88%D8%B3%D8%B7-%D8%AA%D8%A7%DB%8C%D9%85%D8%B1-%D9%87%D9%86%DA%AF%D8%A7%D9%85-%D9%BE%D8%AE%D8%B4-%D8%B5%D9%88%D8%AA&p=1608466&viewfull=1#post1608466) گذاشتم.
می خوام از رویداد MouseUp یه Image از یه برنامه دیگه، پنجره این برنامه رو که در حال اجراست فعال کنم.
چند تا پروسیجر رو امتحان کردم که ممکنه پارامترها رو درست نداده باشم اما هیچیک کمکی نکردند:
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
NextHandle: Hwnd;
NextTitle: array[0..260] of char;
begin
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
GetWindowText(NextHandle, NextTitle, 255);
if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
begin
Result := NextHandle;
Exit;
end
else
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
Result := 0;
end;
procedure TQuranMain.LPagePicMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var
FormHand:THandle;
begin
FormHand:= FindWindowByTitle('Easy Sound Player');
If FormHand<>0 then
Begin
Windows.SetFocus(FormHand);
SetActiveWindow(FormHand);
SendMessage(FormHand,WM_MOUSEACTIVATE,0,0);
SendMessage(FormHand,WM_Activate,WA_CLICKACTIVE,0) ;
SendMessage(FormHand,WM_SetFocus,0,0);
SendMessage(FormHand,WM_MBUTTONDOWN,MK_LBUTTON,0);
SendMessage(FormHand,WM_MBUTTONUP,MK_LBUTTON,0);
SendMessage(FormHand,WM_MBUTTONDBLCLK,MK_LBUTTON,0 );
End;
end;
کسی میتونه بگه مشکل چیه؟