WIN7中因为服务进程是运行在session0下面的~~第一个登录的用户session为1(WTSGetActiveConsoleSessionId取得session的Id,OpenProcessToken取得进程的令牌)

时间:2023-02-23 15:53:05

procedure TsvrExamCtrl.ServiceStart(Sender: TService; var Started: Boolean);
var
  CMD: string;
begin
  WinExec(PAnsiChar('C:\Windows\notepad.exe'), SW_SHOWNORMAL);
end;
以上是我服务程序 在服务启动的时候 的代码 服……

其实你的记事本已经打开了,只是你看不见而已,你看下进程里面是不是已经有notepad的进程了,WIN7中因为服务进程是运行在session0下面的~~第一个登录的用户session为1

winexec 和 shellexecute 都不行。都只是在进程里面创建 界面上跳不出来

--------------------------------------------------------------------------------

感谢各位的热心帮助
问题已经解决

一个比较简单的方法:

1.WTSGetActiveConsoleSessionId
2.WTSQueryUserToken
3.CreateProcessAsUser
  
三步就能实现目标
但是如果第三步使用CreateProcessWithToken创建进程只能改变用户名不能改变session id

那个楼主已经做成功了试试吧,其实关键之处就是得到当前登录用户的Token令牌,然后CreateProcessAsUser用此令牌,创建一个属于此会话下面的进程

--------------------------------------------------------------------------------

谢谢楼上  代码研究出来了。 但是程序总是会在服务桌面里面开起来 不会在当前用户桌面上启动 白搭了。。
有没办法让他弄到当前桌面上来? 请指教

procedure TForm1.Button5Click(Sender: TObject);
var
  hToken:thandle;
  ph:thandle;
  si:STARTUPINFO;
  pi:PROCESS_INFORMATION;
begin
  ph:=openprocess(PROCESS_ALL_ACCESS ,
                   false,
                   GetCurrentProcessID());
  if ph<=0 then exit;
  openprocesstoken( ph,TOKEN_ALL_ACCESS,hToken); //去当前进程Token等同于取当前帐户Token
  try
    ZeroMemory( @si, sizeof( STARTUPINFO ) );
    si.cb := sizeof( STARTUPINFO );
    Si.lpDesktop := PChar('Winsta0\Default');
    si.wShowWindow:=SW_SHOWNORMAL;
    CreateProcessAsUser(hToken,pchar(cmd) , pchar(para),  nil,nil,FALSE,
                    Create_DEFAULT_ERROR_MODE,//NORMAL_PRIORITY_CLASS or Create_NEW_CONSOLE,
                     nil,nil,si,pi );

finally
    closehandle(ph);
  end;
end;

http://bbs.csdn.net/topics/390249745

