郁闷的问题,如何让服务程序创建的线程工作在前台

简介: 这两天在用C++做这样一个程序:   用CreatService创建一个服务,然后让这个服务打开一个程序,我是这样做的.
这两天在用C++做这样一个程序:
  用CreatService创建一个服务,然后让这个服务打开一个程序,我是这样做的.

None.gifBOOL StartServiceThread()
ExpandedBlockStart.gif {
InBlock.gif
InBlock.gif
InBlock.gif     DWORD id;
InBlock.gif    hServiceThread = CreateThread(
InBlock.gif    NULL,
InBlock.gif    0,
InBlock.gif    (LPTHREAD_START_ROUTINE)ServiceExecutionThread,
InBlock.gif    0,
InBlock.gif    0,
InBlock.gif    &id);
InBlock.gif    
InBlock.gif    if(hServiceThread == 0)//ÅжϠThread״̬
ExpandedSubBlockStart.gif
    {
InBlock.gif        return false;
ExpandedSubBlockStart.gif    }
else{
InBlock.gif        nServiceRunning = true;
InBlock.gif        return true;
ExpandedSubBlockEnd.gif    }

None.gifDWORD ServiceExecutionThread(LPDWORD param)
ExpandedBlockStart.gif {
InBlock.gif    if(nServiceRunning)
ExpandedSubBlockStart.gif    {
InBlock.gif    PROCESS_INFORMATION pi;
InBlock.gif    STARTUPINFO si;
InBlock.gif    ZeroMemory( &si, sizeof(si) );
InBlock.gif    ZeroMemory( &pi, sizeof(pi) );
InBlock.gif     si.cb = sizeof(STARTUPINFO);
InBlock.gif    si.dwFlags = STARTF_USESHOWWINDOW;
InBlock.gif    si.wShowWindow = SW_SHOW;
InBlock.gif    LPCTSTR m_Process = "D:\\ServiceMgr.exe";
InBlock.gif
InBlock.gif      CreateProcess(m_Process, NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
InBlock.gif
ExpandedSubBlockEnd.gif    }

InBlock.gif    return 0;
ExpandedBlockEnd.gif}
ServiceMgr.exe是执行在SYSTEM下面的,郁闷啊,不知道怎么样创建一个前台程序,而非后台...
目录
相关文章
|
8月前
|
Web App开发 消息中间件 Prometheus
Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!(一)
Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!
|
8月前
|
JSON 监控 安全
Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!(二)
Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控等!
|
Java 开发者 Spring
服务隔离机制信号量与线程池隔离|学习笔记
快速学习服务隔离机制信号量与线程池隔离
297 0
服务隔离机制信号量与线程池隔离|学习笔记
|
存储 安全
使用ExecutorService来停止线程服务
使用ExecutorService来停止线程服务
|
安全 Java
震惊!这样终止线程,竟然会导致服务宕机?(下)
震惊!这样终止线程,竟然会导致服务宕机?(下)
148 0
|
IDE Java 开发工具
震惊!这样终止线程,竟然会导致服务宕机?(上)
震惊!这样终止线程,竟然会导致服务宕机?(上)
116 0
震惊!这样终止线程,竟然会导致服务宕机?(上)
|
Java Spring 应用服务中间件
Springboot线程池服务实战分享
我们常用ThreadPoolExecutor提供的线程池服务,springboot框架提供了@Async注解,帮助我们更方便的将业务逻辑提交到线程池中异步执行
|
Java
两种思路解决线程服务死循环
背景系统突然error飚高,不停Full GC。最后发现是因为调用的外部jar包中方法触发bug导致死循环,不断产生新对象,导致内存大量占用无法释放,最终JVM内存回收机制崩溃。解决思路服务一旦进入死循环,对应线程一直处于running状态,难以通过该线程自己计时中断。对于无法完全放心的第三方jar包方法,可以选择开子线程处理,并对线程加以监控,当超时时及时中断子线程并返回。两种实现思路:思路一:
3195 0
|
16天前
|
存储 Java 数据库连接
java多线程之线程通信
java多线程之线程通信

相关实验场景

更多