Fórum Problemas com a execução de API #300151
20/10/2005
0
Gostaria de saber quem poderia me ajudar com a execução da rotina FindWindow...
Estou tentando executa-la naum naum obtenho sucesso...
Qdo eu executo de uma maneira dá certo... jah de outra... naum consigo...
O problema eh q preciso das duas maneiras.
Eis a maneira q funciona
HwndPDF := FindWindow(´´, PChar(´AdobeReader-[´+ChangeFileExt(ExtractFileName(AArquivo), ´.pdf´) + ´]´));
Uso esta para obter o handle de uma janela com um documento aberto...
Eis a q naum consigo fazer funcionar...
O handle sempre vem como 0
HwndAcrobat := FindWindow(nil, PChar(´Adobe Reader´));
preciso desta rotina para qdo eu naum tiver nenhum documento aberto. Somente a janela do acrobat...
jah tentei de outras maneiras tb...
Eis algumas delas...
HwndAcrobat := FindWindow(PChar(´Adobe Reader´), PChar(´Adobe Reader´));
HwndAcrobat := FindWindow( PChar(´Adobe Reader´), nil);
em nenhuma obtive sucesso...
se alguem puder me ajudar agradeço muito!
Estou tentando executa-la naum naum obtenho sucesso...
Qdo eu executo de uma maneira dá certo... jah de outra... naum consigo...
O problema eh q preciso das duas maneiras.
Eis a maneira q funciona
HwndPDF := FindWindow(´´, PChar(´AdobeReader-[´+ChangeFileExt(ExtractFileName(AArquivo), ´.pdf´) + ´]´));
Uso esta para obter o handle de uma janela com um documento aberto...
Eis a q naum consigo fazer funcionar...
O handle sempre vem como 0
HwndAcrobat := FindWindow(nil, PChar(´Adobe Reader´));
preciso desta rotina para qdo eu naum tiver nenhum documento aberto. Somente a janela do acrobat...
jah tentei de outras maneiras tb...
Eis algumas delas...
HwndAcrobat := FindWindow(PChar(´Adobe Reader´), PChar(´Adobe Reader´));
HwndAcrobat := FindWindow( PChar(´Adobe Reader´), nil);
em nenhuma obtive sucesso...
se alguem puder me ajudar agradeço muito!
Tiago Malveira
Curtir tópico
+ 0
Responder
Posts
20/10/2005
Massuda
Experimente pesquisar o fórum por FindWindow.
Responder
Gostei + 0
21/10/2005
Martins
[quote:e57865c597=´Tiago Malveira´]
HwndPDF := FindWindow(´´, PChar(´AdobeReader-[´+ChangeFileExt(ExtractFileName(AArquivo), ´.pdf´) + ´]´));
Uso esta para obter o handle de uma janela com um documento aberto...
[/quote:e57865c597]
Certo, essa funciona com o doc. aberto e o handle é diferente de zero, blz!
já aqui....
[quote:e57865c597=´Tiago Malveira´]
Eis a q naum consigo fazer funcionar...
O handle sempre vem como 0
HwndAcrobat := FindWindow(nil, PChar(´Adobe Reader´));
[/quote:e57865c597]
Se for mesmo só a janela do Adobe Reader aberta, sem documento o handle deveria ser diferente de zero tb.
[quote:e57865c597=´Tiago Malveira´]
preciso desta rotina para qdo eu naum tiver nenhum documento aberto. Somente a janela do acrobat...
jah tentei de outras maneiras tb...
Eis algumas delas...
HwndAcrobat := FindWindow(PChar(´Adobe Reader´), PChar(´Adobe Reader´));
HwndAcrobat := FindWindow( PChar(´Adobe Reader´), nil);
em nenhuma obtive sucesso...
se alguem puder me ajudar agradeço muito![/quote:e57865c597]
Segundo alguns testes q fiz aqui para encontrar a solução desse seu problema, consegui detectar o seguinte, se estiver aberta apenas a janela do Adobe Reader sem nenhum documento (*.PDF), o Handle informado não é igual a zero e a classe da Janela é [b:e57865c597]AdobeAcrobat[/b:e57865c597], quando vc abre um documento (*.PDF) esse documento assume o handle.
Tratando sua linha
Tente assim:
Mas lembre-se q só vai lhe retornar o [b:e57865c597]Handle[/b:e57865c597] diferente de zero se não houver nenhum documento aberto no Adobe Reader, caso haja, ele trará como retorno o zero.
Só lembrando a estrutura do FindWindow
[b:e57865c597]FindWindow(IpClassName, IpWindowName)[/b:e57865c597]
Teste mais ou menos assim:
Veja o q acontece, e depois post aqui novamente.
Boa Sorte!!!
HwndPDF := FindWindow(´´, PChar(´AdobeReader-[´+ChangeFileExt(ExtractFileName(AArquivo), ´.pdf´) + ´]´));
Uso esta para obter o handle de uma janela com um documento aberto...
[/quote:e57865c597]
Certo, essa funciona com o doc. aberto e o handle é diferente de zero, blz!
já aqui....
[quote:e57865c597=´Tiago Malveira´]
Eis a q naum consigo fazer funcionar...
O handle sempre vem como 0
HwndAcrobat := FindWindow(nil, PChar(´Adobe Reader´));
[/quote:e57865c597]
Se for mesmo só a janela do Adobe Reader aberta, sem documento o handle deveria ser diferente de zero tb.
[quote:e57865c597=´Tiago Malveira´]
preciso desta rotina para qdo eu naum tiver nenhum documento aberto. Somente a janela do acrobat...
jah tentei de outras maneiras tb...
Eis algumas delas...
HwndAcrobat := FindWindow(PChar(´Adobe Reader´), PChar(´Adobe Reader´));
HwndAcrobat := FindWindow( PChar(´Adobe Reader´), nil);
em nenhuma obtive sucesso...
se alguem puder me ajudar agradeço muito![/quote:e57865c597]
Segundo alguns testes q fiz aqui para encontrar a solução desse seu problema, consegui detectar o seguinte, se estiver aberta apenas a janela do Adobe Reader sem nenhum documento (*.PDF), o Handle informado não é igual a zero e a classe da Janela é [b:e57865c597]AdobeAcrobat[/b:e57865c597], quando vc abre um documento (*.PDF) esse documento assume o handle.
Tratando sua linha
HwndAcrobat := FindWindow(PChar(´Adobe Reader´), PChar(´Adobe Reader´));
Tente assim:
var HwndAcrobat: THandle; begin HwndAcrobat := FindWindow(PChar(´AdobeAcrobat´), PChar(´Adobe Reader´)); ListBox1.Items.Add(Format(´Handle: ¬d´,[HwndAcrobat])); end;
Mas lembre-se q só vai lhe retornar o [b:e57865c597]Handle[/b:e57865c597] diferente de zero se não houver nenhum documento aberto no Adobe Reader, caso haja, ele trará como retorno o zero.
Só lembrando a estrutura do FindWindow
[b:e57865c597]FindWindow(IpClassName, IpWindowName)[/b:e57865c597]
Teste mais ou menos assim:
var HwndPDF, HwndAcrobat: THandle; AArquivo: .....; begin HwndAcrobat := FindWindow(PChar(´AdobeAcrobat´), PChar(´Adobe Reader´)); HwndPDF := FindWindow(´´, PChar(´AdobeReader-[´+ChangeFileExt(ExtractFileName(AArquivo), ´.pdf´) + ´]´)); if HwndAcrobat <> 0 then ListBox1.Items.Add(Format(´Handle: ¬d´,[HwndAcrobat])) else ListBox1.Items.Add(Format(´Documento encontrado no Adobe o Hanlde é: ¬d´,[HwndPDF])) end;
Veja o q acontece, e depois post aqui novamente.
Boa Sorte!!!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)