//---------------------------------//
Function FapSoftScan(oVent)
local oDlg, oBrw, oCbx, oBt2
local aInfo:={}, aTitCols:={}, aWMIscan, bMonitoring
local cVar, nPos:=1, n
local aOptions := {"01 Grupo de Programas (Win32 Logical Program Group) ",;
"02 Sistema del Ordenador (Win32 Computer Systen) " }
bMonitoring := {|| aWMIscan:=FapMonitoring(nPos,oWMI,18) ,;
aInfo:=aWMIscan[1], aTitCols:=aWMIscan[2],;
oBrw:SetArray(aInfo,.t.,1,.t.),;
oBrw:cHeaders := aTitCols, ;
oBrw:nHeadStrAligns := AL_CENTER, ; // oBrw:nWidths := 160 ,;
AEval(oBrw:aCols,{|o,n,oCol| if(ValType(o:Value) =="N", o:nWidth := Max( 40, oBrw:aCols[n]:HeaderWidth() ), o:nWidth:=160) }),;
oBrw:nColSel := 1, oBrw:Refresh(.t.),;
oBrw:SetFocus() }
DEFINE DIALOG oDlg SIZE oVent:nWidth, oVent:nHeight TITLE "FapSoftScan" TRANSPARENT
cVar := aOptions[1]
@ oDlg:nTop+10,8 COMBOBOX oCBx VAR cVar OF oDlg PIXEL;
ITEMS aOptions ;
SIZE 140,16 ;
ON CHANGE ( nPos := oCbx:nAt(), Eval(bMonitoring) )
@1,1 XBROWSE oBrw OF oDlg ;
ARRAY {} CELL LINES FOOTERS AUTOSORT
oBrw:CreateFromCode()
Eval(bMonitoring)
@ oDlg:nTop+245,380 BUTTONBMP oBt2 PROMPT "Salir/Cancelar" OF oDlg ;
SIZE 60, 12 PIXEL ;
BITMAP "SALIR16x16" TEXTRIGHT ;
ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED ;
ON INIT ( oBrw:nHeight:=oDlg:nHeight-118, oBrw:nWidth:=oDlg:nWidth-34, oBrw:nTop:=oDlg:nTop+50 ,;
oBrw:SetFocus() )
Return nil
//-------------------------------------------------------------
Function FapMonitoring(nOption,oWMI)
local oPC, oQry
local aInfo:={}, aTitCols, n, nLen
if nOption == 1
oQry := oWMI:ExecQuery( "Select * FROM Win32_LogicalProgramGroup" )
aTitCols:= {"Caption","Description","GroupName","Name","UserName","InstallDate","Status"}
for each oPC in oQry
aadd(aInfo, {oPC:Caption, oPC:Description, oPC:GroupName, oPC:Name, oPc:UserName, oPc:InstallDate, oPc:Status} )
next
elseif nOption == 2
oQry := oWMI:ExecQuery( "Select * FROM Win32_ComputerSystem" )
aTitCols:= {"Caption","Description","Domain","Model","Name","Processors","Status","System Type","User Name"}
for each oPC in oQry
aadd(aInfo, {oPC:Caption, oPC:Description, oPC:Domain, oPC:Model, oPC:Name, oPc:NumberOfProcessors, oPc:Status, oPC:SystemType, oPC:UserName} )
next
endif
RETURN {aInfo,aTitCols}