Página 1 de 1
Lib Wapi
Enviado: 20 Dez 2007 13:56
por Mário Isa
A função:
getappsinfo()
me retorna uma matriz com todas as aplicações que estão rodando inclusive seus handle()
Mas se eu tiver iniciado uma aplicação assim:
START /B cmd /c executavel.exe
Com este comando uma janela não será criada porém a aplicação rodará. (a opção /B) do Start faz isso.
Tem como eu saber no handle dela ?
Mário
Enviado: 20 Dez 2007 16:21
por Pablo César
Puxa.. essa é boa Mario ! Eu nunca usei com parâmetro /B e não sei se em WIN98 tem esse mesmo parâmetro... Para quê seria esse tipo de execução ?.
Não abrindo outra sessão, fica dificil de saber se está ou qual aplicativo está sendo executado (quem sabe demostre o START em lugar do executavel.exe), mas quem poderá responder a esta questão é o Maligno... esperemos pra ver o quê ele diz...
Re: Lib Wapi
Enviado: 20 Dez 2007 21:53
por Maligno
Mário Isa escreveu:A função getappsinfo() me retorna uma matriz com todas as aplicações que estão rodando inclusive seus handle()
Mas se eu tiver iniciado uma aplicação assim:
START /B cmd /c executavel.exe
Com este comando uma janela não será criada porém a aplicação rodará. (a opção /B) do Start faz isso.
A função GetAppsInfo() foi feita para listar os
handles dos processos contidos na lista Z do Windows (a lista do Alt+TAB - o
task switcher). Se o processo não possui uma janela nesta lista Z, seu
handle não será incluído. Apesar de quê, em alguns casos especiais, a função também também inclui os
handles de outras janelas especiais, como por exemplo, o "gerenciador de programas" do Windows.
De qualquer forma, se o processo sendo disparado requerer a criação de uma janela, não adianta nada incluir o
switch /B. A janela será mostrada assim mesmo. A não ser, claro, que esta janela seja minimizada para o
tray. Aí seu
handle será omitido da lista.
Tem como eu saber no handle dela ?
Claro. Mas aí a função teria que ser totalmente refeita para recuperar os
handles de todos os processos em execução, de forma semelhante ao que o
Task Manager do XP faz. Mas isso não está nos planos. Pelo menos por enquanto.

Enviado: 20 Dez 2007 22:35
por Mário Isa
Então deixa eu explicar para quê seria tal coisa:
Criei um programinha que baixa (download) de meu servidor ftp.
A chamada da função é mais ou menos assim:
comanda:= "ftp -s:algo.txt > log.txt
!comanda
onde:
algo.txt é um arquivo com instruções ftp com comandos como mdir, mput, mdelete e etc.....
log.txt é só para demonstrar se der certo o comando.
Ocorre que, em alguns casos o processo se atravanca e nem o servidor ftp responde nada nem o windows pára o programa. E assim o negócio fica lá num loop sem fim.
Fazendo da forma que falei eu:
1) escondo a janela para que o operador não veja o que está ocorrendo.
2) Enquando a janela oculta roda, no meu prog principal conto até, digamos 15 segundos e se não der certo, com o numero handle, destruo (fecho incondicionalmente) a janela em execução com uma das funções da WAPI.
Mário
Enviado: 20 Dez 2007 23:32
por Maligno
Entendi. Mas se for só pra baixar alguma coisa, a WAPI tem função pra isso. Acabei de baixar um ZIP de 20MB por esta função. Não é por FTP, mas HTTP. Os comandos FTP (a maioria dos mais úteis) estão para serem feitos.