📄 createprocasuserdemomain.pas
字号:
unit CreateProcAsUserDemoMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
edtDomain: TEdit;
Label1: TLabel;
edtUserName: TEdit;
Label2: TLabel;
edtPassword: TEdit;
Label3: TLabel;
edtCommandLine: TEdit;
Label4: TLabel;
btnCreateProcAsUser: TButton;
btnCreateProcAsUserEx: TButton;
lbEnvironment: TListBox;
Label5: TLabel;
edtEnvString: TEdit;
btnAddEnvString: TButton;
btnRemoveEnvString: TButton;
btnClearEnvStrings: TButton;
chkEnvAdditional: TCheckBox;
chkEnvCurrentUser: TCheckBox;
chkEnvLocalMachine: TCheckBox;
procedure btnAddEnvStringClick(Sender: TObject);
procedure btnClearEnvStringsClick(Sender: TObject);
procedure btnRemoveEnvStringClick(Sender: TObject);
procedure btnCreateProcAsUserClick(Sender: TObject);
procedure btnCreateProcAsUserExClick(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
uses
JclMiscel, JclStrings, JclSysInfo;
{$R *.dfm}
procedure TForm1.btnAddEnvStringClick(Sender: TObject);
begin
lbEnvironment.Items.Add(edtEnvString.Text);
end;
procedure TForm1.btnClearEnvStringsClick(Sender: TObject);
begin
lbEnvironment.Items.Clear;
end;
procedure TForm1.btnRemoveEnvStringClick(Sender: TObject);
var
I: Integer;
begin
for I := lbEnvironment.Items.Count - 1 downto 0 do
if lbEnvironment.Selected[I] then
lbEnvironment.Items.Delete(I);
end;
procedure TForm1.btnCreateProcAsUserClick(Sender: TObject);
begin
CreateProcAsUser(edtDomain.Text, edtUserName.Text,
edtPassWord.Text, edtCommandline.Text);
end;
procedure TForm1.btnCreateProcAsUserExClick(Sender: TObject);
var
Env: PChar;
EnvOptions: TEnvironmentOptions;
begin
EnvOptions := [];
if chkEnvAdditional.Checked then
EnvOptions := EnvOptions + [eoAdditional];
if chkEnvCurrentUser.Checked then
EnvOptions := EnvOptions + [eoCurrentUser];
if chkEnvLocalMachine.Checked then
EnvOptions := EnvOptions + [eoLocalMachine];
Env := CreateEnvironmentBlock(EnvOptions, lbEnvironment.Items);
CreateProcAsUserEx(edtDomain.Text, edtUserName.Text,
edtPassWord.Text, edtCommandline.Text, Env);
DestroyEnvironmentBlock(Env);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -