Invalid variant operation
24/11/2021
0
estou utilizando a procedure, e ja na primeira linha: " hW := App.Application.Hwnd ; "
ocorre o erro "Invalid variant operation".
algm ja passou por isso?
Att;
[xml]
procedure TfrmImportacaoExcel.KillExcel(var App: Variant);
var
ProcID: DWORD;
hProc: THandle;
hW: HWND;
begin
hW := App.Application.Hwnd;
// close with usual methods
App.DisplayAlerts := False;
App.Workbooks.Close;
App.Quit;
App := Unassigned;
// close with WinApi
if not IsWindow(hW) then Exit; // already closed?
GetWindowThreadProcessId(hW, ProcID);
hProc := OpenProcess(PROCESS_TERMINATE, False, ProcID);
TerminateProcess(hProc, 0);
end;
[/xml]
ocorre o erro "Invalid variant operation".
algm ja passou por isso?
Att;
[xml]
procedure TfrmImportacaoExcel.KillExcel(var App: Variant);
var
ProcID: DWORD;
hProc: THandle;
hW: HWND;
begin
hW := App.Application.Hwnd;
// close with usual methods
App.DisplayAlerts := False;
App.Workbooks.Close;
App.Quit;
App := Unassigned;
// close with WinApi
if not IsWindow(hW) then Exit; // already closed?
GetWindowThreadProcessId(hW, ProcID);
hProc := OpenProcess(PROCESS_TERMINATE, False, ProcID);
TerminateProcess(hProc, 0);
end;
[/xml]
Gxf
Curtir tópico
+ 0
Responder
Post mais votado
24/11/2021
Essa mensagem de erro normalmente ocorre quando você tenta usar uma variant que ainda não instanciada.
Veja um exemplo de como usar a função:
Veja um exemplo de como usar a função:
var variante: Variant; begin variante := CreateOleObject('Excel.Application'); // intancia a variante try // seu código para trabalhar com o excel finally KillExcel(variante); end; end;
Natanael Ferreira
Responder
Mais Posts
Clique aqui para fazer login e interagir na Comunidade :)