GetLastError
Esta function retorna o erro da CreateProcess
o help cita que a descrição do erro está em Win32 SDK
[To obtain an error string for operating system error codes, use the FormatMessage function. For a complete list of error codes, see the WINNT.H header file in the Win32 SDK.]
alguem já usou isto e pode dar uma ajuda ?
Motta
o help cita que a descrição do erro está em Win32 SDK
[To obtain an error string for operating system error codes, use the FormatMessage function. For a complete list of error codes, see the WINNT.H header file in the Win32 SDK.]
alguem já usou isto e pode dar uma ajuda ?
Motta
Anonymous
Curtidas 0
Respostas
Adilsond
26/03/2003
Mas o que voce realmente deseja???? Saber se houve erro???
if GetLastError <> 0 then
...
if GetLastError <> 0 then
...
GOSTEI 0
Qmd
26/03/2003
procedure TForm1.Button1Click(Sender: TObject);
var
hnd, retorno : cardinal;
begin
hnd := OpenSCManager(NIL,NIL,SC_MANAGER_ALL_ACCESS);
retorno := CreateService(hnd,´MyService´,´Test My Service´,
SERVICE_START OR SERVICE_QUERY_STATUS OR _DELETE,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_NORMAL,
Pchar(Edit1.text),NIL,NIL,NIL,NIL,NIL);
retorno := GetLastError;
Case retorno of
ERROR_ACCESS_DENIED: MessageDlg(´Acesso Negado´, mtError, [mbOK], 0);
ERROR_CIRCULAR_DEPENDENCY : MessageDlg(´referencia circular das dependencias...´, mtError, [mbOK], 0);
ERROR_DUP_NAME: MessageDlg(´Deve ser nome duplicado!´, mtError, [mbOK], 0);
ERROR_INVALID_HANDLE : MessageDlg(´Handle Invalido´, mtError, [mbOK], 0);
ERROR_INVALID_NAME: MessageDlg(´Nome invalido´, mtError, [mbOK], 0);
ERROR_INVALID_PARAMETER : MessageDlg(´Parametro invalido´, mtError, [mbOK], 0);
ERROR_INVALID_SERVICE_ACCOUNT : MessageDlg(´ERROR_INVALID_SERVICE_ACCOUNT´, mtInformation, [mbOK], 0);
ERROR_SERVICE_EXISTS: MessageDlg(´Servico jah existe!´, mtInformation, [mbOK], 0);
end;
end;
var
hnd, retorno : cardinal;
begin
hnd := OpenSCManager(NIL,NIL,SC_MANAGER_ALL_ACCESS);
retorno := CreateService(hnd,´MyService´,´Test My Service´,
SERVICE_START OR SERVICE_QUERY_STATUS OR _DELETE,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_NORMAL,
Pchar(Edit1.text),NIL,NIL,NIL,NIL,NIL);
retorno := GetLastError;
Case retorno of
ERROR_ACCESS_DENIED: MessageDlg(´Acesso Negado´, mtError, [mbOK], 0);
ERROR_CIRCULAR_DEPENDENCY : MessageDlg(´referencia circular das dependencias...´, mtError, [mbOK], 0);
ERROR_DUP_NAME: MessageDlg(´Deve ser nome duplicado!´, mtError, [mbOK], 0);
ERROR_INVALID_HANDLE : MessageDlg(´Handle Invalido´, mtError, [mbOK], 0);
ERROR_INVALID_NAME: MessageDlg(´Nome invalido´, mtError, [mbOK], 0);
ERROR_INVALID_PARAMETER : MessageDlg(´Parametro invalido´, mtError, [mbOK], 0);
ERROR_INVALID_SERVICE_ACCOUNT : MessageDlg(´ERROR_INVALID_SERVICE_ACCOUNT´, mtInformation, [mbOK], 0);
ERROR_SERVICE_EXISTS: MessageDlg(´Servico jah existe!´, mtInformation, [mbOK], 0);
end;
end;
GOSTEI 0
Anonymous
26/03/2003
Obrigado Adisin e QMD, o que eu queria era recuperar a descrição do erro , vou ver o codigo do QmD.
[]´s
[]´s
GOSTEI 0