Boa noite;dia pessoal... Estou com problemas aqui numa rotina para fechar uma janela que aparece após inserir um PenDrive. Meu programa detecta quando um PenDrive é inserido e faz diversas coisas, uma delas é tentar fechar esta janela do Windows Explore que é aberta.
Tentei assim...: procedure exemplo; var _h : hwnd; _Drive : String; begin Drive := 'E:'; // Capturando por uma rotina de detecção, o retorno é este mesmo. __repeat ___h := FindWindow(nil, PChar('Disco removível (' + Drive + ')')); ___Application.ProcessMessages; __until h > 0; SendMessage(h, WM_CLOSE, 0,0); end; // Já tentei com PostMessage e também não funciona, a diferença de Post para Send // é que um espera o retorno e o outro não espera. // Alguém teria alguma outra solução? // De alguma forma, a var "h" recebe um valor pois está passando do until, mas noto // que a janela está abrindo um tempo depois e o comando SendMessage não espera // esse tempo e já manda fechar logo. Ia até colocar um Timer e esperar mais um pouco // mas cada computador tem seu tempo de processo, um pouco antes ou um pouco // depois, queria algo que ficasse num loop esperando a janela aparecer para depois // fecha-la, mas preciso que seja uma coisa rápida para não ficar na frente da aplicação. Aguardo qualquer sugestão. Grato