找回密码
 加入
搜索
查看: 2629|回复: 2

[系统综合] 怎样判断系统是否已经登录【已解决】

[复制链接]
发表于 2011-6-30 15:46:19 | 显示全部楼层 |阅读模式
本帖最后由 leon460 于 2011-7-13 15:55 编辑

我的某些代码只有在用户登录下才能生效,故,我想做一个服务,
请问:怎样判断此电脑是否已经登陆?
不知道@DesktopDir这样的宏可以在服务里面运行,如果得出路径则说明用户已经登入,反之用户没有登录。还有别的好的办法么?
发表于 2011-6-30 16:04:50 | 显示全部楼层
本帖最后由 pusofalse 于 2011-6-30 16:05 编辑

#include <lsasecur.au3>

Local $fLogon
Local $sFormat = "登录用户: %s\n登录域: %s\n用户Sid: %s\n验证: %s\n登录时间: %s\n"

Local $aLogon = _SeEnumLogonSessions()
For $i = 1 To $aLogon[0][0]
        If $aLogon[$i][7] = $SE_LOGON_TYPE_INTERACTIVE Then
                $fLogon = TRUE
                MsgBox(48, "已登录", _
                StringFormat($sFormat, _
                        $aLogon[$i][0], _
                        $aLogon[$i][1], _
                        $aLogon[$i][6], _
                        $aLogon[$i][2], _
                        $aLogon[$i][9]))
        EndIf
Next

If Not $fLogon Then
        MsgBox(48, "没有用户登录", _SeFormatMsg())
EndIf
 楼主| 发表于 2011-6-30 20:03:58 | 显示全部楼层
回复 2# pusofalse

谢谢P老大,上面的问题我测试,可以显示出结果,不过我还没有在services的状态下验证 。

最近有拜读你的SetupApi.au3,并测试,以下代码帮我看看,我尝试用你给出的函数禁用鼠标,为什么不能成功?
非常感谢。
#include <SetupApi.au3>
    ; 枚举系统中的所有鼠标设备:
   Local $hDevs, $tDevInfo, $aMouse[1][2] = [[0]]
   $hDevs = _SetupDiGetClassDevs($DIGCF_PRESENT, "mouse")
   While _SetupDiEnumDeviceInfo($hDevs, $aMouse[0][0], $tDevInfo)
        $aMouse[0][0] += 1
        $sDescr = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_DEVICEDESC)
        $sName = _SetupDiGetDeviceRegistryProperty($hDevs, $tDevInfo, $SPDRP_FRIENDLYNAME)
        If $sName <> "" Then $sDescr = $sName
        Redim $aMouse[$aMouse[0][0] + 1][2]
        $aMouse[$aMouse[0][0]][0] = $sDescr        ; 鼠标描述信息
        $aMouse[$aMouse[0][0]][1] = _SetupDiGetDeviceInstanceID($hDevs, $tDevInfo) ; 设备范例ID
                ;_CM_Disable_DevNode()
                   _SetupDiDisableDevice($hDevs, "", True)   ;尝试禁用所有的鼠标设备 ???????????????
   WEnd
   ; 枚举网卡只需把"Mouse"改为"Net",磁盘则对应DiskDrive,显卡对应Display。
   _SetupDiDestroyDeviceInfoList($hDevs)
   _Arraydisplay($aMouse)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 23:41 , Processed in 0.075042 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表