Também faço a chamada diretamento ao gbasmsb.exe, segue o exemplo:
PathAplicacao := AcertarPath(ExtractFilePath(Application.ExeName));
// verifica a existencia do arquivo
if FileExists(PathAplicacao + 'gbasmsb.exe') then
begin
// faz a chamada ao executavel
Par := ' --identificacao';
Resultado := Trim(GetDosOutput('gbasmsb.exe' + Par,PathAplicacao));
if Trim(Resultado)<>'' then
Observacao(Resultado,'Identificação do terminal.',True)
else Mensagem ('Não foi encontrado o método IDENTIFICACAO no executável gbasmsb.exe.','Método não encontrado.',MB_OK,MB_ICONERROR);
end
else Mensagem('Não foi encontrado o executável gbasmsb.exe na pasta da aplicação.','Arquivo não encontrado.',MB_OK,MB_ICONERROR);