首页 > 编程语言 >Delphi服务程序打开界面程序

Delphi服务程序打开界面程序

时间:2023-12-22 15:48:13浏览次数:27  
标签:服务程序 newPriv 界面 nil Delphi si luid SessionId end

function WTSQueryUserToken(SessionId: ULONG; var phToken: THandle): BOOL;
  stdcall; external 'Wtsapi32.dll';


procedure CreateProcessByUser;
var SessionId: DWORD; UserToken: THandle; Hndl, Hnd: THandle; luid: Int64;
  newPriv, oldPriv: TTokenPrivileges; odlPrivLen: Cardinal; si: TStartupInfo;
  pi: TProcessInformation;
begin
  SessionId := WtsGetActiveConsoleSessionID;
  if SessionId = $FFFFFFFF then Exit;
  var
  processHandle := GetCurrentProcess;
  if OpenProcessToken(processHandle, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
    Hndl) then begin
    LookupPrivilegevalue(nil, SE_TCB_NAME, luid);
    newPriv.PrivilegeCount := 1;
    newPriv.Privileges[0].luid := luid;
    newPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    if AdjustTokenPrivileges(Hndl, False, newPriv, Sizeof(oldPriv), oldPriv,
      odlPrivLen) then begin
      if WTSQueryUserToken(SessionId, UserToken) then begin
        DuplicateTokenEx(UserToken, TOKEN_ASSIGN_PRIMARY or TOKEN_ALL_ACCESS,
          nil, SecurityIdentification, TokenPrimary, Hnd);
        try
          ZeroMemory(@si, Sizeof(si));
          si.cb := Sizeof(si);
          si.lpDesktop := PChar('winsta0\Default');
          si.dwFlags := STARTF_USESHOWWINDOW;
          si.wShowWindow := SW_HIDE;
          ZeroMemory(@pi, Sizeof(pi));
          CreateProcessAsUser(Hnd, PChar('C:\Windows\system32\cmd.exe'), PChar( '/C ' + TDirectory.GetCurrentDirectory + '\emsms.exe'), nil,
              nil, False, CREATE_NEW_CONSOLE, nil, nil, si, pi);
        finally
          CloseHandle(UserToken);
        end;
      end;
    end;
  end;
end;

 

标签:服务程序,newPriv,界面,nil,Delphi,si,luid,SessionId,end
From: https://www.cnblogs.com/Master-Qi/p/17921716.html

相关文章

  • aardio使用网页写界面,解决Ctrl+鼠标滚轮缩放界面
    在html里添加<metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">不起作用。通过添加web的启动参数,也不起作用翻遍谷歌,没解决最后在github上找到方法,从chrome扩展里找blockzoom插件,找到源代码看了一下,解决在html代码......
  • 以root登陆桌面_需要图形化界面
    修改配置1.suroot:在终端里切换到root用户下2.gedit /etc/pam.d/gdm-autologin(打开文本编辑器)这一行前加一个#,进行注释#auth required pam_succeed_if.so user!=root quiet_success关闭并保存3.gedit /etc/pam.d/gdm-password这一行前加一个#,进行注释#auth......
  • Qt在ui界面设置组件样式,styleSheet属性
    QGroupBox{border:3pxsolidred;border-radius:15px;} QGroupBox#groupBoxBtns{border:3pxsolidgreen;border-radius:5px;} QPushButton{border:3pxsolidblack;border-radius:7px;} QPushButton:hover{border:3pxsolidblue;border-radiu......
  • Delphi新语法IfThen
    https://docwiki.embarcadero.com/Libraries/Sydney/en/System.StrUtils.IfThenfunctionIfThen(AValue:Boolean;constATrue:string;AFalse:string=''):string;usesSystem.StrUtils;相当于Excel的IF函数 OrderStr:=OrderStr+'['+Colum......
  • 界面控件DevExpress WinForms PDF Viewer,让应用轻松显示PDF文档(一)
    DevExpressWinForms的PDFViewer(查看器)控件使用户可以轻松地在Windows应用程序中直接显示PDF文档,而无需在最终用户的机器上安装外部PDF阅读器。DevExpressWinForms有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且易于使用的应......
  • # yyds干货盘点 # 运行js文件,会弹出一个python解释器的界面,怎么解决呢?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【菜......
  • 运行js文件,会弹出一个python解释器的界面,怎么解决呢?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【菜......
  • 界面控件DevExpress v23.2全新发布 - 官宣正式支持.NET 8
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力......
  • delphi cxgrid 过滤列表增加右键
    首先弹出来的下拉过滤列表也是一个form思路,在不改源代码的情况:hook,捕捉  WM_SHOWWINDOW 消息,通过源码得知窗口类名为”TcxGridFilterPopup“ 再通过句柄转得到实例,同时在本单元type一下新的 TcxGridFilterPopup, TcxGridPopupListBox才能访问保护起来的方法跟属性C......
  • 关于pyqt界面再不同分辨率和视图字体缩放和图片缩放得问题
    建议使用,这里说明一下,使用QApplication类或者QGuiApplication类进行设置都可以,因为QApplication继承自QGuiApplicationfromPyQt5.QtCoreimportQtfromPyQt5.QtGuiimportQGuiApplication######使用下面的方式一定程度上可以解决界面模糊问题--解决电脑缩放比例问题QApplic......