社区
进程/线程/DLL
帖子详情
请问怎么写可以实现从“Winsta0\\Winlogon”互相转换“Winsta0\\Default”
xijhee
2005-12-26 11:35:38
nt service
请教高手
怎么写可以实现从“Winsta0\\Winlogon”互相转换“Winsta0\\Default”?
...全文
931
11
打赏
收藏
请问怎么写可以实现从“Winsta0\\Winlogon”互相转换“Winsta0\\Default”
nt service 请教高手 怎么写可以实现从“Winsta0\\Winlogon”互相转换“Winsta0\\Default”?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
皮皮鲁
2005-12-27
打赏
举报
回复
报什么错
看看OpenDesktop是不是返回NULL,可能是权限不够
皮皮鲁
2005-12-27
打赏
举报
回复
HDESK hDesk = OpenDesktop("Default",0,FALSE,MAXIMUM_ALLOWED);
SwitchDesktop(hDesk);
HDESK hDesk = OpenDesktop("Winlogon",0,FALSE,MAXIMUM_ALLOWED);
SwitchDesktop(hDesk);
你不会还要更详细吧?
xijhee
2005-12-27
打赏
举报
回复
请问 , 能说详细点吗?
xijhee
2005-12-27
打赏
举报
回复
不行呀,我人手从Winsta0\\Default转到Winsta0\\Winlogon登陆界面,程序就报错了.
void CNTServiceDlg::P_Switch_Desktop()
{
HDESK hDesk;
if(IsWSLocked()==FALSE)
{
hDesk = OpenDesktop("Default",0,FALSE,MAXIMUM_ALLOWED);
SwitchDesktop(hDesk);
}
if(IsWSLocked()==TRUE)
{
hDesk = OpenDesktop("Winlogon",0,FALSE,MAXIMUM_ALLOWED);
SwitchDesktop(hDesk);
}
}
BOYGUARD110
2005-12-27
打赏
举报
回复
mark
皮皮鲁
2005-12-27
打赏
举报
回复
SetThreadDesktop
自己看MSDN吧,如果到了这个地步你还不会的话,我很怀疑你的学习能力
xijhee
2005-12-27
打赏
举报
回复
做的一个远程控制项目.
现在就是想“Winsta0\\Winlogon”和“Winsta0\\Default”都可以抓屏.
皮皮鲁
2005-12-27
打赏
举报
回复
你这个程序想完成什么功能?
if(IsWSLocked()==FALSE)//for Default
{
hDesk = OpenDesktop("Default",0,FALSE,MAXIMUM_ALLOWED);
//返回值 hDesk =124
bb=SwitchDesktop(hDesk);
//返回值 bb=TRUE
}
IsWSLocked返回false表明这当前已经是Default桌面,干嘛还要Swith到Default桌面?
if(IsWSLocked()==TRUE)//for Winlogon
{
hDesk = OpenDesktop("Winlogon",0,FALSE,MAXIMUM_ALLOWED);
//返回值 hDesk =244 或 hDesk=248
bb=SwitchDesktop(hDesk);
//返回值 bb=TRUE
}
IsWSLocked返回TRUE表明当前桌面是WinLogon桌面或者屏保桌面,那么你这整段代码就是说如果发现是屏保桌面就切换到Winlogon桌面,如果是的话,需要这样写程序么?
总而言之,你这程序的逻辑很有问题
xijhee
2005-12-27
打赏
举报
回复
up
xijhee
2005-12-27
打赏
举报
回复
请指教,谢谢!!! 返回值如下:
void CNTServiceDlg::P_Switch_Desktop()
{
BOOL bb;
HDESK hDesk;
if(IsWSLocked()==FALSE)//for Default
{
hDesk = OpenDesktop("Default",0,FALSE,MAXIMUM_ALLOWED);
//返回值 hDesk =124
bb=SwitchDesktop(hDesk);
//返回值 bb=TRUE
}
if(IsWSLocked()==TRUE)//for Winlogon
{
hDesk = OpenDesktop("Winlogon",0,FALSE,MAXIMUM_ALLOWED);
//返回值 hDesk =244 或 hDesk=248
bb=SwitchDesktop(hDesk);
//返回值 bb=TRUE
}
}
//////////////////
BOOL CNTServiceDlg::IsWSLocked()
{
//if (!IsWinNT())
// return false;
bool bLocked = false;
HDESK hDesk;
BOOL bRes;
DWORD dwLen;
char sName[200];
hDesk = OpenInputDesktop(0, FALSE, 0);
if (hDesk == NULL)
{
bLocked = true;
}
else
{
bRes = GetUserObjectInformation(hDesk, UOI_NAME, sName, sizeof(sName), &dwLen);
if (bRes)
sName[dwLen]='\0';
else
sName[0]='\0';
CloseDesktop(hDesk);
if (stricmp(sName,"Default") != 0)//sName!="Default" =="Winlogon"
bLocked = TRUE; // WS is locked or screen saver active
else
bLocked = FALSE;//sName=="Default"
P_WriteLog("sName=");
P_WriteLog(sName);
}
return bLocked;
}
皮皮鲁
2005-12-26
打赏
举报
回复
OpenDesktop
SwitchDesktop
Win
dows 窗口工作站(
win
dow station)
Win
dows 窗口工作站(
win
dow station)
win
sta0
,session,desktop,
win
log
on,
default
A
win
dow station is an objectthat contains a clipboard, a set of global atoms and a group ofdesktop objects. Only one
win
dow station per session is permittedto interact with the user. This
win
dow stat
win
dows7
default
桌面,
win
log
on桌面和screensaver桌面的截屏
这个项目已经结束快两年了,由于公司需要,所以又来做个总结。 当时需要做屏幕截图,但是在
win
log
on桌面(ctrl+alt+del 或 登录界面 或 UAC)和screensave桌面(屏保下)截图都是黑屏,所以就引来了这个问题。 解决这个问题涉及到的东西比较多,包括session,
win
dow station,service,desktop什么的。关于他们的前世今生的问题今天我们就不讨论了
win
dows编程的偏门概念: 会话(Session), 窗口站(
Win
dow Station), 桌面
refer to: http://tocspb
log
.appspot.com/?p=22001, 转自编程思索 想
实现
向linux那样的多个虚拟桌面么?想知道让服务程序显示界面么?那么就认证看一下下面的说明吧。 1. 远程桌面会话 当一个用户登录到一个开启了远程桌面的机器时,便会开始一个该用户的会话。每个会话使用一个唯一的会话ID来标识。由于每个登录到远程
Win
log
on原理
导读: 自己
写
Win
log
on必须
实现
以下技术细节: 1.首先建立
Win
dowStation,名字必须为
Win
sta0
;因为某内核模式的程序里有对
Win
sta0
的引用 2.建立三个桌面;首先必须建立
win
log
on名字的桌面,因为
win
32k.sys里有对
win
log
on名字桌面 的引用;接着建立
default
桌面,因为explorer必须运行在
default
桌面上,如果在
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章