Fórum Erro no WINEXEC #291908

16/08/2005

0

No meu sistema, há uma parte onde eu chamo programas externos, funciona beleza na parte de windows, como calculadora,,, config de video ou algum outro aplicativo windows, porem preciso que ele chame tbem um programinha no DOS, mas nao ta dando certo. tenho o atalho dele no meu computador, mas se eu coloco o endereco que ta neste atalho ele nao entra, bom, começa a entrar, aparece duas frases falando que o programa é feito em clipper e fecha a tela do DOS, mas nao entra no programa. E com o atalho ele entra normal !!! :( ,, estou usando o winexec, será que alguem ja teve este problema ?


Geisonc

Geisonc

Responder

Posts

16/08/2005

Geisonc

pesquisando por outro nome, encontrei e consegui fazer com este codigo.


///


Declare dentro de
interface
Uses
ShellApi


Public

procedure ExecutaApp(Nome,State,NomeExec,Path:Pchar;Estado:Integer


implementation

procedure TFrmPrin.ExecutaApp(Nome,State,NomeExec,Path:Pchar;Estado:Integer);
//
// Executa um aplicativo somente se ele não estiver aberto, caso
// contrário apenas chama-o
//
// Valores para Estdo: SW_SHOWNORMAL Janela em modo normal
// SW_MAXIMIZE Janela maximizada
// SW_MINIMIZE Janela minimizada
// SW_HIDE Janela Escondida
//
// Veja um exemplo de como chamar a calculadora do Windows
//
// ExecutaApp(´CALCULADORA´,´OPEN´,´CALC.EXE´,´C:\WINDOWS´,8);
//
// Onde ´CALCULADORA´ é o nome da janela do aplicativo
//
var
TheWindows: HWND;
begin
theWindows := FindWindow(NIL,Nome);
if TheWindows <> 0 then
begin
SetForegroundWindow(TheWindows)
end
else
begin
if (Estado > 3) or (Estado < 1) then
begin
Estado := 1;
end;
ShellExecute(Application.Handle,State,NomeExec,NIL,Path,Estado);
end;
end;


este é o Procedimento ...
depois é vc criar um botão e com evento OnClick associando o evento ao procedimento ex:


procedure TFrmPrin.CalculadoraClick(Sender: TObject);
begin
ExecutaApp(´CALCULADORA´,´OPEN´,´CALC.EXE´,´C:\WINDOWS´,8);
end;


Responder

Gostei + 0

16/08/2005

Rjun

Você poderia usar o ShellExecute e executar o proprio atalho.

ShellExecute(Application.Handle, nil, PChar(´C:\Documents and Settings\usuario\Desktop\Aplicacao.lnk´), nil, nil, SW_SHOWNORMAL);



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar