TEF - Teste de desligar o computador
05/08/2008
0
Para verificar se houve desligamento do micro durante uma transação TEF, eu crio um arquivo antes de iniciar a impressão (TEF.TXT) e, ao abrir o programa, verifico se o arquivo existe e caso positivo, mando o NCN.
O problema q estou enfrentado é q às vezes o arquivo some da pasta onde foi criado.
Se faço os testes com CTRL+ALT+DEL, sempre dá certo, mas se desligo o micro, às vezes ocorre do arquivo não estar lá, apesar de eu ter a certeza que ele foi criado.
Alguém já passou por esta situação ?
Estou trabalhando com Delphi 7 e Windows XP SP2.
Segue abaixo o trecho de código onde crio o arquivo:
AssignFile(cArquivo, ´TEF.TXT´); ReWrite(cArquivo); WriteLn(cArquivo, ´1´); CloseFile(cArquivo); while not FileExists(´TEF.TXT´) do Sleep(1000);
Agradeço a atenção dos colegas,
Marcello.
Marcello
Posts
05/08/2008
Wdrocha
É melhor e mais seguro....vc pode usar por exemplo....
cArquivo.SaveToFile(´Destino\NomeArquivo.Txt´);
Fica aew a sugestão...
Flw
05/08/2008
Aroldo Zanela
O exemplo do help do Delphi parece-me uma opção mais adequada, veja:
[quote=´Help´]The following example shows how to tell Windows to relaunch your application when Windows starts up if it was running when the system shut down. When Windows starts up, it launches each application listed in the RunOnce key and then deletes the entry for that application. Therefore, you do not need to remove the entry written here.
procedure TForm1.WMEndSession(var Message: TWMEndSession); var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey(´\Software\Microsoft\Windows\CurrentVersion\RunOnce´, True) then begin Reg.WriteString(´MyApp´,´"´ + ParamStr(0) + ´"´); Reg.CloseKey; end; finally Reg.Free; inherited; end; end;
[quote=´Help´]In order for this method to be called, it must be declared in your main form class as follows:
private procedure WMEndSession(var Msg:TWMEndSession); message WM_ENDSESSION;