Abrir exe
Olá, fiz um programa de bloqueio de conteúdo, para net, programas e tudo mais, funcionando filé, só que raramente, por alguns erros ele fecha, ai estou criando um serviço pra vigiá-lo, tipo de minuto em minuto verificar se está aberto, até ai tudo bem, mas na hora de chamar o exe pelo serviço não consigo, o winexec não funciona, se alguém tiver alguma idéia agradeço...
Desde já obrigado.
Desde já obrigado.
Silveriosepulveda
Curtidas 0
Respostas
Woinch
05/02/2009
Você já tentou debugar o serviço para ver se não está com algum problema? Antes que gere algum tipo de excessão e não execute o WinExec? Caso sim, já tentou utilizar o comando ShellExecute da unit ShellAPI?
Abraços...
Abraços...
GOSTEI 0
Silveriosepulveda
05/02/2009
Olha, estamos tratando de um Service Aplication, em uma aplicação normal, eu testo a linha de comando com winexec e funciona, da mesma forma dom shellapi, só que no serviço não funciona, não abre o exe.
Valeu pela atenção.
Valeu pela atenção.
GOSTEI 0
Prgdelphi
05/02/2009
Quando você chama o exe a partir do serviço você está informando o seu caminho completo ou somente o nome do executável.
Um problema que eu sei que acontece é esse, quando você vai chamar um exe a partir de um serviço do windows você tem que especificar o caminho completo do arquivo, mesmo que esteja na mesma pasta que o exe do serviço.
[]s
Um problema que eu sei que acontece é esse, quando você vai chamar um exe a partir de um serviço do windows você tem que especificar o caminho completo do arquivo, mesmo que esteja na mesma pasta que o exe do serviço.
[]s
GOSTEI 0
Paullsoftware
05/02/2009
Essa função executa um outro exe e fica aguardando sua finalização para continuar a execução, sendo assim, vc pode adapitar as suas necessidades!
faça o teste...
veja que a mensagem só será exibida quando finalizar a calculdadora do windows, eu uso essa rotina num gerenciador...
agora vem o pedido, tem como vc me enviar um exemplo de uso desse seu sistema, estou sofrendo muito aqui na empresa com a kralera acessando tudo que não presta, manda um exemplo ai pro meu email, por favor mando: paullsoftware@gmail.com desde já te agradeço :wink:
function ExecExterno(const FileName, Params: string; const WindowState: Word): boolean;
var
SUInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CmdLine: string;
begin
{ Coloca o nome do arquivo entre aspas. Isto é necessário devido aos espaços contidos em nomes longos }
CmdLine := ´"´ + Filename + ´"´ + Params;
FillChar(SUInfo, SizeOf(SUInfo), #0);
with SUInfo do begin
cb := SizeOf(SUInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WindowState;
end;
Result := CreateProcess(nil, PChar(CmdLine), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo);
{ Aguarda até ser finalizado }
if Result then begin
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
{ Libera os Handles }
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;faça o teste...
if ExecExterno(´c:\windows\system32\calc.exe´,´´,SW_NORMAL) then ShowMessage(´continuando...´);
agora vem o pedido, tem como vc me enviar um exemplo de uso desse seu sistema, estou sofrendo muito aqui na empresa com a kralera acessando tudo que não presta, manda um exemplo ai pro meu email, por favor mando: paullsoftware@gmail.com desde já te agradeço :wink:
GOSTEI 0