Fórum Message Box #144785
12/03/2003
0
Grata
Lady
Curtir tópico
+ 0Posts
12/03/2003
Fabio Colli
Não deu para entender sua pergunta.
Gostei + 0
12/03/2003
Alphablend
REFORMULE SUA PERGUNTA
Gostei + 0
12/03/2003
Eniorm
A pergunta do cara está correta, o que ele quer saber
é se seria possível a aplicação fechasse a Message Box
sem interação do usuário.
Por ex: aparece uma message box na tela e o usuário
não a responde (não clica com o mouse no botão) e,
depois de um período de tempo o próprio programa
fecha a message box.
Entenderam ????
Gostei + 0
12/03/2003
Anonymous
Gostei + 0
13/03/2003
Carnette
Aqui está á idéia o resto é com voce...Acreito que se, vc colocar um objeto TIMER e toda vez que aparecer o MessageBox voce liga o timer
aí voce coloca um codigo parecido com este aí de baixo...só que enviando um VK_RETURN....COm certeza voce vai atingir o efeito desejado
Enviando combinação de teclas para o buffer do teclado
// Exemplo : PostKeyEx32(Ord(´A´), [ssCtrl], false);
// Envia Ctrl+A para o controle que tiver o foco.
// Key : virtual keycode da tecla a enviar. Para caracteres
// imprimíveis informe o código ANSI (Ord(CHARACTER)).
// Shift : estado das teclas modificadoras.
// Shift, Control, Alt, Mouse Buttons.
// SpecialKey: normalmente deve ser False. Informe True se
// a tecla desejada for, por exemplo, do teclado numérico.
procedure PostKeyEx32(Key: Word; const Shift: TShiftState; SpecialKey: boolean);
type
TShiftKeyInfo = Record
shift: Byte;
vkey : Byte;
End;
byteset = Set of 0..7;
const
ShiftKeys: array [1..3] of TShiftKeyInfo =
((shift: Ord(ssCtrl); vkey: VK_CONTROL ),
(shift: Ord(ssShift); vkey: VK_SHIFT ),
(shift: Ord(ssAlt); vkey: VK_MENU ));
var
Flag: DWORD;
bShift: ByteSet absolute shift;
i: Integer;
begin
for i := 1 to 3 do begin
if shiftkeys[i].shift in bShift then
Keybd_Event(ShiftKeys[i].vkey,
MapVirtualKey(ShiftKeys[i].vkey, 0), 0, 0);
end; // for
if SpecialKey Then
Flag := KEYEVENTF_EXTENDEDKEY
else
Flag := 0;
Keybd_Event(Key, MapvirtualKey(Key, 0), Flag, 0);
Flag := Flag or KEYEVENTF_KEYUP;
Keybd_Event(Key, MapvirtualKey(Key, 0), Flag, 0);
for i := 3 DownTo 1 do
begin
if ShiftKeys[i].shift in bShift then
Keybd_Event(shiftkeys[i].vkey,
MapVirtualKey(ShiftKeys[i].vkey, 0),
KEYEVENTF_KEYUP, 0);
end; // for
end; // PostKeyEx32
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)