Added RDP Configuration Program
This commit is contained in:
parent
9120dcc9ac
commit
bca7e90e48
BIN
bin/RDPConf.exe
Normal file
BIN
bin/RDPConf.exe
Normal file
Binary file not shown.
@ -1,7 +1,8 @@
|
||||
@echo off
|
||||
RDPWInst -i
|
||||
echo ______________________________________________________
|
||||
echo ______________________________________________________________
|
||||
echo.
|
||||
echo You can check RDP functionality with RDPCheck program.
|
||||
echo Also you can configure advanced settings with RDPConf program.
|
||||
echo.
|
||||
pause
|
||||
|
BIN
src-rdpconfig/MainUnit.dcu
Normal file
BIN
src-rdpconfig/MainUnit.dcu
Normal file
Binary file not shown.
112
src-rdpconfig/MainUnit.dfm
Normal file
112
src-rdpconfig/MainUnit.dfm
Normal file
@ -0,0 +1,112 @@
|
||||
object MainForm: TMainForm
|
||||
Left = 0
|
||||
Top = 0
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Remote Desktop Protocol Configuration'
|
||||
ClientHeight = 245
|
||||
ClientWidth = 326
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
OldCreateOrder = False
|
||||
Position = poDesktopCenter
|
||||
OnCloseQuery = FormCloseQuery
|
||||
OnCreate = FormCreate
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object lRDPPort: TLabel
|
||||
Left = 203
|
||||
Top = 22
|
||||
Width = 47
|
||||
Height = 13
|
||||
Caption = 'RDP Port:'
|
||||
end
|
||||
object bOK: TButton
|
||||
Left = 45
|
||||
Top = 212
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'OK'
|
||||
ModalResult = 1
|
||||
TabOrder = 0
|
||||
OnClick = bOKClick
|
||||
end
|
||||
object bCancel: TButton
|
||||
Left = 126
|
||||
Top = 212
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
TabOrder = 1
|
||||
OnClick = bCancelClick
|
||||
end
|
||||
object bApply: TButton
|
||||
Left = 207
|
||||
Top = 212
|
||||
Width = 75
|
||||
Height = 25
|
||||
Caption = 'Apply'
|
||||
Enabled = False
|
||||
TabOrder = 2
|
||||
OnClick = bApplyClick
|
||||
end
|
||||
object cbSingleSessionPerUser: TCheckBox
|
||||
Left = 8
|
||||
Top = 31
|
||||
Width = 130
|
||||
Height = 17
|
||||
Caption = 'Single Session Per User'
|
||||
TabOrder = 3
|
||||
OnClick = cbAllowTSConnectionsClick
|
||||
end
|
||||
object rgNLA: TRadioGroup
|
||||
Left = 8
|
||||
Top = 54
|
||||
Width = 310
|
||||
Height = 73
|
||||
Caption = 'Security Mode'
|
||||
Items.Strings = (
|
||||
'Disable Security (not recommended)'
|
||||
'Default Authentication (compatibility with older clients)'
|
||||
'Network Level Authentication (best)')
|
||||
TabOrder = 4
|
||||
OnClick = cbAllowTSConnectionsClick
|
||||
end
|
||||
object cbAllowTSConnections: TCheckBox
|
||||
Left = 8
|
||||
Top = 8
|
||||
Width = 174
|
||||
Height = 17
|
||||
Caption = 'Enable Remote Desktop Protocol'
|
||||
TabOrder = 5
|
||||
OnClick = cbAllowTSConnectionsClick
|
||||
end
|
||||
object rgShadow: TRadioGroup
|
||||
Left = 8
|
||||
Top = 133
|
||||
Width = 310
|
||||
Height = 73
|
||||
Caption = 'Session Shadowing Mode'
|
||||
Items.Strings = (
|
||||
'Disable Shadowing'
|
||||
'Shadowing will request user permission'
|
||||
'Shadowing sessions immediately')
|
||||
TabOrder = 6
|
||||
OnClick = cbAllowTSConnectionsClick
|
||||
end
|
||||
object seRDPPort: TSpinEdit
|
||||
Left = 256
|
||||
Top = 19
|
||||
Width = 62
|
||||
Height = 22
|
||||
MaxValue = 65535
|
||||
MinValue = 0
|
||||
TabOrder = 7
|
||||
Value = 0
|
||||
OnChange = seRDPPortChange
|
||||
end
|
||||
end
|
202
src-rdpconfig/MainUnit.pas
Normal file
202
src-rdpconfig/MainUnit.pas
Normal file
@ -0,0 +1,202 @@
|
||||
unit MainUnit;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, StdCtrls, Spin, ExtCtrls, Registry;
|
||||
|
||||
type
|
||||
TMainForm = class(TForm)
|
||||
bOK: TButton;
|
||||
bCancel: TButton;
|
||||
bApply: TButton;
|
||||
cbSingleSessionPerUser: TCheckBox;
|
||||
rgNLA: TRadioGroup;
|
||||
cbAllowTSConnections: TCheckBox;
|
||||
rgShadow: TRadioGroup;
|
||||
seRDPPort: TSpinEdit;
|
||||
lRDPPort: TLabel;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure cbAllowTSConnectionsClick(Sender: TObject);
|
||||
procedure seRDPPortChange(Sender: TObject);
|
||||
procedure bApplyClick(Sender: TObject);
|
||||
procedure bCancelClick(Sender: TObject);
|
||||
procedure bOKClick(Sender: TObject);
|
||||
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
procedure ReadSettings;
|
||||
procedure WriteSettings;
|
||||
end;
|
||||
|
||||
var
|
||||
MainForm: TMainForm;
|
||||
Ready: Boolean = False;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
{$R manifest.res}
|
||||
|
||||
procedure TMainForm.ReadSettings;
|
||||
var
|
||||
Reg: TRegistry;
|
||||
SecurityLayer, UserAuthentication: Integer;
|
||||
begin
|
||||
Reg := TRegistry.Create;
|
||||
Reg.RootKey := HKEY_LOCAL_MACHINE;
|
||||
Reg.OpenKeyReadOnly('\SYSTEM\CurrentControlSet\Control\Terminal Server');
|
||||
try
|
||||
cbAllowTSConnections.Checked := not Reg.ReadBool('fDenyTSConnections');
|
||||
except
|
||||
|
||||
end;
|
||||
try
|
||||
cbSingleSessionPerUser.Checked := Reg.ReadBool('fSingleSessionPerUser');
|
||||
except
|
||||
|
||||
end;
|
||||
Reg.CloseKey;
|
||||
|
||||
Reg.OpenKeyReadOnly('\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp');
|
||||
seRDPPort.Value := 3389;
|
||||
try
|
||||
seRDPPort.Value := Reg.ReadInteger('PortNumber');
|
||||
except
|
||||
|
||||
end;
|
||||
SecurityLayer := 0;
|
||||
UserAuthentication := 0;
|
||||
try
|
||||
SecurityLayer := Reg.ReadInteger('SecurityLayer');
|
||||
UserAuthentication := Reg.ReadInteger('UserAuthentication');
|
||||
except
|
||||
|
||||
end;
|
||||
if (SecurityLayer = 0) and (UserAuthentication = 0) then
|
||||
rgNLA.ItemIndex := 0;
|
||||
if (SecurityLayer = 1) and (UserAuthentication = 0) then
|
||||
rgNLA.ItemIndex := 1;
|
||||
if (SecurityLayer = 2) and (UserAuthentication = 1) then
|
||||
rgNLA.ItemIndex := 2;
|
||||
try
|
||||
rgShadow.ItemIndex := Reg.ReadInteger('Shadow');
|
||||
except
|
||||
|
||||
end;
|
||||
Reg.CloseKey;
|
||||
Reg.Free;
|
||||
end;
|
||||
|
||||
procedure TMainForm.WriteSettings;
|
||||
var
|
||||
Reg: TRegistry;
|
||||
SecurityLayer, UserAuthentication: Integer;
|
||||
begin
|
||||
Reg := TRegistry.Create;
|
||||
Reg.RootKey := HKEY_LOCAL_MACHINE;
|
||||
Reg.OpenKey('\SYSTEM\CurrentControlSet\Control\Terminal Server', True);
|
||||
try
|
||||
Reg.WriteBool('fDenyTSConnections', not cbAllowTSConnections.Checked);
|
||||
except
|
||||
|
||||
end;
|
||||
try
|
||||
Reg.WriteBool('fSingleSessionPerUser', cbSingleSessionPerUser.Checked);
|
||||
except
|
||||
|
||||
end;
|
||||
Reg.CloseKey;
|
||||
|
||||
Reg.OpenKey('\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp', True);
|
||||
try
|
||||
Reg.WriteInteger('PortNumber', seRDPPort.Value);
|
||||
except
|
||||
|
||||
end;
|
||||
case rgNLA.ItemIndex of
|
||||
0: begin
|
||||
SecurityLayer := 0;
|
||||
UserAuthentication := 0;
|
||||
end;
|
||||
1: begin
|
||||
SecurityLayer := 1;
|
||||
UserAuthentication := 0;
|
||||
end;
|
||||
2: begin
|
||||
SecurityLayer := 2;
|
||||
UserAuthentication := 1;
|
||||
end;
|
||||
else begin
|
||||
SecurityLayer := -1;
|
||||
UserAuthentication := -1;
|
||||
end;
|
||||
end;
|
||||
if SecurityLayer >= 0 then begin
|
||||
try
|
||||
Reg.WriteInteger('SecurityLayer', SecurityLayer);
|
||||
Reg.WriteInteger('UserAuthentication', UserAuthentication);
|
||||
except
|
||||
|
||||
end;
|
||||
end;
|
||||
if rgShadow.ItemIndex >= 0 then begin
|
||||
try
|
||||
Reg.WriteInteger('Shadow', rgShadow.ItemIndex);
|
||||
except
|
||||
|
||||
end;
|
||||
end;
|
||||
Reg.CloseKey;
|
||||
Reg.Free;
|
||||
end;
|
||||
|
||||
procedure TMainForm.cbAllowTSConnectionsClick(Sender: TObject);
|
||||
begin
|
||||
if Ready then
|
||||
bApply.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TMainForm.seRDPPortChange(Sender: TObject);
|
||||
begin
|
||||
if Ready then
|
||||
bApply.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TMainForm.FormCreate(Sender: TObject);
|
||||
begin
|
||||
ReadSettings;
|
||||
Ready := True;
|
||||
end;
|
||||
|
||||
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
|
||||
begin
|
||||
if bApply.Enabled then
|
||||
CanClose := MessageBox(Handle, 'Settings are not saved. Do you want to exit?',
|
||||
'Warning', mb_IconWarning or mb_YesNo) = mrYes;
|
||||
end;
|
||||
|
||||
procedure TMainForm.bOKClick(Sender: TObject);
|
||||
begin
|
||||
if bApply.Enabled then begin
|
||||
WriteSettings;
|
||||
bApply.Enabled := False;
|
||||
end;
|
||||
Close;
|
||||
end;
|
||||
|
||||
procedure TMainForm.bCancelClick(Sender: TObject);
|
||||
begin
|
||||
Close;
|
||||
end;
|
||||
|
||||
procedure TMainForm.bApplyClick(Sender: TObject);
|
||||
begin
|
||||
WriteSettings;
|
||||
bApply.Enabled := False;
|
||||
end;
|
||||
|
||||
end.
|
15
src-rdpconfig/RDPConf.dpr
Normal file
15
src-rdpconfig/RDPConf.dpr
Normal file
@ -0,0 +1,15 @@
|
||||
program RDPConf;
|
||||
|
||||
uses
|
||||
Forms,
|
||||
MainUnit in 'MainUnit.pas' {MainForm};
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
Application.Title := 'Remote Desktop Protocol Configuration';
|
||||
Application.CreateForm(TMainForm, MainForm);
|
||||
Application.Run;
|
||||
end.
|
107
src-rdpconfig/RDPConf.dproj
Normal file
107
src-rdpconfig/RDPConf.dproj
Normal file
@ -0,0 +1,107 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>{A7CB4C30-85F5-4D96-B510-6F0CDCF7C2DA}</ProjectGuid>
|
||||
<ProjectVersion>12.0</ProjectVersion>
|
||||
<MainSource>RDPConf.dpr</MainSource>
|
||||
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
|
||||
<Cfg_1>true</Cfg_1>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
|
||||
<Cfg_2>true</Cfg_2>
|
||||
<CfgParent>Base</CfgParent>
|
||||
<Base>true</Base>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Base)'!=''">
|
||||
<DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias>
|
||||
<DCC_DependencyCheckOutputName>RDPConf.exe</DCC_DependencyCheckOutputName>
|
||||
<DCC_ImageBase>00400000</DCC_ImageBase>
|
||||
<DCC_Platform>x86</DCC_Platform>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||
<DCC_DebugInformation>false</DCC_DebugInformation>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<DelphiCompile Include="RDPConf.dpr">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="MainUnit.pas">
|
||||
<Form>MainForm</Form>
|
||||
</DCCReference>
|
||||
<BuildConfiguration Include="Base">
|
||||
<Key>Base</Key>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Debug">
|
||||
<Key>Cfg_2</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
<BuildConfiguration Include="Release">
|
||||
<Key>Cfg_1</Key>
|
||||
<CfgParent>Base</CfgParent>
|
||||
</BuildConfiguration>
|
||||
</ItemGroup>
|
||||
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||
<ProjectExtensions>
|
||||
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||
<Borland.ProjectType/>
|
||||
<BorlandProject>
|
||||
<Delphi.Personality>
|
||||
<Source>
|
||||
<Source Name="MainSource">RDPConf.dpr</Source>
|
||||
</Source>
|
||||
<Parameters>
|
||||
<Parameters Name="UseLauncher">False</Parameters>
|
||||
<Parameters Name="LoadAllSymbols">True</Parameters>
|
||||
<Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
|
||||
</Parameters>
|
||||
<VersionInfo>
|
||||
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
|
||||
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
|
||||
<VersionInfo Name="MajorVer">1</VersionInfo>
|
||||
<VersionInfo Name="MinorVer">0</VersionInfo>
|
||||
<VersionInfo Name="Release">0</VersionInfo>
|
||||
<VersionInfo Name="Build">0</VersionInfo>
|
||||
<VersionInfo Name="Debug">False</VersionInfo>
|
||||
<VersionInfo Name="PreRelease">False</VersionInfo>
|
||||
<VersionInfo Name="Special">False</VersionInfo>
|
||||
<VersionInfo Name="Private">False</VersionInfo>
|
||||
<VersionInfo Name="DLL">False</VersionInfo>
|
||||
<VersionInfo Name="Locale">1033</VersionInfo>
|
||||
<VersionInfo Name="CodePage">1252</VersionInfo>
|
||||
</VersionInfo>
|
||||
<VersionInfoKeys>
|
||||
<VersionInfoKeys Name="CompanyName">Stas'M Corp.</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="FileDescription">RDP Configuration Program</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="InternalName">RDPConf</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="LegalCopyright">Copyright © Stas'M Corp. 2014</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="LegalTrademarks">Stas'M Corp.</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="OriginalFilename">RDPConf.exe</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="ProductName">RDP Host Support</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="ProductVersion">1.4.0.0</VersionInfoKeys>
|
||||
<VersionInfoKeys Name="Comments">http://stascorp.com</VersionInfoKeys>
|
||||
</VersionInfoKeys>
|
||||
<Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDS)\bin\bcboffice2k140.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDS)\bin\bcbofficexp140.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k140.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
<Excluded_Packages Name="$(BDS)\bin\dclofficexp140.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
|
||||
</Excluded_Packages>
|
||||
</Delphi.Personality>
|
||||
</BorlandProject>
|
||||
<ProjectFileVersion>12</ProjectFileVersion>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
BIN
src-rdpconfig/RDPConf.res
Normal file
BIN
src-rdpconfig/RDPConf.res
Normal file
Binary file not shown.
BIN
src-rdpconfig/manifest.res
Normal file
BIN
src-rdpconfig/manifest.res
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user