Fórum WinExec Caminho Variável #232866

17/05/2004

0

Senhores, estou tentando utilizar o WinExec porém só consegui utiliza-lo com caminho estático. Gostaria de saber como utiliza-lo através de um caminho contido em uma variável ou edit. encontrei este comando aqui no forum porém nao funcionou. Uso XP e 3KServer, como posso fazer?

Codigo encontrado aqui no Forun: WinExec(Pchar(Edit.text), SW_SHOW);


Muito obrigado :oops:


Aurino003

Aurino003

Responder

Posts

18/05/2004

Paulo_amorim

Olá

Ele não funciona com o PChar?
Dá erro ou simplesmente não abre?

Sempre usei o Pchar com o Win2k e funciona..

Dá uma explicada ae...
Até+


Responder

Gostei + 0

18/05/2004

Aurino003

Obrigado pela força!

Com este código nada acontece (nenhum erro), simplesmente não finciona!

O que é que pode estar acontecendo?


Valeu! :)


Responder

Gostei + 0

18/05/2004

Vinicius2k

Colega,

Correndo o risco de parecer bobo, mas a linha de comando a ser executada presente do Edit está correta ?
Tente executar algo bem sismples, tipo c:\windows\notepad.exe...

T+


Responder

Gostei + 0

18/05/2004

Nerdex

verifique se vc incluiu - shellapi no seu uses...

... pode ser?


Responder

Gostei + 0

18/05/2004

Aurino003

Caros colegas, Vinícius2K e NerdeX

A linha a ser executada e a abaixo mostrada e a shellapi foi corretamente declarada.

Winexec(´C:\WINDOWS\EXPLORER.EXE /n,C:\Documents and
Settings\Escritorio Executivo´,sw_showNormal);

Obs. o código funciona se executado de maneira estática (colocada diretamente no onclique do botão.

como resolvo?

Obrigado :oops:


Responder

Gostei + 0

19/05/2004

Andcarpi

tente isso:

procedure TfrmPrincipal.btnEditaCClick(Sender: TObject);
Var
a: Array[0..1024] of Char;
begin
if edit1.text <> ´´ then begin
strpcopy(a, edit1.text);
ShellExecute (0, Nil, a, nil, Nil, SW_ShowNormal);
end else
showmessage(´Nada digitado´);
end;

deve funcionar!


Responder

Gostei + 0

19/05/2004

Vinicius2k

aurino003,

Testei mais algumas vezes, fixo e com o conteúdo no TEdit... funciona perfeitamente...

Só tem um detalhe... por acaso vc não está colocando o conteúdo do TEdit entre aspas simples (´linha a executar´) ? se estiver, remova as aspas... colocando as aspas eu consegui simular o seu problema... a linha do WinExec tem que ser idêntica ao q vc digitaria no ´Iniciar->Executar´...

PS : a ShellAPI não é necessária ao WinExec, apenas ao ShellExecute...

Espero ter ajudado...
T+


Responder

Gostei + 0

19/05/2004

Aurino003

aurino003, Testei mais algumas vezes, fixo e com o conteúdo no TEdit... funciona perfeitamente... Só tem um detalhe... por acaso vc não está colocando o conteúdo do TEdit entre aspas simples (´linha a executar´) ? se estiver, remova as aspas... colocando as aspas eu consegui simular o seu problema... a linha do WinExec tem que ser idêntica ao q vc digitaria no ´Iniciar->Executar´... PS : a ShellAPI não é necessária ao WinExec, apenas ao ShellExecute... Espero ter ajudado... T+


Obrigado amigo, você está correto, fucionol perfeitamente,

Muito obrigado


Um abraço


Responder

Gostei + 0

19/05/2004

Aurino003

tente isso: procedure TfrmPrincipal.btnEditaCClick(Sender: TObject); Var a: Array[0..1024] of Char; begin if edit1.text <> ´´ then begin strpcopy(a, edit1.text); ShellExecute (0, Nil, a, nil, Nil, SW_ShowNormal); end else showmessage(´Nada digitado´); end; deve funcionar!


Caro Andcarpi,

Muito obrigado pelo código,

Funciona perfeitamente,

Um abraço

Valleu

Aurino


Responder

Gostei + 0

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

Aceitar