又是delphi服務程序,困擾多天的問題 ( 积分: 200 )

  • 主题发起人 主题发起人 sroc
  • 开始时间 开始时间
S

sroc

Unregistered / Unconfirmed
GUEST, unregistred user!
最近做了一個Delphi的服務程序,要求抓取目前Windows的登陸用戶
我查了很多資料,僅知道2個方法:
1:GetUserName();
2:通過注冊表Explore的Login User Name鍵制抓取
在普通的程序中都沒問題,可改成Delphi的服務程序后,抓取不到信息
請各位高手幫幫忙
 
自己頂個,請大家幫幫忙
 
你在服务里面在创建一个线程,用那个线程去得到用户名试试
 
你可以在服务的管理器里选择你的程序的属性,然后在登陆标签页输入你的登陆用户名和密码即可。
这个问题应该是你运行的程序使用了系统的账号,系统账号没有权限读取你需要的信息。
 
TO:sunzhanwei
創建線程,試過了,還是不行
 
服務程序
1.用GetUserName函數抓到的用戶名是:system
2.讀取注冊表,抓到的資料是空值
請大家幫幫忙,有沒有其他方法
 
獲取用戶名,沒有其他辦法嗎?
請大家幫幫忙
 
默认情况下
服务都是以System用户权限运行的
你得到System是正常的
 
只有有Shell运行权限的服务才能取注册表等Shell功能,勾选服务的interactive为真即可或者在服务管理器的服务属性中选中允许桌面访问也行.
 
问题还没解决
TO:teclick
这个程序是个客户端,要在几千台电脑上安装,这样的设置不太现实

请大家有没有别的办法,郁闷中
 
在程序注册为服务时就要允许桌面访问.
 
开发service的时候,service属性的地方有输入用户名和密码的地方,如果你的那么多的机器不经常更换密码,可以试试这个。或者你可以在某台机器上建立一个服务,提供登陆的用户名密码,这些信息通过加密后传输也是个办法。
 
問題仍然沒有解決,誰有其他的什么辦法嗎?
 
服务程序默认的权限有点低,你可以赋予服务程序管理员的权限试试。我也遇到过类似的问题,就是在普通程序中没事,到服务里就取不到了。在服务程序里,属性-登陆-此帐户。为其选择管理员帐户就可以了。
 
后退
顶部