WIN7中因为服务进程是运行在session0下面的~~第一个登录的用户session为1(WTSGetActiveConsoleSessionId取得session的Id,OpenProcessToken取得进程的令牌)的更多相关文章

  1. win7中配置eclipse连接Ubuntu内的hadoop

    Hadoop java 分布式 云计算 数据库 目录[-] 1.设置Ubuntu静态IP: 1)配置网卡参数到interfaces文件: 2)重启网卡: 2.配置Ubuntu的hosts: 3.配置V ...

  2. win7中 SQL server 2005无法连接到服务器,错误码:18456

    win7中 SQL server 2005无法连接到服务器,错误码:18456.. 数据库刚装完.我用Windows登陆  结果登陆不上去.. 选中SQL Server Management Stud ...

  3. 调整Win7中TCP&sol;IP半开连接数限制

    调整Win7中TCP/IP半开连接数限制      相信大家都有过这样的经历,普通的ADSL宽带下,打开下载工具下载资源时,再想浏览网页就会变得非常困难了,Windows7中也未能幸免.   究其原因 ...

  4. Windows PE3&period;0制作方法&lpar;从Win7中提取制作)

    Windows PE3.0制作方法(从Win7中提取制作 在d:新建文件夹winpe,在winpe中新建sources.pe3和new文件夹,把附件中提供的工具imagex连文件夹一起放到winpe目 ...

  5. 在Win7中安装程序集到GAC

    原文:在Win7中安装程序集到GAC 微软为提高系统安全,自Vista推出后,在Windows系统中加入了一个新的东东——UAC(User Account Control),这样一个新的技术使得许多操 ...

  6. node中创建服务进程

    背景 在node工程部署中,常常涉及到三方:本地客户端.跳板机和服务器(集群).在通过git触发gitlab hook脚本后,需要在跳板机中执行相应的ssh命令执行shell文件启动node服务器,这 ...

  7. win7 cmd终端连接android手机运行adb shell脚本命令

    win7 cmd终端连接android手机运行adb shell脚本命令 (2013-03-22 20:13:57) 转载▼ 标签: android it shell 连接 linux 分类: 嵌入式 ...

  8. &lbrack;转&rsqb;教你修复win7中复制粘贴失效的问题

    教你修复win7中复制粘贴失效的问题 发布时间:2018-01-17             使用win7系统的时候,我们经常需要对立面的内容进行复制粘贴来引用一些网站的内容,不过最近有网友在使用这个 ...

  9. WIN7中 HttpListener 拒绝访问 异常解决 C&num;

      WIN7中 HttpListener 拒绝访问 异常解决 C# http://www.cnblogs.com/cmdszh/archive/2012/08/16/httplistener.html ...

随机推荐

  1. SE(homework2)&lowbar;软件分析

    老师这次课后的作业具有开放性,很容易的我会想到经常用的那些工具软件,MATLAB,envi,ARCGIS等等. Q1:此类软件是什么时候出现的,这些软件是怎么说服你(陌生人)成为它们的用户的?他们的目 ...

  2. EM算法总结

    EM算法总结 - The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用 ...

  3. Html和CSS的关系

    1. HTML是网页内容的载体.内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2. CSS样式是表现.就像网页的外衣.比如,标题字体.颜色变化,或为标题加入背景图片. ...

  4. rsync实现免密码操作的一种实现方式

    rsync是远程文件同步协议,在linux系统下,操作服务器之间的文件同步,是非常方便高效的. 但是,简单的rsync操作,往往需要和用户交互,需要用户输入密码,这个对于结合应用系统使用,比如Java ...

  5. CSAPP缓冲区溢出攻击实验&lpar;上&rpar;

    CSAPP缓冲区溢出攻击实验(上) 下载实验工具.最新的讲义在这. 网上能找到的实验材料有些旧了,有的地方跟最新的handout对不上.只是没有关系,大体上仅仅是程序名(sendstring)或者參数 ...

  6. &period;net core使用Apollo做统一配置管理

    做开发这么多年,经常因配置的问题引发生产环境的bug.有些年久的项目,几百个密密麻麻的配置项,经常容易搞混,有时好几个项目有好多同样的配置项,配置工作也不厌其烦.所幸,携程开源了新一代配置中心 - A ...

  7. Linux&lpar;1&rpar;-卸载挂载分区

    > df -lh > fuser -m -v /dev/mapper/autovg-autolv > fuser -m -k -v /dev/mapper/autovg-autolv ...

  8. &lbrack;Tensorflow&rsqb; RNN - 04&period; Work with CNN for Text Classification

    Ref: Combining CNN and RNN for spoken language identification Ref: Convolutional Methods for Text [1 ...

  9. 原来zabbix监控进程与端口是如此的简单&excl;

    使用zabbix自带key监控进程与端口 每个公司都有自己的程序,自己的进程名与端口监听,对于nagios来说,这些都经常需要自己去写插件,但是zabbix不需要,它自己就有监控进程与端口的key. ...

  10. Laravel 项目上线的一些注意事项

    1.应用生产环境 在 .env 文件里设置 APP_ENV=production 2.关闭调试模式 在 .env 文件中设置 APP_DEBUG = false 3.生成 APP_KEY 使用 Art ...