VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 598|回复: 5

[求助] 系统服务使用CreateProccess返回成功,进程却没有创建!

[复制链接]
05_avatar_middle
online_vip 发表于 2018-3-15 17:48:58 | 显示全部楼层 |阅读模式
在系统服务里面调用CreateProccess,打印日志显示返回结果是成功的,但是进程却没有创建。。被创建的是一个console应用




上一篇:实现声卡的内录有什么好的解决方案吗
下一篇:求VC单EXE安装服务启动源码
05_avatar_middle
ico_lz  楼主| 发表于 2018-3-15 17:49:48 | 显示全部楼层
  1.     BOOL bRet = ::CreateProcess (
  2.         NULL,           // 不在此指定可执行文件的文件名
  3.         szCommandLine,      // 命令行参数
  4.         NULL,           // 默认进程安全性
  5.         NULL,           // 默认线程安全性
  6.         FALSE,          // 指定当前进程内的句柄不可以被子进程继承
  7.         CREATE_NEW_CONSOLE | HIGH_PRIORITY_CLASS, // 为新进程创建一个新的控制台窗口
  8.         NULL,           // 使用本进程的环境变量
  9.         NULL,           // 使用本进程的驱动器和目录
  10.         &si,
  11.         &pi);
复制代码


创建的代码
51_avatar_middle
online_admins 发表于 2018-3-15 17:56:08 | 显示全部楼层

两个问题:
1、调用 CreateProcess 的代码是是在系统用户登录之前还是之后?
2、创建的这个进程是带界面的吗?还是无界面的程序?
05_avatar_middle
ico_lz  楼主| 发表于 2018-3-15 18:29:06 | 显示全部楼层
Syc 发表于 2018-3-15 17:56
两个问题:
1、调用 CreateProcess 的代码是是在系统用户登录之前还是之后?
2、创建的这个进程是带界 ...

回答老大:
1.无论登录前还是登陆后,都不运行;
2.进程会有界面,一个console程序,黑白的那种
05_avatar_middle
ico_lz  楼主| 发表于 2018-3-15 18:31:45 | 显示全部楼层
本帖最后由 coolhty 于 2018-3-15 19:54 编辑

看了任务管理器。
进程列表里面有创建的进程,运行账户是SYSTEM,但是没有console GUI弹出来。。
51_avatar_middle
online_admins 发表于 2018-3-15 20:57:32 | 显示全部楼层
coolhty 发表于 2018-3-15 18:31
看了任务管理器。
进程列表里面有创建的进程,运行账户是SYSTEM,但是没有console GUI弹出来。。

系统服务优先于账户登录,所以在账户登录之前系统服务已经执行了,所以控制台的窗口不可能弹出来!另外,服务类的程序是没办法有界面的。市面上的有界面的都是类似你的这个服务的程序创建一个托盘的图标,用户登录之后,在托盘的位置双击之后弹出界面,一般是这么个流程
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-21 19:49

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表