Página 2 de 4

Enviado: 01 Nov 2007 00:43
por clodoaldomonteiro
Malígno!

Dá prá usar esse recurso sem precisar compilar a lib junto do sistema, usar por fora?

Enviado: 01 Nov 2007 03:40
por Maligno
Dá. É só montar um EXE à parte ou então usar o WAPI.EXE (leia o fonte WAPI.C para saber como usar os switches). Mas não creio que seja vantagem.

Enviado: 01 Nov 2007 08:21
por Pablo César
Eu acho que o Clodoaldo quiz dizer utilizar essa função sem precisar compilar. Eu diria que é perfeitamente possível e até mesmo mais simples e prático, principalmente quando acontece algum erro de compilação. Não que esses erros não possam ser solucionados.

Faça um arquivo .BAT para chamar a sua aplicação, só que antes coloque o WAPI.EXE com tal comando antes de chamar a sua aplicação, assim:

Código: Selecionar todos

@ECHO OFF
WAPI -SETBUTTONX:OFF
rem WAPI -SETBUTTONX:DEL ou assim se deseja fechar a sessão logo a seguir. SETUP
Obs.: A opção DEL remove definitivamente o "x" da sessão e não deixa recuperá-lo novamente. Mas essa é uma opção muito válida, se de fato você irá executar algum procedimento e fechar imediatamente a sessão.

Bem simples e prático de utilizar o WAPI.EXE diretamente na linha de comando.

Enviado: 01 Nov 2007 08:46
por Maligno
Eu acho que o Clodoaldo quiz dizer utilizar essa função sem precisar compilar.
Mas foi isso o que eu quis dizer: usar o WAPI.EXE diretamente. Mas ainda não acho vantagem.

Enviado: 01 Nov 2007 09:17
por Pablo César
Por quê, Maligno ?

Enviado: 01 Nov 2007 09:21
por Maligno
A biblioteca de abstração existe justamente pra facilitar tanto a execução como o tratamento de um eventual retorno. Pra quê sofrer à toa? E pior: pra quê correr o risco de passar um parâmetro errado ou esquecer de incluir uma vírgula ou um parâmetro obrigatório? :)

Enviado: 01 Nov 2007 09:38
por Pablo César
Ahh mas isso é outra questão. Eu me referia a utilização pela linha de comando, utilizando um arquivo .BAT
pra quê correr o risco de passar um parâmetro errado
Neste caso o programador se errar... simplesmente não irá funcionar. Acho que ninguém iria apresentar algo, sem testar, não acha ?

Mas retornando a minha questão, eu acho que é perfeitamente possível o uso do WAPI.EXE do que a WAPI.LIB tratando-se de certos casos, é claro.

Enviado: 01 Nov 2007 09:44
por Maligno
Neste caso o programador se errar... simplesmente não irá funcionar. Acho que ninguém iria apresentar algo, sem testar, não acha ?
Claro. Mas se na biblioteca já está tudo testado, não vejo motivo que justifique testar de novo usando pela linha de comando. :)
Mas retornando a minha questão, eu acho que é perfeitamente possível o uso do WAPI.EXE do que a WAPI.LIB tratando-se de certos casos, é claro.
Em que caso, pela linha de comando, fica mais fácil, prático ou rápido?

Enviado: 01 Nov 2007 09:47
por Pablo César
Em que caso, pela linha de comando, fica mais fácil, prático ou rápido?
Nesta por exemplo. Na indicação que eu fiz para o Clodoaldo, por exemplo.

Enviado: 01 Nov 2007 11:21
por sygecom
clodoaldomonteiro escreveu:Malígno!

Dá prá usar esse recurso sem precisar compilar a lib junto do sistema, usar por fora?
Vc por acaso quer usar no xharbour ? se sim, pode compilar a rotina em C da Wapi para fazer isso.

Enviado: 01 Nov 2007 13:05
por Maligno
Pablo César escreveu:
Em que caso, pela linha de comando, fica mais fácil, prático ou rápido?
Nesta por exemplo. Na indicação que eu fiz para o Clodoaldo, por exemplo.
E por quê neste caso específico fica mais fácil, se com a WAPI.LIB você apenas executa uma simples função com um argumento? Executar diretamente o WAPI.EXE é bem mais trabalhoso. Acho realmente uma perda de tempo. Fazendo assim, você dispensa o que há de melhor numa biblioteca de abstração: comodidade e tempo.

Enviado: 01 Nov 2007 13:06
por Maligno
sygecom escreveu:Vc por acaso quer usar no xharbour ? se sim, pode compilar a rotina em C da Wapi para fazer isso.
Desde que se faça a devida adaptação para a interface do XHarbour.

Enviado: 01 Nov 2007 17:12
por sygecom
Maligno escreveu:
sygecom escreveu:Vc por acaso quer usar no xharbour ? se sim, pode compilar a rotina em C da Wapi para fazer isso.
Desde que se faça a devida adaptação para a interface do XHarbour.
Simples, abaixo uns exemplos da WAPI.

Código: Selecionar todos

#pragma BEGINDUMP

#include "windows.h"
#include "shlobj.h"
#include "hbapi.h"
#include "math.h"
#include "hbvm.h"
#include "hbstack.h"
#include "hbapiitm.h"
#include "hbapigt.h"

HB_FUNC ( SHOWTASKBAR )      //Habilita o botao INICIAR
{
  HWND hWnd = FindWindow("Shell_TrayWnd", "");

  ShowWindow( hWnd, 1 );
}

HB_FUNC ( HIDETASKBAR )     //Desabilita o botao Iniciar
{
  HWND hWnd = FindWindow("Shell_TrayWnd", "");
  ShowWindow( hWnd, 0 );
}

HB_FUNC ( PISCA_EXE )      // VAI PISCAR O SEU EXE NA BARRA
{
    HWND  Handle = GetForegroundWindow();
    FlashWindow(Handle,TRUE); // VAI PISCAR O SEU EXE NA BARRA
    Sleep(300);    // TEMPO DE ESPERA
}

HB_FUNC ( TIRA_X )        // DESABILITA O X da janela
{
    HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);
    EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);
}
#pragma ENDDUMP

Enviado: 01 Nov 2007 17:34
por Maligno
Sim, eu sei. É isso mesmo: bem simples mesmo.

Enviado: 04 Nov 2007 16:55
por Mário Isa
E eu? :(
É que eu havia perguntado uma coisa lá atrás.
Alguém pode me ajudar ? :%