Código: Selecionar todos
FUNCTION GetSerialPlacaMae()
LOCAL oLoc := CREATEOBJECT( "wbemScripting.SwbemLocator" )
LOCAL oSrv := oLoc:ConnectServer() // linha q esta ocorrendo o erro descrito abaixo
LOCAL oJbs := oSrv:ExecQuery( "SELECT * FROM Win32_BaseBoard" )
LOCAL cSerial:=""
LOCAL cProduct:=""
LOCAL oJob
FOR EACH oJob IN oJbs
cSerial :=oJob:SerialNumber
cproduct:=oJob:Product
NEXT
//
IF LEN(ALLTRIM(cSerial))=0 // SE NAO CONSEGUIR LER A SERIAL DA PLACA MAE,
cSerial:=cProduct // COLOCA COMO O CODIGO DO PRODUTO
ENDIF
RETURN cSerial
Erro ........: Error WINOLE/1007 Não encontrado (0x80041002): SWbemLocator
Erro .( DOS ERROR )......: -2147352567
Funcoes com Erro :
Funcao: (b)ERRORSYS(2220)
Funcao: TOLEAUTO:CONNECTSERVER(0)
Funcao: GETSERIALPLACAMAE(52) // no fonte esta linha é: Local oSrv:=oLoc:ConnectServer()
Funcao: MAIN(1927)
Vi em alguns posts onde é feito um controle se o objeto foi criado,
mas nao entendi o funcionamento dos comandos try, catch e ao coloca-los no meu fonte o harbour 3.1 nao entende estes comandos. Se alguem puder me orientar na rotina acima agradeco.
Código: Selecionar todos
try
16 oWMIObjA := GetActiveObject( "wbemScripting.SwbemLocator" )
17 catch
18 try
19 oWMIObjA := CreateObject( "wbemScripting.SwbemLocator" )
20 catch
21 Alert( "ERRO ! Nao criou objeto wbemScripting")
22 return
23 end
24 end
ABEL
