GARANTIR DESCONTO

Fórum Executar quot;Alter Enterquot; em outro programa. #315362

08/03/2006

0

Olá Pessoal,

alguém poderia me dizer como faço pra, executar em outro pograma as teclas Alt+Enter?

é o seguinte, eu abro o programa, exemplo o windows media player, e quero que o mesmo fique fullscreen, mas, pra isso, preciso dar o Alt+Enter, como posso fazer isso?

obrigado.

ps. windows media player é so um exemplo.


Otto

Otto

Responder

Posts

08/03/2006

Thiago Vidal

cara, essa foi difícil hein?

precisa necessariamente enviar as teclas Alt+Enter para a aplicação?

Normalmente, qdo eu preciso executar alguma coisa em outra janela, eu executo o item de menu correspondente, que no caso do Windows Media Player, resolveria...

De qualquer forma, segue a minha função, se o programa que vc quiser utilizar, tiver o comando em um menu, deve resolver.

Basta enviar o Handle da janela, o item do menu, e do sub-menu pra executar, por exemplo:

procedure ExecuteMenuItem(Handle: HWND; Item, SubItem: Integer);
var
  Main, Sub: HMENU;
  ID: Integer;
begin
  Main := GetMenu(Handle);
  Sub := GetSubMenu(Main, Item);
  ID := GetMenuItemID(Sub, SubItem);
  SendMessage(Handle, WM_COMMAND, ID, 0);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  WMPlayer: HWND;
begin
  WMPlayer := FindWindow(´WMPlayerApp´, nil);
  if (WMPlayer <> 0) then
    ExecuteMenuItem(WMPlayer, 1, 17);
end;



neste caso, executaria o item ´Tela Inteira´ do WMP, que fica sob o menu Exibir (1) na 17ª posição.

Para executar por exemplo, opção Arquivo/Novo, que na maioria dos programas é o 1º item do 1º menu, o correto seria:
ExecuteMenuItem(Handle, 0, 0);


vou dar uma procurada nesse negocio das teclas, ja tentei utilizando PostMessage(Handle, WM_KEYDOWN....) mas não obtive sucesso, nem com a API keybd_event, que coloca teclas no buffer, mas talvez resolva o seu caso.

um abraço... boa sorte.


Responder

Gostei + 0

08/03/2006

Otto

valeuu, eu consegui com uma rotina auxiliar usando o keybd_event

;)

nildo me deu o toque..

abraço a todos :)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar