|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
jingzu (123456) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/7/14 17:23:54 |
标题: |
在服务程序里 OpenInputDesktop出错 |
浏览:786 |
|
加入我的收藏 |
楼主: |
有两个桌面,一个是default,一个是自义定的aaaa,当切换到aaaa时,win10 在服务程序里使用 OpenInputDesktop,总得到 default,无法取得当前桌面aaaaa 而在桌面应用程序上没有问题。怎么样才能得到正确结果?
----------------------------------------------
永远是DELPHI初学者。 |
作者: |
jingzu (123456) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/7/14 17:26:55 |
1楼: |
var HOldDesk: HDESK; dwDummy: DWORD; sName: array[0..1024] of Char; desk: thandle; begin
HOldDesk := OpenInputDesktop(....); if (not GetUserObjectInformation(HOldDesk, UOI_NAME, @sName[0], 1024, dwDummy)) then //取桌面名字 begin OutputDebugStr('GetUserObjectInformation Failed.' + SysErrorMessage(GetLastError())); exit; end; end; ss := strpas(sName); ss得不到aaaa
----------------------------------------------
永远是DELPHI初学者。
|
作者: |
|
2020/7/14 18:58:39 |
2楼: |
服务使用桌面分为两种情况,登录了,还是没有登录?如果没有登录,要模拟登录。如果已经登录,也仍然可以试试模拟登录。
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
jingzu (123456) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/7/16 7:40:51 |
3楼: |
肯定登录了,切换aaaa桌面是应用程序切换的。服务程序根本不能切换。 应用程序可以检测到目前的桌面是aaaa,而相同代码服务检测还是default
----------------------------------------------
永远是DELPHI初学者。
|
作者: |
jingzu (123456) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/7/17 20:59:26 |
4楼: |
应用程序切换到aaaa虚拟桌面后,在应用程序可以得aaaa,而在服务程序使用GetUserObjectInformation,取到桌面永远是default,什么问题,如何解决?
----------------------------------------------
永远是DELPHI初学者。
|
作者: |
|
2020/7/18 0:22:35 |
5楼: |
因为服务程序工作在Session0啊。当然是default。 之前我问你登录没有,你说登录了,你误导我了。我说的这个登录不上指你手动登录到windows,而是指右键服务,里面的登录选项。见附件
这个填上之后,应该可以获取正确的值
此帖子包含附件:
大小:37.4K |
----------------------------------------------
只有偏执狂才能生存!
|
|