killappwin x programas DOS

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Mário Isa
Usuário Nível 4
Usuário Nível 4
Mensagens: 907
Registrado em: 07 Jul 2004 13:54
Localização: Ilha Solteira-sp

killappwin x programas DOS

Mensagem por Mário Isa »

Bom, como o próprio nome já diz, de uma das funções da WAPI.LIB.

Esta função só fecha janelas de programas windows?
Não fecha janelas DOS ?

Porque estou tentando fechar DOS e não fecha.
Tem alguma outra que destrói (fecha) janelas DOS ?

Mário
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Oi Mário, veja que o nome da função que você está mencionando não é da biblioteca WAPI.LIB, se por acaso houve um erro de digitação não seria KILLAPPWIN() e sim KILLWINAPP(). Vejamos como é a sintaxe e descrição dessa função:

KillWinApp(<xID>) -> nil
Fecha incondicional e imediatamente (com possível perda de dados) a aplicação identificada por <xID>. Esta identificação poderá tanto ser feita pelo "handle" (numeric) da aplicação, quanto pelo nome de seu arquivo executável (string). Neste últmo caso, o nome poderá ser informado no todo (com/sem extensão) ou mesmo em parte. Na eventualidade de existir mais de uma instância da mesma aplicação, todas serão fechadas. Como já dito, qualquer dado não gravado será perdido.
Não sei como você está procendo na execução desta função, mas acredito que não haveria problema algum (ora porque eu ja testei e sei que funciona, seja modo janelado ou em modo TELA-INTEIRA), se é isso ao que você se refere. Com certeza você estaria precisando fecha uma SEGUNDA sessão que está aberta e não a sessão CORRENTE (entende-se como corrente: aquela em que você está ativa). Teria outra forma de usar essa mesma função na linha de comando, mas antes de executar qualquer dessas duas formas, você DEVE pegar ANTES o HANDLE da sessão que você precisa fechar. Como dizia, você pode usar na linha de comando, veja o que diz a descrição:

-KILLAPPLICATION:<handle>[;<fileName>]
Provocar o encerramento da aplicação vinculada ao <handle> informado ou, se informado o <fileName>, serão fechadas todas as aplicações originadas deste executável.
OBS1: Se informado, <fileName> poderá ser um nome completo ou parcial, sempre sem path.
OBS2: Os argumentos são exclusivos. Ou seja, se existir o argumento <fileName> ele será o único a ser utilizado, mesmo que também seja informado o <handle>. E neste caso o valor de <handle>, se existir, será desconsiderado.
OBS3: A(s) aplicação(ões) será(ão) fechada(s) imediatamente, sem qualquer tipo de aviso ou espera. Ou seja, quaisquer dados, ainda pendentes de gravação, serão perdidos.
Aconselho você fazer um teste na linha de comando apenas para experimentar, mas claro, antes você precisa saber o HANDLE da sessão em que vai matar. Você pode usar GETMYHANDLE ou GETAPPSINFO para gravar o HANDLE em arquivo e mais tarde abrir esse arquivo texto que contém o HANDLE e mandar fechar.

Essas funções você pode usar tanto em modo interativa através da WAPI.LIB (direto no Clipper) como na linha de comando com WAPI.EXE. Lembre sempre que o arquivo WAPI.EXE DEVE estar disponível (isto é na diretório) onde está seu sistema.

Tiver mais alguma dúvida, Mário: poste como é que você está utilizando o/a WAPI e o erro que está ocorrendo. Hoje estou indo para a serra da Graciosa, comer um churrasquinho com a familia (estamos em clima de fim de ano), mas quando eu puder respondo, qualquer coisa está o Leonardo que vejo que ele está na ativa.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: killappwin x programas DOS

Mensagem por Maligno »

Mário Isa escreveu:Bom, como o próprio nome já diz, de uma das funções da WAPI.LIB.

Esta função só fecha janelas de programas windows?
Não fecha janelas DOS ?

Porque estou tentando fechar DOS e não fecha.
Tem alguma outra que destrói (fecha) janelas DOS ?
Essa função KillWinApp(xID) (acho que você errou ao digitar o nome, não?) fecha qualquer programa que esteja em execução. Você precisa apenas informar o handle desta aplicação ou o nome do seu executável. Se informar o nome e o programa tiver várias instâncias executadas, todas elas serão fechadas. E funciona direitinho. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder