Fórum Problemas com Windows 2003 #292912
24/08/2005
0
estou com um problema no Windows 2003, fiz um programa e quando tento executa-lo no Windows 2003 o programa não abre. O programa foi feito no Delphi 7 Windows 98. Alguem sabe como resolver este problema :?:
T+
Wcsilva
Curtir tópico
+ 0Posts
25/06/2008
Andremuller
Pesquisando pela solução no fórum achei seu tópico. Estou passando pelo mesmo problema.
No Windows 2003 server a aplicação entra no Task Manager mas cai fora sem dar nenhuma mensagem de erro. A tela inicial nem pisca.
Em outros sistemas operacionais isso não acontece.
Olhando nos eventos do ´Computer Manager´ (dentro de administrative tools) só aparece que:
Faulting application MinhaAplicacao.exe, version 0.0.0.0, faulting module kernel32.22, version 5.2.3790.0, fault address 0x000249d3
Você conseguiu resolver isso ou alguém sabe.
desde já obrigado
Gostei + 0
25/06/2008
Andremuller
Isso acontece quando o erro da aplicação ocorre entre o Application.Initialize e o Application.Run
Isso faz com que o 2003 encerre a aplicação sem exibir a mensagem de erro.
Como eu fiz para ver a mensagem.
Eu coloquei toda inicialização da aplicação dentro de uma procedure no fonte do projeto. Então fica algo parecido com:
If ParamStr(2) <> ´-TryEx´ then begin ExecutarAplicacao(); else try ExecutarAplicacao(); except on E: Exception do SalvaStringToFile(E.Message); end;
agora eu vejo qual erro está dando problema no 2003 dentro do arquivo gerado.
Gostei + 0
25/06/2008
Daykas
só isso.
Gostei + 0
25/06/2008
Andremuller
Mas como é windows 2003 o erro não era exibido em nenhuma mensagem. Com o código postato em meu reply anterior eu consegui ler o erro e corrigir o problema.
O maior problema é que, se tu não sabe dessa peculiaridade do 2003, tu fica preso com um sistema que simplismente não carrega sem exibir mensagens.
Mas obrigado pela dica, se acontecer denovo, sem a aplicação gerar erros entre o Initialization e o Run, vou usar a sua dica.
Gostei + 0
11/08/2009
Helio Nascimento
Revivi este tópico porque estou com o mesmo problema. Um sistema que roda a + de 3 anos em windows xp, e agora em um novo cliente que possui o windosw server 2003 como servidor, não roda e não dá mensagem.
Qual foi a sua solução para este caso?
Fico no aguardo.
Obrigado/Hélio
Gostei + 0
12/08/2009
Andremuller
Se você olhar o wcsilva criou o tópico em 2005. Eu, como tinha o mesmo problema, aproveitei o tópico em 2008 e resolvi o problema.
Dê uma olhada no meu post
Perdi alguns dias para resolver o problema.
Se você não entender o código que eu criei posso te passar mais detalhes, mas basicamente eu pego a exceção entre o Application.Initialize e o Application.Run e salvo em um arquivo já que a aplicação não mostra a mensagem.
Gostei + 0
12/08/2009
Helio Nascimento
Se vc puder me enviar o trecho destas procedures do seu sistema, ficará bem melhor pois a outra funçao(SalvaStringToFile) não é mencionada os detalhes. Ficaria imensamente grato, pois estou tentando resolver = a maluco.
Aproveito a oportunidade para pedir-lhe informações sobre componentes de terceiros tais como JVCL e RX Lib - Eu uso em alguns forms.
Obrigadão.\Hélio
Gostei + 0
12/08/2009
Andremuller
Criei uma aplicação nova com a ideia que falo. De você gerar a exceção entre o Initialize e o Run em arquivo.
A única coisa que você precisa fazer é abrir o fonte do seu DPR, colocar todo código entre um Try Except e salvar o resultado da exceção em arquivo.
Assim você vai conseguir ver no arquivo a Exceção que o Win2003 está gerando, mas não está mostrando para você. Então você resolve o problema e pode tirar o tratamento de exceção.
program Project1;
uses
Forms,
Classes,
SysUtils,
Unit1 in ´Unit1.pas´ ;
{$R *.res}
var
oSl: TStringList;
begin
try
Application.Initialize;
Application.CreateForm(TForm1, Form1);
raise Exception.Create(´Exemplo de uma mensagem de erro.´);
Application.Run;
except
on E: Exception do
begin
oSl := TStringList.Create();
try
oSl.Text := E.Message;
oSl.SaveToFile(´C:\LogErro.txt´);
finally
oSl.Free();
end;
end;
end;
end.Gostei + 0
12/08/2009
Helio Nascimento
Andre. Não funfou. Coloquei o trecho como vc disse e não deu certo.
O Arquivo ´C:\LogErro.Txt´, não foi localizado no C:\ do Windows Server 2003. Estou acessando com permissão total.
Será que tenho que registrar as DLL´s ? - Tem alguma a ver - Eu instalei manualmente. Não utilizei instalador tipo Install Shield.
Continua sendo acessado e silenciosamente sai sem msg. - Se vc acompanhar pelo Task Mananger - vc visualiza a hora que o executável
entra fica alguns segundos e depois sai.
Gostei + 0
12/08/2009
Andremuller
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)