ID of the current session

Re: ID of the current session

Postby VictorCasajuana » Thu Sep 12, 2024 3:46 pm

Antonio Linares wrote:WaitRun( "query user > users.txt" )
MsgInfo( MemoRead( "users.txt" ) )


Hola Antonio.

He llegado a este post porque intento ejecutar esta sentencia pero no se ejecuta, WaitRun no indica el problema, pero hb_run() sí:
Code: Select all  Expand view  RUN
#include 'fivewin.ch'

Function Main()

    HB_RUN( "query user > users.txt" )
    MsgInfo( MemoRead( "users.txt" ) )

Return ( Nil )


Image

en cambio el comando desde el CMD funciona correctamente:
Image

no entiendo donde puede estar el problema ya que hb_run tendría que ejecutar cualquier comando del CMD. he probado de poner la ruta completa c:\windows\system32\query.exe y tampoco funciona.
--------
¿ Y porque no ?
¿ And why not ?
User avatar
VictorCasajuana
 
Posts: 265
Joined: Wed Mar 28, 2018 4:38 pm
Location: Vinaròs

Re: ID of the current session

Postby paquitohm » Thu Sep 12, 2024 4:16 pm

Hola Víctor,

En sentido estricto "query user > users.txt" no es un comando y por tanto es esperado que no funcione.
Lo que si es un comando es query.exe

Así pues habria/ tendrías que ejecutar query.exe y pasarle los parámetros necesarios y recoger la salida

No sé ahora mismo como se haría, pero te dejo unas funciones que igual podrian servir:
WaitRun()
hb_ProccessRun()
wapi_ShellExecute()

Quizá el sistema WMI sea más adecuado: viewtopic.php?f=6&t=22185&p=118127&hilit=wmi&sid=0b92ac34c1a3f381e7fbd9a90f96b50e#p118127

Salu2
paquitohm
 
Posts: 266
Joined: Fri Jan 14, 2022 8:37 am

Re: ID of the current session

Postby VictorCasajuana » Fri Sep 13, 2024 12:21 pm

cierto paquitohm, me había ofuscado en la vía rápida y no era el buen camino

pongo el código por si alguien le interesa saber la lista de usuarios de windows y los que están conectados, esta segunda no sé si es la forma más ética, pero funciona. Por cierto, hay que ejecutarlo en modo administrador para que tome todos los datos.

Code: Select all  Expand view  RUN
Function Main()

    USuarios()
    Sesiones()

Return (Nil)

Static Function Sesiones()

    Local oWMIService
    Local oWMI
    Local oSessions
    Local oSession
    Local oAntecedent
    Local cName
    Local oDependent
    Local cSesiones := ''
    Local aSesiones := {}
    Local aAntecedent := {}

    oWMI := CreateObject( "WbemScripting.SWbemLocator" )
    oWMIService := oWMI:ConnectServer( )
    oSessions := oWMIService:ExecQuery( "SELECT * FROM Win32_LoggedOnUser" )

    for each oSession in oSessions

        aAntecedent := hb_ATokens( oSession:Antecedent, ',' )
        cName := Substr( aAntecedent[2],7, Len(Alltrim(aAntecedent[2]))-7 )

        If aScan( aSesiones, cName ) == 0
            aAdd( aSesiones, cName )
        Endif
       
    next

    xBrowse(aSesiones,'Sesiones')

Return ( Nil )


Static Function Usuarios()
   
    Local oWMIService
    Local oWMI
    Local oUsers
    Local oUser
    Local cUserName
    Local aUsuarios := {}

    oWMI := CreateObject( "WbemScripting.SWbemLocator" )
    oWMIService := oWMI:ConnectServer( )
    oUsers := oWMIService:ExecQuery( "SELECT * FROM Win32_UserAccount WHERE LocalAccount = TRUE" )

    For Each oUser In oUsers
        aAdD( aUsuarios, oUser:Name )
    Next
   
    xBrowse(aUsuarios,'Usuarios')

Return ( Nil )


Salud!
--------
¿ Y porque no ?
¿ And why not ?
User avatar
VictorCasajuana
 
Posts: 265
Joined: Wed Mar 28, 2018 4:38 pm
Location: Vinaròs

Previous

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Silvio.Falconi and 18 guests