GARANTIR DESCONTO

Fórum Windows Message #320671

05/05/2006

0

Ola amigos,

Estou com um probleminha usando OLEautomation. Estou manipulando o envio de mala direta do word já pronto pela empresa, pelo delphi. Esta tudo funcionado ja, mas quando executo o comando “Worddocument.mailmerge.execute(var Pause: olevariant)”. Aparece uma “Telinha indesejada” do outlook, e isso, para cada email a enviar.

Beleza, fiz um programinha a parte para manipular essa janela, usando Windows Messages. Esse programa, clica em uma checkbox, muda combobox de 1minuto para 10 minutos, e da o click no boatao Sim dessa tela.

Perfeito, mas isso so funciona, se toda vez que a telinha aparecer, eu clicar no botão desse meu programinha e chamar a função, que daria no mesmo. O usuário vai ter q interagir do mesmo jeito.

Quando eu ponho esse procedimento e um laço de repetição por exemplo, ou seja, enquanto essa telinha estiver aparecendo, ele executar o procedimento de maipulacao, ele não funciona. Muda a checkbox, muda a combobox de 1 para 10 minutos, mas nao executa o ´Botao Sim´.
Curioso e que se eu clicar em outra janela por exemplo, ele “da o clique no Sim”, ou seja, “pega no tranco” rs . Parece q ele espera um tipo de “refresh”, na tela não sei.

Se algum de vocês ja viveu algo parecido, ou tiver alguma dica para ajudar, pois e a 1º vez que uso windows Messages, deve ser alguma detalhe ´bobo´. Ou ate mesmo alguma configuração do outlook, para essa telinha chata não aparecer. Agradeceria muito.

Senão fui bem claro, poder perguntar que esclareço tudo. Tentei por a tela aqui na mensagem, se quiserem por email, ou se tiver como por aki, me deem a dica. Abcs.


Tolimpio

Tolimpio

Responder

Posts

05/05/2006

Tolimpio

Segue parte do codigo abaixo:

procedure TFormteste2.Manipula_Janela;
var
Handle_Pai, Handle_filho : integer;
begin

Handle_Pai := FindWindow(´#32770´, pchar(´Microsoft Office Outlook´));
while Handle_Pai <> 0 then
begin
Handle_filho := getwindow(Handle_Pai, GW_CHILD);
if (SendMessage(Find_Control(´&Permitir acesso para´, handle_filho), BM_GETCHECK, 0, 0)) = 0 or (SendMessage(Find_Control(´&Permitir acesso para´, handle_filho), WM_ENABLE, 0, 0)) then
begin
sendmessage(Find_Control(´&Permitir acesso para´,Handle_filho), BM_CLICK, 0,0);

Handle_Pai := FindWindow(´32770´, pchar(´Microsoft Office Outlook´));
Set_Tempo_Combobox(Find_Control((´1 minuto´), getwindow(Handle_Pai, GW_CHILD)));
Application.ProcessMessages;
end;

Handle_Pai := FindWindow(´32770´, pchar(´Microsoft Office Outlook´));
Handle_filho := getwindow(Handle_Pai, GW_CHILD);


sendmessage(Find_Control(´Sim´,Handle_filho), BM_CLCLK, 0,0);

Application.ProcessMessages;
Handlle_Pai := FindWindow(´#32770´, pchar(´Microsoft Office Outlook´));
end;
end;


function TFormteste2.Find_Control(arg: string; arg2: integer): Thandle;
var
aux : string;
i, Janela : integer;
begin
i := 0;
Janela:= arg2;
aux := get_child_caption(Janela);
while ((aux <> arg) and (i <= 15)) do
begin
janela := getwindow(janela, gw_hwndnext);
aux := get_child_caption(Janela);
i := i+1
end;
if aux = arg then
result := Janela
else
result := 0;
end;


Responder

Gostei + 0

09/05/2006

Tolimpio

Achei a solucao so problema pessoal:

A janelinha tal vcs podem ver nesse link da microsoft, no topico, seguranca do catalogo de Endereços:

[url]http://office.microsoft.com/pt-br/assistance/HA011018701046.aspx[/url]

Realmente depois de manipula-la, a jenala esperava por uma simualcão do mouse... e a diica esta nesse site:

[url]http://www.egocrew.de/board/thread.php?threadid=5138&threadview=1&hilight=&hilightuser=0&sid=f9fa90c2d356fe4d28c6c72bf069e257[/url]

O codigo esta em VB... mas e so entendi a logica do cara, e fiz o que faltava no meu programa...........

procedure TFrmprincipal.Simula_mouse(Hwnd : integer);
var
mousepos : TPoint;
lprect : TRect;
begin
GetCursorPos(mousepos);
GetWindowRect(Hwnd, lprect);
SetCursorPos(lpRect.Left + 10, lpRect.Top + 10);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Sleep(0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
SetCursorPos(mousepos.X, mousepos.Y);
end;

Abcs a todos.......... :idea: [/code][/url]


Responder

Gostei + 0

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

Aceitar