using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using SebWindowsConfig.Utilities; namespace SebWindowsConfig { public partial class SebWindowsConfigForm : Form { // ************************* // Constants for GUI widgets // ************************* // Boolean values const int IntFalse = 0; const int IntTrue = 1; // Operating systems const int IntOSX = 0; const int IntWin = 1; const String StringOSX = "OS X"; const String StringWin = "Win"; // URL filter actions const int IntBlock = 0; const int IntAllow = 1; const int IntSkip = 2; const int IntAnd = 3; const int IntOr = 4; const String StringBlock = "block"; const String StringAllow = "allow"; const String StringSkip = "skip"; const String StringAnd = "and"; const String StringOr = "or"; // URL filter table operations const String StringCollapse = "Collapse"; const String StringExpand = "Expand"; const int IntOperationInsert = 0; const int IntOperationPaste = 1; const int IntOperationDelete = 2; const int IntOperationCut = 3; const int IntOperationCopy = 4; const int IntLocationBefore = 0; const int IntLocationAfter = 1; const int IntLocationAt = 2; // Embedded Certificate types const int IntSSLClientCertificate = 0; const int IntIdentity = 1; const int IntCACertificate = 2; const int IntSSLDebugCertificate = 3; const String StringSSLServerCertificate = "SSL Certificate"; const String StringIdentity = "Identity"; const String StringCACertificate = "CA Certificate"; const String StringSSLDebugCertificate = "Debug Certificate"; // Proxy Protocol types const int IntProxyAutoDiscovery = 0; const int IntProxyAutoConfiguration = 1; const int IntProxyHTTP = 2; const int IntProxyHTTPS = 3; const int IntProxyFTP = 4; const int IntProxySOCKS = 5; const int IntProxyRTSP = 6; const int NumProxyProtocols = 7; // Captions for table dataGridViewProxyProtocols const String StringTableCaptionProxyAutoDiscovery = "Auto Proxy Discovery"; const String StringTableCaptionProxyAutoConfiguration = "Automatic Proxy Configuration"; const String StringTableCaptionProxyHTTP = "Web Proxy (HTTP)"; const String StringTableCaptionProxyHTTPS = "Secure Web Proxy (HTTPS)"; const String StringTableCaptionProxyFTP = "FTP Proxy"; const String StringTableCaptionProxySOCKS = "SOCKS Proxy"; const String StringTableCaptionProxyRTSP = "Streaming Proxy (RTSP)"; // Texts for labelProxyServerHost const String StringServerLabelProxyAutoDiscovery = ""; const String StringServerLabelProxyAutoConfiguration = ""; const String StringServerLabelProxyHTTP = "Web"; const String StringServerLabelProxyHTTPS = "Secure Web"; const String StringServerLabelProxyFTP = "FTP"; const String StringServerLabelProxySOCKS = "SOCKS"; const String StringServerLabelProxyRTSP = "Streaming"; // Permitted and Prohibited Processes table columns (0,1,2,3). // Permitted Processes: Active, OS, Executable, Title // Prohibited Processes: Active, OS, Executable, Description // Process Arguments: ArgumentActive, ArgumentParameter const int IntColumnProcessActive = 0; const int IntColumnProcessOS = 1; const int IntColumnProcessExecutable = 2; const int IntColumnProcessTitle = 3; const int IntColumnProcessDescription = 3; const int IntColumnProcessArgument = 1; /* const String StringColumnProcessActive = "Active"; const String StringColumnProcessOS = "OS"; const String StringColumnProcessExecutable = "Executable"; const String StringColumnProcessTitle = "Title"; const String StringColumnProcessDescription = "Description"; const String StringColumnProcessArgument = "Argument"; */ // URL Filter Rules table columns (0,1,2,3,4). // Show, Active, Regex, Expression, Action const int IntColumnURLFilterRuleShow = 0; const int IntColumnURLFilterRuleActive = 1; const int IntColumnURLFilterRuleRegex = 2; const int IntColumnURLFilterRuleExpression = 3; const int IntColumnURLFilterRuleAction = 4; /* const String StringColumnURLFilterRuleShow = "Show"; const String StringColumnURLFilterRuleActive = "Active"; const String StringColumnURLFilterRuleRegex = "Regex"; const String StringColumnURLFilterRuleExpression = "Expression"; const String StringColumnURLFilterRuleAction = "Action"; */ // Embedded Certificates table columns (0,1). // Type, Name const int IntColumnCertificateType = 0; const int IntColumnCertificateName = 1; //const String StringColumnCertificateType = "Type"; //const String StringColumnCertificateName = "Name"; // Proxy Protocols table columns (0,1). // Enable, Type const int IntColumnProxyProtocolEnable = 0; const int IntColumnProxyProtocolType = 1; //const String StringColumnProxyProtocolEnable = "Enable"; //const String StringColumnProxyProtocolType = "Type"; // Bypassed Proxies table column (0). // DomainHostPort const int IntColumnDomainHostPort = 0; //const String StringColumnDomainHostPort = "Domain, Host, Port"; // ******************************** // Global Variables for GUI widgets // ******************************** // Prevent double events from switching to false process index static Boolean ignoreCellEventPermittedProcessesActive = false; static Boolean ignoreCellEventPermittedProcessesOS = false; static Boolean ignoreCellEventPermittedProcessesExecutable = false; static Boolean ignoreCellEventPermittedProcessesTitle = false; static Boolean ignoreCellEventProhibitedProcessesActive = false; static Boolean ignoreCellEventProhibitedProcessesOS = false; static Boolean ignoreCellEventProhibitedProcessesExecutable = false; static Boolean ignoreCellEventProhibitedProcessesDescription = false; static Boolean ignoreWidgetEventPermittedProcessesActive = false; static Boolean ignoreWidgetEventPermittedProcessesOS = false; static Boolean ignoreWidgetEventPermittedProcessesExecutable = false; static Boolean ignoreWidgetEventPermittedProcessesTitle = false; static Boolean ignoreWidgetEventProhibitedProcessesActive = false; static Boolean ignoreWidgetEventProhibitedProcessesOS = false; static Boolean ignoreWidgetEventProhibitedProcessesExecutable = false; static Boolean ignoreWidgetEventProhibitedProcessesDescription = false; // The current SEB configuration file static String currentDireSebConfigFile; static String currentFileSebConfigFile; static String lastPathSebConfigFile; static String currentPathSebConfigFile; static bool currentSebConfigFileWasDuplicated = false; static bool sebConfigPurposeChanged = false; // Strings for encryption identities (KeyChain, Certificate Store) //static ArrayList chooseIdentityStringArrayList = new ArrayList(); //static String[] chooseIdentityStringArray = new String[1]; static readonly List StringCryptoIdentity = new List(); static ArrayList certificateReferences = new ArrayList(); static ArrayList certificateSSLReferences = new ArrayList(); // Entries of ListBoxes //static Byte[] ByteArrayExamKeySalt = new Byte[] {}; static String[] StringCryptoIdentityArray; static readonly String[] StringSebPurpose = new String[2]; static readonly String[] StringSebMode = new String[2]; static readonly String[] StringBrowserViewMode = new String[2]; static readonly String[] StringWindowWidth = new String[5]; static readonly String[] StringWindowHeight = new String[5]; static readonly String[] StringWindowPositioning = new String[3]; static readonly String[] StringTaskBarHeight = new String[3]; static readonly String[] StringPolicyLinkOpening = new String[3]; static readonly String[] StringPolicyFileUpload = new String[3]; static readonly String[] StringPolicyProxySettings = new String[2]; static readonly String[] StringPolicySebService = new String[3]; static readonly String[] StringFunctionKey = new String[12]; static readonly String[] StringActive = new String[2]; static readonly String[] StringOS = new String[2]; static readonly String[] StringAction = new String[5]; static readonly String[] StringCertificateType = new String[4]; static readonly String[] StringProxyProtocolTableCaption = new String[7]; static readonly String[] StringProxyProtocolServerLabel = new String[7]; static readonly Boolean[] BooleanProxyProtocolEnabled = new Boolean[7]; static readonly String[] KeyProxyProtocolType = new String[7]; static readonly String[] KeyProxyProtocolAttribute = new String[7]; static readonly String[] KeyProxyProtocolEnable = new String[7]; static readonly String[] StringMinMacOSVersion = new String[11]; static readonly String[] StringAllowedDisplaysMaxNumber = new String[3]; // *********************** // Methods for GUI widgets // *********************** // ***************************************************************** // Initialise the global variables for the lists and subdictionaries // ***************************************************************** private void InitialiseGlobalVariablesForGUIWidgets() { SEBSettings.permittedProcessIndex = 0; SEBSettings.prohibitedProcessIndex = 0; SEBSettings.embeddedCertificateIndex = 0; SEBSettings.bypassedProxyIndex = 0; // Define the strings for the Encryption Identity StringCryptoIdentity.Add("none"); StringCryptoIdentity.Add("alpha"); StringCryptoIdentity.Add("beta"); StringCryptoIdentity.Add("gamma"); StringCryptoIdentity.Add("delta"); StringCryptoIdentityArray = StringCryptoIdentity.ToArray(); // Define the strings for the SEB purpose StringSebPurpose[0] = "starting an exam"; StringSebPurpose[1] = "configuring a client"; // Define the strings for the SEB mode StringSebMode[0] = "use local settings and load the start URL"; StringSebMode[1] = "connect to the SEB server"; // Define the strings for the Browser View Mode StringBrowserViewMode[0] = "use browser window"; StringBrowserViewMode[1] = "use full screen mode"; // Define the strings for the Window Width StringWindowWidth[0] = ""; StringWindowWidth[1] = "50%"; StringWindowWidth[2] = "100%"; StringWindowWidth[3] = "800"; StringWindowWidth[4] = "1000"; // Define the strings for the Window Height StringWindowHeight[0] = ""; StringWindowHeight[1] = "80%"; StringWindowHeight[2] = "100%"; StringWindowHeight[3] = "600"; StringWindowHeight[4] = "800"; // Define the strings for the Window Positioning StringWindowPositioning[0] = "Left"; StringWindowPositioning[1] = "Center"; StringWindowPositioning[2] = "Right"; // Define the strings for the taskbar Height StringTaskBarHeight[0] = "40"; StringTaskBarHeight[1] = "60"; StringTaskBarHeight[2] = "80"; // Define the strings for the Link Opening Policy StringPolicyLinkOpening[0] = "get generally blocked"; StringPolicyLinkOpening[1] = "open in same window"; StringPolicyLinkOpening[2] = "open in new window"; // Define the strings for the File Upload Policy StringPolicyFileUpload[0] = "manually with file requester"; StringPolicyFileUpload[1] = "by attempting to upload the same file downloaded before"; StringPolicyFileUpload[2] = "by only allowing to upload the same file downloaded before"; // Define the strings for the Proxy Settings Policy StringPolicyProxySettings[0] = "Use system proxy settings"; StringPolicyProxySettings[1] = "Use SEB proxy settings"; // Define the strings for the SEB Service Policy StringPolicySebService[0] = "allow to run SEB without service"; StringPolicySebService[1] = "display warning when service is not running"; StringPolicySebService[2] = "allow to use SEB only with service"; // Define the strings for the Function Keys F1, F2, ..., F12 for (int i = 1; i <= 12; i++) { StringFunctionKey[i - 1] = "F" + i.ToString(); } // Define the strings for the Permitted and Prohibited Processes StringActive[IntFalse] = "false"; StringActive[IntTrue] = "true"; StringOS[IntOSX] = StringOSX; StringOS[IntWin] = StringWin; // Define the strings for the URL Filter Rule Actions StringAction[IntBlock] = StringBlock; StringAction[IntAllow] = StringAllow; StringAction[IntSkip] = StringSkip; StringAction[IntAnd] = StringAnd; StringAction[IntOr] = StringOr; // Define the strings for the Embedded Certificates StringCertificateType[IntSSLClientCertificate] = StringSSLServerCertificate; StringCertificateType[IntIdentity] = StringIdentity; StringCertificateType[IntCACertificate] = StringCACertificate; StringCertificateType[IntSSLDebugCertificate] = StringSSLDebugCertificate; // Define the strings for the Proxy Protocol Table Captions StringProxyProtocolTableCaption[0] = StringTableCaptionProxyAutoDiscovery; StringProxyProtocolTableCaption[1] = StringTableCaptionProxyAutoConfiguration; StringProxyProtocolTableCaption[2] = StringTableCaptionProxyHTTP; StringProxyProtocolTableCaption[3] = StringTableCaptionProxyHTTPS; StringProxyProtocolTableCaption[4] = StringTableCaptionProxyFTP; StringProxyProtocolTableCaption[5] = StringTableCaptionProxySOCKS; StringProxyProtocolTableCaption[6] = StringTableCaptionProxyRTSP; // Define the strings for the Proxy Protocol Server Labels StringProxyProtocolServerLabel[0] = StringServerLabelProxyAutoDiscovery; StringProxyProtocolServerLabel[1] = StringServerLabelProxyAutoConfiguration; StringProxyProtocolServerLabel[2] = StringServerLabelProxyHTTP; StringProxyProtocolServerLabel[3] = StringServerLabelProxyHTTPS; StringProxyProtocolServerLabel[4] = StringServerLabelProxyFTP; StringProxyProtocolServerLabel[5] = StringServerLabelProxySOCKS; StringProxyProtocolServerLabel[6] = StringServerLabelProxyRTSP; // Initialise the booleans for the Proxy Protocols for (int i = 0; i < NumProxyProtocols; i++) { BooleanProxyProtocolEnabled[i] = false; } // Define the strings for the Proxy Protocol Types KeyProxyProtocolType[0] = SEBSettings.KeyAutoDiscovery; KeyProxyProtocolType[1] = SEBSettings.KeyAutoConfiguration; KeyProxyProtocolType[2] = SEBSettings.KeyHTTP; KeyProxyProtocolType[3] = SEBSettings.KeyHTTPS; KeyProxyProtocolType[4] = SEBSettings.KeyFTP; KeyProxyProtocolType[5] = SEBSettings.KeySOCKS; KeyProxyProtocolType[6] = SEBSettings.KeyRTSP; // Define the strings for the Proxy Protocol Attributes KeyProxyProtocolAttribute[0] = SEBSettings.KeyEnable; KeyProxyProtocolAttribute[1] = SEBSettings.KeyPort; KeyProxyProtocolAttribute[2] = SEBSettings.KeyHost; KeyProxyProtocolAttribute[3] = SEBSettings.KeyRequires; KeyProxyProtocolAttribute[4] = SEBSettings.KeyUsername; KeyProxyProtocolAttribute[5] = SEBSettings.KeyPassword; // Define the strings for the Proxy Protocol Enables KeyProxyProtocolEnable[0] = SEBSettings.KeyAutoDiscoveryEnabled; KeyProxyProtocolEnable[1] = SEBSettings.KeyAutoConfigurationEnabled; KeyProxyProtocolEnable[2] = SEBSettings.KeyHTTPEnable; KeyProxyProtocolEnable[3] = SEBSettings.KeyHTTPSEnable; KeyProxyProtocolEnable[4] = SEBSettings.KeyFTPEnable; KeyProxyProtocolEnable[5] = SEBSettings.KeySOCKSEnable; KeyProxyProtocolEnable[6] = SEBSettings.KeyRTSPEnable; // Define the strings for the Min Mac OS Version StringMinMacOSVersion[0] = "OS X 10.7 Lion"; StringMinMacOSVersion[1] = "OS X 10.8 Mountain Lion"; StringMinMacOSVersion[2] = "OS X 10.9 Mavericks"; StringMinMacOSVersion[3] = "OS X 10.10 Yosemite"; StringMinMacOSVersion[4] = "OS X 10.11 El Capitan"; StringMinMacOSVersion[5] = "macOS 10.12 Sierra"; StringMinMacOSVersion[6] = "macOS 10.13 High Sierra"; StringMinMacOSVersion[7] = "macOS 10.14 Mojave"; StringMinMacOSVersion[8] = "macOS 10.15 Catalina"; StringMinMacOSVersion[9] = "macOS 11 Big Sur"; StringMinMacOSVersion[10] = "macOS 12 Monterey"; // Define the strings for the Min Mac OS Version StringAllowedDisplaysMaxNumber[0] = "1"; StringAllowedDisplaysMaxNumber[1] = "2"; StringAllowedDisplaysMaxNumber[2] = "3"; } // ******************************************************* // Initialise the GUI widgets of this configuration editor // ******************************************************* private void InitialiseGUIWidgets() { tabControlSebWindowsConfig.Dock = DockStyle.Fill; // At program start, the local client settings configuration file is loaded currentDireSebConfigFile = SEBClientInfo.SebClientSettingsAppDataDirectory; currentFileSebConfigFile = SEBClientInfo.SEB_CLIENT_CONFIG; StringBuilder sebClientSettingsAppDataBuilder = new StringBuilder(currentDireSebConfigFile).Append(currentFileSebConfigFile); currentPathSebConfigFile = sebClientSettingsAppDataBuilder.ToString(); openFileDialogSebConfigFile.InitialDirectory = Environment.CurrentDirectory; saveFileDialogSebConfigFile.InitialDirectory = Environment.CurrentDirectory; //folderBrowserDialogDownloadDirectoryWin.RootFolder = Environment.SpecialFolder.DesktopDirectory; //folderBrowserDialogLogDirectoryWin .RootFolder = Environment.SpecialFolder.MyDocuments; // Assign the fixed entries to the ListBoxes and ComboBoxes listBoxExitKey1.Items.AddRange(StringFunctionKey); listBoxExitKey2.Items.AddRange(StringFunctionKey); listBoxExitKey3.Items.AddRange(StringFunctionKey); // Assing the list of cryptographic identities/certificates to the ComboBox ArrayList certificateNames = new ArrayList(); certificateReferences = SEBProtectionController.GetCertificatesAndNames(ref certificateNames); comboBoxCryptoIdentity.Items.Add("None"); comboBoxCryptoIdentity.Items.AddRange(certificateNames.ToArray()); comboBoxChooseIdentityToEmbed.Items.AddRange(certificateNames.ToArray()); comboBoxChooseIdentityToEmbed.Text = SEBUIStrings.ChooseEmbeddedCert; ArrayList certificateSSLNames = new ArrayList(); certificateSSLReferences = SEBProtectionController.GetSSLCertificatesAndNames(ref certificateSSLNames); comboBoxChooseSSLServerCertificate.Items.AddRange(certificateSSLNames.ToArray()); comboBoxChooseSSLServerCertificate.Text = SEBUIStrings.ChooseEmbeddedCert; comboBoxChooseCACertificate.Items.AddRange(certificateSSLNames.ToArray()); comboBoxChooseCACertificate.Text = SEBUIStrings.ChooseEmbeddedCert; // At program start, no file has yet been opened, so revert is not possible buttonRevertToLastOpened.Enabled = false; comboBoxMainBrowserWindowWidth.Items.AddRange(StringWindowWidth); comboBoxMainBrowserWindowHeight.Items.AddRange(StringWindowHeight); listBoxMainBrowserWindowPositioning.Items.AddRange(StringWindowPositioning); comboBoxNewBrowserWindowWidth.Items.AddRange(StringWindowWidth); comboBoxNewBrowserWindowHeight.Items.AddRange(StringWindowHeight); listBoxNewBrowserWindowPositioning.Items.AddRange(StringWindowPositioning); comboBoxUrlPolicyMainWindow.Items.Add("Never"); comboBoxUrlPolicyMainWindow.Items.Add("OnlyLoadError"); comboBoxUrlPolicyMainWindow.Items.Add("BeforeTitle"); comboBoxUrlPolicyMainWindow.Items.Add("Always"); comboBoxUrlPolicyNewWindow.Items.Add("Never"); comboBoxUrlPolicyNewWindow.Items.Add("OnlyLoadError"); comboBoxUrlPolicyNewWindow.Items.Add("BeforeTitle"); comboBoxUrlPolicyNewWindow.Items.Add("Always"); comboBoxTaskBarHeight.Items.AddRange(StringTaskBarHeight); listBoxOpenLinksHTML.Items.AddRange(StringPolicyLinkOpening); listBoxChooseFileToUploadPolicy.Items.AddRange(StringPolicyFileUpload); listBoxSebServicePolicy.Items.AddRange(StringPolicySebService); comboBoxMinMacOSVersion.Items.AddRange(StringMinMacOSVersion); comboBoxAllowedDisplaysMaxNumber.Items.AddRange(StringAllowedDisplaysMaxNumber); // Initialise the DataGridViews: // Set "AllowUserToAddRows" to false, to avoid an initial empty first row // Set "RowHeadersVisible" to false, to avoid an initial empty first column // Set "FullRowSelect" to true , to select whole row when clicking on a cell dataGridViewPermittedProcesses.Enabled = false; dataGridViewPermittedProcesses.ReadOnly = false; dataGridViewPermittedProcesses.AllowUserToAddRows = false; dataGridViewPermittedProcesses.RowHeadersVisible = false; dataGridViewPermittedProcesses.MultiSelect = false; dataGridViewPermittedProcesses.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewPermittedProcessArguments.Enabled = false; dataGridViewPermittedProcessArguments.ReadOnly = false; dataGridViewPermittedProcessArguments.AllowUserToAddRows = false; dataGridViewPermittedProcessArguments.RowHeadersVisible = false; dataGridViewPermittedProcessArguments.MultiSelect = false; dataGridViewPermittedProcessArguments.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewProhibitedProcesses.Enabled = false; dataGridViewProhibitedProcesses.ReadOnly = false; dataGridViewProhibitedProcesses.AllowUserToAddRows = false; dataGridViewProhibitedProcesses.RowHeadersVisible = false; dataGridViewProhibitedProcesses.MultiSelect = false; dataGridViewProhibitedProcesses.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewEmbeddedCertificates.Enabled = false; dataGridViewEmbeddedCertificates.ReadOnly = false; dataGridViewEmbeddedCertificates.AllowUserToAddRows = false; dataGridViewEmbeddedCertificates.RowHeadersVisible = false; dataGridViewEmbeddedCertificates.MultiSelect = false; dataGridViewEmbeddedCertificates.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewProxyProtocols.Enabled = false; dataGridViewProxyProtocols.ReadOnly = false; dataGridViewProxyProtocols.AllowUserToAddRows = false; dataGridViewProxyProtocols.RowHeadersVisible = false; dataGridViewProxyProtocols.MultiSelect = false; dataGridViewProxyProtocols.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewPermittedProcesses.Columns[IntColumnProcessActive].ValueType = typeof(Boolean); dataGridViewPermittedProcesses.Columns[IntColumnProcessOS].ValueType = typeof(String); dataGridViewPermittedProcesses.Columns[IntColumnProcessExecutable].ValueType = typeof(String); dataGridViewPermittedProcesses.Columns[IntColumnProcessTitle].ValueType = typeof(String); dataGridViewPermittedProcessArguments.Columns[IntColumnProcessActive].ValueType = typeof(Boolean); dataGridViewPermittedProcessArguments.Columns[IntColumnProcessArgument].ValueType = typeof(String); dataGridViewProhibitedProcesses.Columns[IntColumnProcessActive].ValueType = typeof(Boolean); dataGridViewProhibitedProcesses.Columns[IntColumnProcessOS].ValueType = typeof(String); dataGridViewProhibitedProcesses.Columns[IntColumnProcessExecutable].ValueType = typeof(String); dataGridViewProhibitedProcesses.Columns[IntColumnProcessDescription].ValueType = typeof(String); dataGridViewEmbeddedCertificates.Columns[IntColumnCertificateType].ValueType = typeof(String); dataGridViewEmbeddedCertificates.Columns[IntColumnCertificateName].ValueType = typeof(String); dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolEnable].ValueType = typeof(Boolean); dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolType].ValueType = typeof(String); dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolEnable].ReadOnly = false; dataGridViewProxyProtocols.Columns[IntColumnProxyProtocolType].ReadOnly = true; // Assign the column names to the DataGridViews /* dataGridViewPermittedProcesses.Columns.Add(StringColumnActive , StringColumnActive); dataGridViewPermittedProcesses.Columns.Add(StringColumnOS , StringColumnOS); dataGridViewPermittedProcesses.Columns.Add(StringColumnExecutable, StringColumnExecutable); dataGridViewPermittedProcesses.Columns.Add(StringColumnTitle , StringColumnTitle); dataGridViewPermittedProcessArguments.Columns.Add(StringColumnActive , StringColumnActive); dataGridViewPermittedProcessArguments.Columns.Add(StringColumnArgument, StringColumnArgument); dataGridViewProhibitedProcesses.Columns.Add(StringColumnActive , StringColumnActive); dataGridViewProhibitedProcesses.Columns.Add(StringColumnOS , StringColumnOS); dataGridViewProhibitedProcesses.Columns.Add(StringColumnExecutable , StringColumnExecutable); dataGridViewProhibitedProcesses.Columns.Add(StringColumnDescription, StringColumnDescription); dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleShow , StringColumnURLFilterRuleShow); dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleActive , StringColumnURLFilterRuleActive); dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleRegex , StringColumnURLFilterRuleRegex); dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleExpression, StringColumnURLFilterRuleExpression); dataGridViewURLFilterRules.Columns.Add(StringColumnURLFilterRuleAction , StringColumnURLFilterRuleAction); dataGridViewEmbeddedCertificates.Columns.Add(StringColumnCertificateType, StringColumnCertificateType); dataGridViewEmbeddedCertificates.Columns.Add(StringColumnCertificateName, StringColumnCertificateName); dataGridViewProxyProtocols.Columns.Add(StringColumnProxyProtocolEnable, StringColumnProxyProtocolEnable); dataGridViewProxyProtocols.Columns.Add(StringColumnProxyProtocolType , StringColumnProxyProtocolType); dataGridViewBypassedProxies.Columns.Add(StringColumnDomainHostPort, StringColumnDomainHostPort); */ groupBoxPermittedProcess.Enabled = false; groupBoxProhibitedProcess.Enabled = false; listBoxPermittedProcessOS.Items.AddRange(StringOS); listBoxProhibitedProcessOS.Items.AddRange(StringOS); // Auto-resize the columns and cells //dataGridViewPermittedProcesses .AutoResizeColumns(); //dataGridViewProhibitedProcesses .AutoResizeColumns(); //dataGridViewURLFilterRules .AutoResizeColumns(); //dataGridViewEmbeddedCertificates.AutoResizeColumns(); //dataGridViewProxyProtocols .AutoResizeColumns(); //dataGridViewBypassedProxies .AutoResizeColumns(); //dataGridViewPermittedProcesses .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //dataGridViewProhibitedProcesses .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //dataGridViewURLFilterRules .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //dataGridViewEmbeddedCertificates.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //dataGridViewProxyProtocols .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //dataGridViewBypassedProxies .AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); } } // end of class SebWindowsConfigForm } // end of namespace SebWindowsConfig