Página 1 de 1
o comando killapplication da WAPI.exe
Enviado: 15 Fev 2008 22:54
por Mário Isa
Com ele não estou conseguindo fechar uma JANELA DOS.
Vejam a cópia da tela:
P:\Mario\Unid_C\STALT\NEW_VER>explorer .
P:\Mario\Unid_C\STALT\NEW_VER>wapi -getappsinfo:sysinfo.txt
P:\Mario\Unid_C\STALT\NEW_VER>type sysinfo.txt
3604746,1-Prompt de comando XP - wapi -getappsinfo:sysinfo.txt
2032964,STOQZ.EXE
197168,NEW_VER
264970,MS-DOS Editor
1900630,SCHOOL.PRG - Bloco de notas
327752,Program Manager
P:\Mario\Unid_C\STALT\NEW_VER>wapi.exe -KILLAPPLICATION:2032964
Comando executado sem sucesso. A janela continua aberta. Ela é um programa DOS.
P:\Mario\Unid_C\STALT\NEW_VER>wapi.exe -KILLAPPLICATION:2032964
Aqui vou tentar pela 2ª vez porém sem sucesso.
Mário
Enviado: 15 Fev 2008 23:05
por Pablo César
Engraçado, Mario, comigo funciona que uma beleza !. Qual seria o seu SO ?. Experimente colocar o nome da aplicação (sem path algum). Seria bom que este tópico seja postado lá no
tópico do WAPI, assim fica centralizado toda informação sobre o WAPI.
Enviado: 16 Fev 2008 01:00
por Mário Isa
Então, sinceramente, quanto a este comando
KILLAPPLICATION:nhandle
esse vou ter que desistir dele mesmo.
Os outros funcionam legal... mas este :'(
Enviado: 16 Fev 2008 11:39
por Maligno
Já sei mais ou menos o que aconteceu: com o Pablo funciona porque ele usa o Windows 98 e com você não funciona porque é Windows XP. Acertei?
Pois é. Acontece o seguinte: subestimei a coisa e testei apenas com programas GUI no XP. Achei que com DOS seria uma barbada. Acontece que a aplicação DOS executada cria uma árvore de processos.
Para efeito ilustrativo, abra manualmente uma sessão DOS. Aparecerá no gerenciador de tarefas (Ctrl+Alt+Del) o processo CMD.EXE. Agora abra um programa DOS qualquer. Aparecerá mais o processo NTVDM.EXE. Sacou o esquema da árvore? Mate o NTVDM e veja que seu CMD volta e o prompt fica disponível. Agora, se você matar apenas o CMD, nada acontece, assim como na função KILLAPPLICATION. Mas se sair da aplicação, ao invés de ter o prompt de volta, a janela some. Isso porque o processo inicial não existe mais. É isso o que está acontecendo com a função KILLAPPLICATION.
Solução existe. Aliás, duas. A primeira é terminar o processo do jeito mais correto. Note que o comando KILLAPPLICATION mata uma aplicação GUI da forma mais violenta possível, sem chance de qualquer interação com o usuário. Isso não é exatamente a forma mais aconselhável, uma vez que processos internos, alocações, cargas, etc. podem se perder no limbo do Windows. O mais correto seria enviar uma mensagem interna à aplicação, seja de que tipo for, informando que ela deve ser encerrada. Só que aí, em sessões DOS, aparecerá aquela janela no meio da tela pedindo a confirmação da saída do programa.
O segundo método é matar toda a árvore de processos. Aí sim, a coisa morre de vez.

))
Problema: às 5 da manhã formatei minha máquina e ainda estou carregando tudo. Então não vai dar pra mexer nisso agora. Vai acabar ficando pra segunda ou terça.
Enviado: 16 Fev 2008 12:16
por Mário Isa
Mas creio que, seu eu "matar" a NTVDM, estarei finalizando também outros processos que a NTVDM está rodando, estou certo ?
Mário
Enviado: 16 Fev 2008 12:26
por Maligno
Pelo nome? Sim e não. Se matar o NTVDM.EXE, todas as janelas DOS voltarão ao prompt. Mas as janelas ainda estarão lá. Mas se em seguida matar o CMD.EXE, aí sim, o último "elo" morre e as janelas sumirão. Isso inclui a do programa onde o WAPI estiver sendo executado.
Enviado: 16 Fev 2008 13:21
por Mário Isa
Bom, façamos o seguinte:
Porque que eu precisava fechar esta janela :
Porque ela está executando comandos FTP do DOS.
Ocorre que, durante a transmissão de alguns arquivos o FTP.EXE para e preciso fechar a janela para iniciar uma outra FTP, já que a primeira travou ou parou a transmissão.
Por ora eu mudei, pedi para o programa dar uma pausa me avisando para fechar "manualmente" a janela FTP. E daí, ele mesmo, o programa, percebe que já não há mais uma janela FTP, já que foi eu que fechei, e inicia outra.
E depois, vou migrar este pequeno programinha para o xHarbour e fazer comandos FTP com ele. E assim será resolvido meu problem.
Mário
Enviado: 18 Fev 2008 10:15
por Pablo César
Interessante a sua dedução benemérito Maligno ! Eu provavelmente eu tenha testado em WIN98. Mas evito a utilização desse KILLAPPLICATION, visto que tal interrupção de seção pode causar algun inconvenientes, mas deve ter sido isso.
Mário, ja tentou usar os comandos FTP dentro de uma BATCH a qual esta seja chamada através do STAR /W ? E outra coisa, daria para gravar em um arquivo todo o resultado obtido pelo comando FTP, ja tento isto também ?
Mário e Maligno, não seria conveniente solicitar aos moderadores para anexar este tópico no tópico atual do WAPI ?. Assim ficaria o assunto englobado num só lugar. Visto que ainda o WAPI, está sendo melhorado.
Enviado: 18 Fev 2008 12:06
por Mário Isa
Já descobri o que fazer:
Vou compilar o .EXE que faz a transferencia pelo xharbour e, sendo ele agora, um 32 bits. o killapplication consegue fechar ele.
Mário
Enviado: 18 Fev 2008 12:13
por Maligno
Pablo César escreveu:não seria conveniente solicitar aos moderadores para anexar este tópico no tópico atual do WAPI ?.
Não vejo necessidade. É algo simples.
Enviado: 18 Fev 2008 12:14
por Maligno
Mário Isa escreveu:Vou compilar o .EXE que faz a transferencia pelo xharbour e, sendo ele agora, um 32 bits. o killapplication consegue fechar ele.
Se for console, o problema continuará o mesmo.

