Ricardo Bianchin Postado Maio 24, 2006 Denunciar Share Postado Maio 24, 2006 Amigos,Desenvolvo em delphi 7meus clientes usam de windows 98 pra cimaMeu programa em delphi abre um programa ms-dos.utilizo a WinExec para isto.o problema é que o programa ms-dos abre como janelacomo garantir que o programa ms-dos abra no modo tela cheia?o usuario tem que trocar de modo atraves de alt+enter. como eu simulo esta ação?Agradeço antecipadamenteRicardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Maio 24, 2006 Denunciar Share Postado Maio 24, 2006 talvez você possa enviar mensagens do tipo WM_KEYDOWN e WM_KEYUP, através de SendMessage ou SendNotifyMessage, sendo que você deverá ter o handle da janela desejada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo Bianchin Postado Maio 24, 2006 Autor Denunciar Share Postado Maio 24, 2006 também pensei nisto, meu amigo, mas, como descubro o handle da janela? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Maio 25, 2006 Denunciar Share Postado Maio 25, 2006 A idéia era algo como está abaixo, porém não está resultando no esperado. Quem sabe algum outro colega agora possa dar alguma idéia para resolver este problema. (desculpe não poder ajudar mais)procedure TForm1.Button1Click(Sender: TObject); var Handle :HWND; KeyFlag :LongInt; begin Handle := FindWindow(nil, PChar('Prompt de comando'#0)); // Eu abri uma janela do prompt para testar if Handle > 0 then begin if SetForegroundWindow(Handle) then // Ativa janela do prompt do dos begin KeyFlag := (18 shl 15) or // Specifies the scan code (do help WM_KEYDOWN) (1 shl 23) or // Specifies whether the key is an extended key (do help WM_KEYDOWN) (1 shl 29); // Specifies the previous key state. The value is 1 if the key is down (do help WM_KEYDOWN) SendMessage(Handle, WM_KEYDOWN, VK_MENU, KeyFlag); KeyFlag := (13 shl 15) or // Specifies the scan code (do help WM_KEYDOWN) (1 shl 29); // Specifies the previous key state. The value is 1 if the key is down (do help WM_KEYDOWN) SendMessage(Handle, WM_KEYDOWN, VK_RETURN, KeyFlag); KeyFlag := 1 or // Specifies the repeat count. The repeat count is always one for a WM_KEYUP (18 shl 15) or // Specifies the scan code (do help WM_KEYDOWN) (1 shl 29) or // Specifies the previous key state. The value is 1 if the key is down (do help WM_KEYDOWN) (1 shl 30); // Specifies the transition state. The value is always 1 for a WM_KEYUP (do help WM_KEYDOWN) SendMessage(Handle, WM_KEYUP, VK_RETURN, KeyFlag); KeyFlag := 1 or // Specifies the repeat count. The repeat count is always one for a WM_KEYUP (18 shl 15) or // Specifies the scan code (do help WM_KEYDOWN) (1 shl 23) or // Specifies whether the key is an extended key (do help WM_KEYDOWN) (1 shl 29) or // Specifies the previous key state. The value is 1 if the key is down (do help WM_KEYDOWN) (1 shl 30); // Specifies the transition state. The value is always 1 for a WM_KEYUP (do help WM_KEYDOWN) SendMessage(Handle, WM_KEYUP, VK_MENU, KeyFlag); end; end; end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ricardo Bianchin
Amigos,
Desenvolvo em delphi 7
meus clientes usam de windows 98 pra cima
Meu programa em delphi abre um programa ms-dos.
utilizo a WinExec para isto.
o problema é que o programa ms-dos abre como janela
como garantir que o programa ms-dos abra no modo tela cheia?
o usuario tem que trocar de modo atraves de alt+enter. como eu simulo esta ação?
Agradeço antecipadamente
Ricardo
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.