Fórum Executar/terminar teclado no ecran #155886

26/04/2003

0

ôi pessoal,
necessito de executar o teclado no ecrãn
ShellExecute(Self.Handle, ´open´, ´osk.exe´, ´´, nil, SW_SHOW);

e depois necessito de saber se ´osk.exe´ está a rodar e fecha-lo.

Atenção não posso controlar se o osk.exe está a rodar a travês da tecnica de saber se a janela de nome ´teclado no ecrã´ está aberta pois só funciona numa lingua.

Obrigado


Espiridiao

Espiridiao

Responder

Posts

26/04/2003

Cac2000

Caro amigo:

A função da API do Windows FindWindow pede dois parametros:

1) Nome da Classe: PChar
2) Nome da Janela: PChar

Tu podes usar um [b:da8de1e79f]ou[/b:da8de1e79f] outro parâmetro. Isto significa que se tu usares somente o primeiro parâmetro, o Nome da Janela tu podes passar NULL.

Ah, já ia esquecendo. O Nome da Classe do OSK é OSKMainClass.
Como eu descobri? Usando o utilitário WinSight32 que vem com o próprio Delphi e quase ninguem usa.

Obs: Ecran aqui no Brasil chamamos de Vídeo


Responder

Gostei + 0

26/04/2003

Espiridiao

Graças ao amigo cac2000, consegui fazer o que pretendia e aprendi algumas coisas que me vão fazer muita falta, por isso queria agradecer-te cac2000, [i:62629ef175]valeu[/i:62629ef175]!
O winsight32 é realmente muito completo para se saber o que está a rodar no nosso computador, está em ..Borland\delphi\bin\ws.exe
Na informação enviada pelo cac2000 a classe não era aquela (pelo menos no meu W2K SP2) o winsight32 devolveu MainKb.
Em resumo a grande quantidade de código para se saber se o teclado no video :wink: está a funcionar é a seguinte:
..
var
  iDum:integer;
begin
    iDum:=FindWindow(´MainKb´,nil);
  showmessage(´result: ´ + inttostr(iDum)); 
..

a variavel [color=blue:62629ef175]idum[/color:62629ef175] devolve o handle atribuido á janela do osk.exe, se for 0 o osk.exe não está a rodar.

Para terminar deixo um link de um site de um senhor que dá conferencias:[url]http://www.blong.com/ [/url]
Obrigado


Responder

Gostei + 0

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

Aceitar