Enviado: 18 Fev 2008 12:20
por Pablo César
Maligno escreveu:Se for console, o problema continuará o mesmo.
Uhmmm também acho.
Quanto aos comentários sobre as funções do WAPI, seria bom centralizar. Se bem Maligno que você lê tudo.
Enviado: 18 Fev 2008 23:04
por Maligno
Essa discussão (e o erro) teve sua utilidade. Resolvi corrigir essa função KILLAPPLICATION e adicionar outra, equivalente: CLOSEAPPLICATION, que matará as aplicações da forma canônica: emitindo uma mensagem de fechamento para a aplicação, conforme sugere a Microsoft.
Enviado: 19 Fev 2008 09:09
por Pablo César
Maligno escreveu:Essa discussão (e o erro) teve sua utilidade
Com certeza ! As vezes até parece que estamos reclamando ou criticando apenas, mas para que um produto possa ser melhorado, depende sempre como é testado e acumular o maior conteúdo de informações possíveis. Por isso eu dizia de centralizar e que este tópico seja anexado ao do WAPI.
Eu estou muito agradecido com a sua criação Maligno e a seu desprendimento, pois o/a WAPI está me ajudando muito e sei que toma muito o seu tempo para apresentar-nos um produto de altissima importância e de uma altissima qualidade.
Ficarei esperando o próximo release do WAPI, gostaria muito de saber se você obteve algum resultado sobre aquela questão que assombra todos nós, para verificar se a sessão está em modo janelado ou tela-cheia. Sei que você não poderia esquecer, mas queria saber se deu em algo aquela indicação onde você:
https://pctoledo.org/forum/viewto ... 6861#36861 ia dar uma olhada.
Enviado: 19 Fev 2008 10:28
por Maligno
Pablo César escreveu:gostaria muito de saber se você obteve algum resultado sobre aquela questão que assombra todos nós, para verificar se a sessão está em modo janelado ou tela-cheia.
Não vi ainda. Aliás, estou terminando de reinstalar meu HD só hoje. E há muitas outras coisas na fila. Como esse problema é mais complicado, acaba ficando pra trás. Mas não está esquecido.
