Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andreop

WinExec não abre executavel

Recommended Posts

Olá, bom por muito tempo usei esse mesmo código e sempre foi funcional mas ontem, quando voltei a usar o Delphi (7), ele simplesmente não abre o .exe

 

Segue o código:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, XPMan, ComCtrls, TlHelp32, jpeg;

type
TForm1 = class(TForm)
Image1: TImage;
ProgressBar1: TProgressBar;
XPManifest1: TXPManifest;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

function proces---ists(exeFileName: string): Boolean;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
Result := False;
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

if proces---ists('main.exe') then
Form2.show
else
 WinExec ('"main.exe" __kogstudios_original_service__', SW_NORMAL);
Form2.show;
form1.Hide;
end; 
end. 

Tentei também com ShellExecute, mas não quer abrir, o "main.exe" abre normalmente com um .bat, o "__kogstudios_original_service__" é um parâmetro necessário para abrir. Sempre funcionou assim, não entendi o que pode ser... Tentei até mesmo adicionar apenas um button e colocar o código, porque pensei que podia ser algo no resto do código, porém deu na mesma.

Onde esta os --- no "proces---ists" é "s e x" e o fórum censurou.

 

Alguém pode me ajudar? Fiquei desde as 23:00 até as 01:00 de ontem e não tive progresso algum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O executável "main.exe" está registrado no windows ou na mesma pasta onde é executado o comando winexec? Acho que está faltando algo no seu código, como o caminho para o executável.... de todo modo, segue alguns links que podem ajudar....

 

http://www.scriptbrasil.com.br/forum/topic/152387-resolvidoinconpatible-types-no-winexec/

 

http://www.devmedia.com.br/usando-shellexecute-para-executar-aplicativos-externos/613

 

http://www.festra.com/eng/mtut01.htm

 

http://www.devmedia.com.br/forum/comando-winexec-no-delphi-7/299175

 

https://br.answers.yahoo.com/question/index?qid=20070808170001AAoEOII

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você mudou algo no ambiente? O antivirus por exemplo? Debugando o código, ele está executando corretamente sem erros? Permissão de usuário talvez? Um comando não deixa de funcionar "do nada", desde a última vez que usou sem erros e agora, o que mudou no ambiente/máquina de uso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.