社区
C语言
帖子详情
NTService能交互吗?
shi_hang_nk
2001-07-30 09:12:42
我想在用户将口令输进去之后,程序再以NTService的方式启动起来,这样在用户注销后程序仍能运转,这可以实现吗?请问如何实现?
...全文
109
5
打赏
收藏
NTService能交互吗?
我想在用户将口令输进去之后,程序再以NTService的方式启动起来,这样在用户注销后程序仍能运转,这可以实现吗?请问如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
singlerace
2001-08-01
打赏
举报
回复
可以的。普通的service程序不能和用户交互是因为其desktop和正常的desktop不同。只要把service的desktop切换成正常desktop,就可以交互了。下面是msdn上的示范代码:
DWORD dwGuiThreadId = 0;
int
UserMessageBox(
RPC_BINDING_HANDLE h,
LPSTR lpszWindowStation,
LPSTR lpszDesktop,
LPSTR lpszText,
LPSTR lpszTitle,
UINT fuStyle)
{
DWORD dwThreadId;
HWINSTA hwinstaSave;
HDESK hdeskSave;
HWINSTA hwinstaUser;
HDESK hdeskUser;
int result;
// Ensure connection to service window station and desktop, and
// save their handles.
GetDesktopWindow();
hwinstaSave = GetProcessWindowStation();
dwThreadId = GetCurrentThreadId();
hdeskSave = GetThreadDesktop(dwThreadId);
// Impersonate the client and connect to the User's
// window station and desktop.
RpcImpersonateClient(h);
hwinstaUser = OpenWindowStation(lpszWindowStation, FALSE, MAXIMUM_ALLOWED);
if (hwinstaUser == NULL)
{
RpcRevertToSelf();
return 0;
}
SetProcessWindowStation(hwinstaUser);
hdeskUser = OpenDesktop(lpszDesktop, 0, FALSE, MAXIMUM_ALLOWED);
RpcRevertToSelf();
if (hdeskUser == NULL)
{
SetProcessWindowStation(hwinstaSave);
CloseWindowStation(hwinstaUser);
return 0;
}
SetThreadDesktop(hdeskUser);
// Display message box.
dwGuiThreadId = dwThreadId;
result = MessageBox(NULL, lpszText, lpszTitle, fuStyle);
dwGuiThreadId = 0;
// Restore window station and desktop.
SetThreadDesktop(hdeskSave);
SetProcessWindowStation(hwinstaSave);
CloseDesktop(hdeskUser);
CloseWindowStation(hwinstaUser);
return result;
}
ExitWindows
2001-07-31
打赏
举报
回复
up
ExitWindows
2001-07-31
打赏
举报
回复
up
ExitWindows
2001-07-31
打赏
举报
回复
up
wyzegg
2001-07-30
打赏
举报
回复
可以实现的
看看MSDN的SERVICE FUNCTION
NT
Service
服务详解
NT
Service
服务详解 http://www.panshy.com/articles/dev-124.html I、 摘要 WIN
NT
下的服务就类似*NIX下面的守护进程一样,而且现在越来越多的软件开始设计成服务的形式,从XP推出之后,通过服务来实现多用户...
NT
Service
的几个注意点和示例代码
如何编写
NT
Service
在MSDN->Platform SDK->DLLs, Processes, and Threads->
Service
中说得很清楚了,在这里我就不多说了,这里我就只说一些我个人认为的在编写
service
过程中要注意的地方。 0、在我们通过控制面板或...
windows 服务中启动
交互
式程序
最近项目中需要在windows服务中启动
交互
式...非
交互
式程序也就是跑在后台,不需要人工干预,自己能跑得欢的程序 比如各种服务端程序,类似sshd.exe,各种bat脚本等 windows程序中启动第三方程序通常有几种方式 1...
Windows
Service
s(
NT
)服务学习!基础篇完整篇!
本文主要记录什么是Windows
Service
,及其主要组成?并通过一个列子来创建一个Windows
Service
s,同时,记录几个在查资料碰到的问题。 Windows
Service
s全文简称
NT
1, 什么是Windows
Service
s?
NT
主要...
如何利用VB编写
NT
服务程序
一、
NT
服务程序 所谓
NT
服务,实际上就是一个可以在系统启动时自动在...
NT
服务归纳起来,
NT
服务又以下几个特征: 1、可以自启动,不需要
交互
启动。这对于服务器来说是一个重要的特征。当然,你可以决定服务是否自启动
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章