/// <summary> /// 构造函数,创建一个指定文件路径的IO操作安全文件操作实例,并根据参数createdThenNotExists决定当文件不存在时是否创建新文件。 /// </summary> /// <param name="fileUrl">用于被操作的IO操作安全文件的文件地址,如果这个文件不存在,会重新创建一个新的文件地址为当前参数的文件。</param> /// <param name="createdThenNotExists">用于决定是否在检测到文件不存在时来创建新文件。</param> /// <exception cref="FileNotFoundException">当参数fileUrl指定的文件找不到,并且不允许根据参数createdThenNotExists决定当文件不存在时是否创建新文件的情况下,则会抛出这个异常。</exception> public IOSecurityFile(string fileUrl, bool createdThenNotExists) { if (createdThenNotExists) { if (!FileOperator.FileExists(fileUrl)) { ExString ciphertext = ExString.Encrypt(string.Empty, FILE_SECURITY_KEY); FileOperator.CreateFile(fileUrl); FileOperator.WriteFile(fileUrl, ciphertext, false); } } else { if (!FileOperator.FileExists(fileUrl)) { throw new FileNotFoundException("指定的文件找不到!", fileUrl); } } ChangeCodeSecurityFlag(CODE_SECURITY_FLAG_STOP); CloseWritePassageway(); _securityFileUrl = fileUrl; _fileContext = string.Empty; _isApplyAccessRule = true; SetPrimeMD5Code(); }
public object DOMParse(XmlElement element, params object[] parameters) { var mapScene = new MapScene(element.Attributes["id"].Value); var chapter = parameters[0] as Chapter; mapScene.CameraType = ExParsers.ParseEnum <CameraType>(ExString.Default(element.GetAttribute("cameraType"), CameraType.Aerial2D.ToString())); mapScene.RenderStyle = ExParsers.ParseEnum <RenderStyle>(ExString.Default(element.GetAttribute("renderStyle"), RenderStyle.Tile.ToString())); mapScene.TileMetaIdentifier = ExString.Default(element.GetAttribute("tileMetaIdentifier"), "OSMTile"); mapScene.UsesGameplayArea = ExString.EqualsDefault(element.GetAttribute("usesGameplayArea"), "yes", false); mapScene.GameplayArea = ExParsers.ParseDefault(element.GetAttribute("gameplayArea"), new RectD(Vector2d.zero, Vector2d.zero)); mapScene.LatLon = ExParsers.ParseDefault(element.GetAttribute("center"), Vector2d.zero); mapScene.Zoom = ExParsers.ParseDefault(element.GetAttribute("zoom"), 19); bool initialScene = ExString.EqualsDefault(element.GetAttribute("start"), "yes", false); if (initialScene) { chapter.setTargetId(mapScene.getId()); } int layer = 0; foreach (var e in element.SelectNodes("map-element")) { var mapElementNode = e as XmlElement; MapElement mapElement = null; XmlElement extElemNode; var targetId = mapElementNode.GetAttribute("targetId"); if ((extElemNode = (XmlElement)mapElementNode.SelectSingleNode("ext-elem-ref")) != null) { var extElem = new ExtElemReference(targetId); mapElement = extElem; extElem.TransformManagerDescriptor = GetDescriptor(ExString.Default(extElemNode.GetAttribute("transformManager"), typeof(GeopositionedDescriptor).FullName)); foreach (var param in extElem.TransformManagerDescriptor.ParameterDescription) { var paramNode = extElemNode.SelectSingleNode("param[@name=\"" + param.Key + "\"]"); if (paramNode != null) { extElem.TransformManagerParameters.Add(param.Key, parseParam(param.Value.Type, paramNode.InnerText)); } } } else { mapElement = new GeoReference(targetId); } mapElement.Conditions = DOMParserUtility.DOMParse <Conditions>(mapElementNode.SelectSingleNode("condition") as XmlElement, parameters); mapElement.Layer = ExParsers.ParseDefault(mapElementNode.GetAttribute("layer"), layer); mapElement.Scale = ExParsers.ParseDefault(mapElementNode.GetAttribute("scale"), 1f); mapElement.Orientation = (Orientation)ExParsers.ParseDefault(mapElementNode.GetAttribute("orientation"), 2); layer = Mathf.Max(mapElement.Layer, layer) + 1; mapScene.Elements.Add(mapElement); } return(mapScene); }
private ExString _code; //触发器事件,就是触发器需要执行的具体操作。 /// <summary> /// 构造函数,创建一个指定的数据库操作实例、触发器名称、执行动作、触发先后时间和预置条件的触发器实例。 /// </summary> /// <param name="sqliteDbOperator">指定的数据库操作实例,这个实例定义了需要操作的SQLite数据库。</param> /// <param name="triggerName">需要定义的触发器的名称。</param> /// <param name="action">指定触发器执行的动作,SQLite 的触发器(Trigger)可以指定在特定的数据库表发生DELETE、INSERT或UPDATE时触发,或在一个或多个指定表的列发生更新时触发。</param> /// <param name="whenExecute">当前触发器在执行操作之前还是之后执行。</param> /// <param name="preCondition">触发器被触发的先决条件。</param> public SQLiteTrigger(SQLiteDBOIEncapsulation sqliteDbOperator, string triggerName, ESQLiteTriggerAction action, ESQLiteWhenExecuteTrigger whenExecute, string preCondition) { _sqliteDbOperator = sqliteDbOperator; _triggerName = triggerName; _triggerAction = action; _whenExecute = whenExecute; _preCondition = preCondition; _code = string.Empty; }
/// <summary> /// 构造函数,初始化一个指定音频资源文件的Sound实例。 /// </summary> /// <param name="soundFileUrl">指定的音频资源文件。</param> /// <exception cref="FileNotFoundException">当参数soundFileUrl指定的文件未找到时,则会抛出这个异常。</exception> public Win32SoundPlayer(ExString soundFileUrl) { if (!FileOperator.FileExists(soundFileUrl)) { throw new FileNotFoundException("指定的文件找不到!", soundFileUrl); } else { _soundFileUrl = soundFileUrl; } }
private static BubbleType GetBubbleType(ConversationLineDataControl line) { var matched = ExString.Default(Regex.Match(line.getText(), @"^#([^\s]+)").Groups[1].Value, "-"); var bubbleType = BubbleTypes.FirstOrDefault(b => matched == b.Identifier); if (string.IsNullOrEmpty(bubbleType.Identifier)) { bubbleType = new BubbleType(matched); } return(bubbleType); }
/// <summary> /// 构造函数,通过一个指定的数据库文件地址和数据库访问密码来初始化当前实例。 /// </summary> /// <param name="dbFileUrl">指定的数据库文件地址,如果这个文件地址无效则会抛出FileNotFoundException异常。</param> /// <param name="dbPassword">需要访问的数据库的访问密码,如果这个密码不正确,可能会引发一些无法在当前构造函数捕获的异常。</param> /// <exception cref="FileNotFoundException">如果找不到dbFileUrl参数指定的数据库文件,则会抛出这个异常。</exception> /// <exception cref="FileTypeNotLegitimateException">如果文件类型不符合匹配条件,则将会抛出这个异常。</exception> public MSAccessDBOIEncapsulation(Uri dbFileUrl, ExString dbPassword) { if (FileOperator.FileExists(dbFileUrl.LocalPath) == false) { throw new FileNotFoundException("找不到数据库文件!"); } if (FileOperator.GetFileExtension(dbFileUrl.LocalPath) != ".mdb") { throw new FileTypeNotLegitimateException(); } _dbConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @dbFileUrl.LocalPath + @";Jet OLEDB:Database Password=" + dbPassword; }
private const string FILE_SECURITY_KEY = @"cabinink"; //文件加密和解密用的安全密钥。 /// <summary> /// 构造函数,创建一个指定文件路径的IO操作安全文件操作实例。 /// </summary> /// <param name="fileUrl">用于被操作的IO操作安全文件的文件地址。</param> /// <exception cref="FileNotFoundException">当参数fileUrl指定的文件找不到时,则会抛出这个异常。</exception> public IOSecurityFile(string fileUrl) { if (!FileOperator.FileExists(fileUrl)) { throw new FileNotFoundException("指定的文件找不到!", fileUrl); } ChangeCodeSecurityFlag(CODE_SECURITY_FLAG_STOP); CloseWritePassageway(); _securityFileUrl = fileUrl; _fileContext = string.Empty; _isApplyAccessRule = true; SetPrimeMD5Code(); }
private static String GetHtmlStr(String value) { value = ExString.SafeTrim(value); if (String.IsNullOrEmpty(value)) { return(" "); } else { return(value); } }
static void StringDemo() { //即key/value //和Memcached类似 using (ExString service = new ExString()) { service.KeyFulsh(); service.StringSet("sk1", "aaa"); Console.WriteLine(service.StringGet("sk1")); Console.WriteLine(service.StringGetSet("sk1", "abc")); Console.WriteLine(service.StringGet("sk1")); service.StringAppend("sk1", "defg"); Console.WriteLine(service.StringGet("sk1")); service.StringSet("sk1", "aaa", new TimeSpan(0, 0, 0, 5)); Console.WriteLine(service.StringGet("sk1")); Thread.Sleep(5000); Console.WriteLine("5秒过期:" + service.StringGet("sk1")); } }
/// <summary> /// 移动占用空间比较大的文件。 /// </summary> /// <param name="sourceFileUrl">需要被移动的文件的文件地址。</param> /// <param name="targetFileUrl">移动操作的目标地址。</param> /// <param name="transmissionSize">每一次传输的大小,通常这个值设定为1024即可。</param> /// <param name="isCheckFileIntegrity">移动文件之后是否执行完整性检验。</param> /// <exception cref="AbortedCheckOperationException">当文件完整性检查失败或者结果不符合要求时,则会抛出这个异常。</exception> public static void MoveBigFile(string sourceFileUrl, string targetFileUrl, int transmissionSize, bool isCheckFileIntegrity) { FileSignature sourceSignature = new FileSignature(sourceFileUrl); FileSignature targetSignature = new FileSignature(targetFileUrl); ExString srcMd5Value = string.Empty; ExString targetMd5Value = string.Empty; CopyBigFile(sourceFileUrl, targetFileUrl, transmissionSize); if (isCheckFileIntegrity) { srcMd5Value = sourceSignature.GetMD5String(); targetMd5Value = targetSignature.GetMD5String(); if (!srcMd5Value.Equals(targetMd5Value)) { throw new AbortedCheckOperationException(); } } DeleteFile(sourceFileUrl); }
private bool InputCheck2(string _text) { string _strText = ""; string _chktext = ""; int _selectionStart = 0; switch (InputMode) { case geInputMode.Number: // 最大・最小入力値チェック _strText = this.Text; if (this.SelectedText != "") { _strText = this.Text.Replace(this.SelectedText, ""); } if (ExCast.zCDbl(_strText + _text) < this.MinNumber || ExCast.zCDbl(_strText + _text) > this.MaxNumber) { return(false); } double _dbl = ExCast.zCDbl(_strText + _text); string strText; string str; if (this.DecimalNum > 0) { if (this.DecimalNum == 1) { strText = _dbl.ToString("#,##0.00"); str = strText.Substring(strText.Length - 1, 1); if (str != "0") { return(false); } } else if (this.DecimalNum == 2) { strText = _dbl.ToString("#,##0.000"); str = strText.Substring(strText.Length - 1, 1); if (str != "0") { return(false); } } else { return(false); } } break; case geInputMode.ID: case geInputMode.Alphanumeric: case geInputMode.FullKana: case geInputMode.HalfKana: case geInputMode.FullShapeNative: if (ExCast.zCInt(this.MaxLengthB) != 0) { if (ExString.IsFullString(_text) || ExString.LenB(_text) >= 2) { // 最大入力バイト数チェック if (ExString.LenB(this.Text) - ExString.LenB(this.SelectedText) > ExCast.zCInt(this.MaxLengthB)) { _chktext = this.Text + this.SelectedText; for (int i = 1; i <= _chktext.Length; i++) { _chktext = _chktext.Substring(0, _chktext.Length - 1); if (ExString.LenB(_chktext) <= ExCast.zCInt(this.MaxLengthB)) { _selectionStart = this.SelectionStart + _text.Length; this.Text = _chktext; this.SelectionStart = _selectionStart; break; } } return(false); } } else { // 最大入力バイト数チェック if (ExString.LenB(this.Text + _text) - ExString.LenB(this.SelectedText) > ExCast.zCInt(this.MaxLengthB)) { _chktext = this.Text + _text + this.SelectedText; for (int i = 1; i <= _chktext.Length; i++) { _chktext = _chktext.Substring(0, _chktext.Length - 1); if (ExString.LenB(_chktext) <= ExCast.zCInt(this.MaxLengthB)) { this.Text = _chktext; break; } } return(false); } } } break; } // 全角チェック switch (InputMode) { case geInputMode.Number: case geInputMode.ID: case geInputMode.Alphanumeric: //case geInputMode.HalfKana: string strText = ""; for (int i = 1; i <= this.Text.Length; i++) { string str = this.Text.Substring(i - 1, 1); byte[] bytes = ExSjisEncoding.ucstojms(str); // 全角は除く if (bytes.Length == 1) { strText += str; } } if (strText != this.Text) { return(false); //this.Text = strText; } break; } // 0入力チェック switch (InputMode) { case geInputMode.ID: if (this.Text + _text == "0") { return(false); } break; } return(true); }
public static void Query(string Username, string Password, string Domain, string ComputerName, object Hive, string Subkey, string Valuename, string Value, object Access) { try { if (Valuename == null) { if (CheckAccess.Check(Username, Password, Domain, ComputerName, Hive, Subkey, Access)) { StdRegProv.EnumValues.Get(Username, Password, Domain, ComputerName, Hive, Subkey); } else { Console.WriteLine($"[-] Error: Do not have permissions to query {Subkey}"); Environment.Exit(1); } } else { if (CheckAccess.Check(Username, Password, Domain, ComputerName, Hive, Subkey, Access)) { object Valuetype = null; int val = EnumValues.GetValue(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); switch (val) { case (1): Valuetype = ValueType.String; break; case (2): Valuetype = ValueType.ExtendedString; break; case (3): Valuetype = ValueType.Binary; break; case (4): Valuetype = ValueType.DWORD; break; case (7): Valuetype = ValueType.MultiString; break; case (11): Valuetype = ValueType.QWORD; break; } switch (Valuetype) { case (ValueType.String): StdRegProv.String.Get(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); break; case (ValueType.ExtendedString): ExString.Get(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); break; case (ValueType.Binary): Binary.Get(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); break; case (ValueType.DWORD): Dword.Get(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); break; case (ValueType.MultiString): MultiString.Get(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); break; case (ValueType.QWORD): Qword.Get(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); break; default: Console.WriteLine($"[-] Error: Do not have permissions to query {Subkey}"); Environment.Exit(1); break; } } else { Console.WriteLine($"[-] Error: Do not have permissions to query {Subkey}"); Environment.Exit(1); } } } catch (Exception e) { Console.WriteLine($"[-] Error: {e.Message}"); } }
// 入力チェック public override void InputCheckUpdate() { #region Field string errMessage = ""; string warnMessage = ""; int _selectIndex = 0; int _selectColumn = 0; bool IsDetailExists = false; Control errCtl = null; List <string> list_warn_commodity = new List <string>(); #endregion #region 必須チェック // 問い合わせ内容 if (string.IsNullOrEmpty(this.txtContent.Text.Trim())) { errMessage += "問い合わせ内容が入力されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtTitle; } } // 担当 if (this.cmbPerson.SelectedIndex == -1) { errMessage += "担当が選択されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.cmbPerson; } } #endregion #region 範囲チェック //if (ExCast.zCLng(_entityH._no) > 999999999999999) //{ // errMessage += "受注番号には15桁以内の正の整数を入力して下さい。" + Environment.NewLine; //} //if (ExCast.zCLng(_entityH._estimateno) > 999999999999999) //{ // errMessage += "見積番号には15桁以内の正の整数を入力して下さい。" + Environment.NewLine; // if (errCtl == null) errCtl = this.utlEstimateNo.txtID; //} if (ExString.LenB(this.txtContent.Text) > 1000) { errMessage += "問い合わせ内容には全角500桁文字以内(半角1000桁文字以内)を入力して下さい。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtContent; } } #endregion #region アップロードチェック if (this.tblUpload.Text == "※ファイルアップロードに失敗しました。") { warnMessage += "ファイルアップロードに失敗しています。" + Environment.NewLine; } #endregion #region エラー or 警告時処理 bool flg = true; if (!string.IsNullOrEmpty(errMessage)) { ExMessageBox.Show(errMessage, Dlg.MessageBox.MessageBoxIcon.Error); flg = false; } else { if (!string.IsNullOrEmpty(warnMessage)) { warnMessage += "このまま登録を続行してもよろしいですか?" + Environment.NewLine; ExMessageBox.ResultShow(this, errCtl, warnMessage); flg = false; // ResultMessageBoxにてResult処理 } } this.txtDummy.IsTabStop = false; if (flg == false) { if (errCtl != null) { ExBackgroundWorker.DoWork_Focus(errCtl, 10); } return; } #endregion #region 更新処理 UpdateData(Common.geUpdateType.Update); #endregion }
// 入力チェック(更新時) public override void InputCheckUpdate() { #region Field string errMessage = ""; string warnMessage = ""; int _selectIndex = 0; int _selectColumn = 0; Control errCtl = null; #endregion try { #region 必須チェック // ID if (this.cmbLoginId.SelectedIndex == -1) { errMessage += "ログインIDが選択されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.cmbLoginId; } } // 変更ログインID if (string.IsNullOrEmpty(_entity._after_login_id)) { errMessage += "変更ログインIDが入力されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginId; } } // ログインパスワード if (string.IsNullOrEmpty(_entity._login_password)) { errMessage += "ログインパスワードが入力されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginId; } } // ログインパスワード確認 if (string.IsNullOrEmpty(txtLoginPasswordConfirm.Password)) { errMessage += "ログインパスワード確認が入力されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginId; } } // 名称 if (string.IsNullOrEmpty(_entity._name)) { errMessage += "ユーザー名が入力されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtName; } } // 会社グループ if (string.IsNullOrEmpty(ExCast.zCStr(_entity._group_id))) { errMessage += "グループが入力(選択)されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.utlCompanyGroup.txtID; } } // デフォルト入力担当 if (string.IsNullOrEmpty(ExCast.zCStr(_entity._person_id))) { errMessage += "デフォルト入力担当が入力(選択)されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.utlPerson.txtID; } } //// 表示区分 //if (string.IsNullOrEmpty(ExCast.zCStr(_entity._display_division_id))) //{ // errMessage += "表示区分が入力(選択)されていません。" + Environment.NewLine; // if (errCtl == null) errCtl = this.utlDisplay.txtID; //} #endregion #region 適正値入力チェック // パスワード if (this.txtLoginPassword.Password != this.txtLoginPasswordConfirm.Password) { errMessage += "パスワードが一致しません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginPasswordConfirm; } } // 会社グループ if (ExCast.zCInt(_entity._group_id) != 0 && string.IsNullOrEmpty(_entity._group_nm)) { errMessage += "会社グループが適切に入力(選択)されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.utlCompanyGroup.txtID; } } // 担当 if (ExCast.zCInt(_entity._person_id) != 0 && string.IsNullOrEmpty(_entity._person_nm)) { errMessage += "デフォルト入力担当が適切に入力(選択)されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.utlPerson.txtID; } } // 表示区分 if (ExCast.zCInt(_entity._display_division_id) != 0 && string.IsNullOrEmpty(_entity._display_division_nm)) { errMessage += "表示区分が適切に入力(選択)されていません。" + Environment.NewLine; if (errCtl == null) { errCtl = this.utlDisplay.txtID; } } #endregion #region 日付チェック //// 納入指定日 //if (string.IsNullOrEmpty(_entity.supply_ymd) == false) //{ // if (ExCast.IsDate(_entity.supply_ymd) == false) // { // errMessage += "納入指定日の形式が不正です。(yyyy/mm/dd形式で入力(選択)して下さい)" + Environment.NewLine; // if (errCtl == null) errCtl = this.datNokiYmd; // } //} #endregion #region 日付変換 // 受注日 //if (string.IsNullOrEmpty(_entity.order_ymd) == false) //{ // _entity.order_ymd = ExCast.zConvertToDate(_entity.order_ymd).ToString("yyyy/MM/dd"); //} #endregion #region 数値チェック #endregion #region 正数チェック #endregion #region 範囲チェック if (ExString.LenB(_entity._after_login_id) < 4) { errMessage += "変更ログインIDには半角英数4桁以上を入力して下さい。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginId; } } if (ExString.LenB(_entity._after_login_id) > 10) { errMessage += "変更ログインIDには半角英数10桁以内を入力して下さい。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginId; } } if (ExString.LenB(_entity._login_password) < 4) { errMessage += "ログインパスワードには半角英数4桁以上を入力して下さい。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginPassword; } } if (ExString.LenB(_entity._login_password) > 10) { errMessage += "ログインパスワードには半角英数20桁以内を入力して下さい。" + Environment.NewLine; if (errCtl == null) { errCtl = this.txtLoginPassword; } } #endregion #region エラー or 警告時処理 bool flg = true; if (!string.IsNullOrEmpty(errMessage)) { ExMessageBox.Show(errMessage, Dlg.MessageBox.MessageBoxIcon.Error); flg = false; } if (!string.IsNullOrEmpty(warnMessage)) { warnMessage += "このまま登録を続行してもよろしいですか?" + Environment.NewLine; ExMessageBox.ResultShow(this, errCtl, warnMessage); flg = false; //if (ExMessageBox.ResultShow(warnMessage) == MessageBoxResult.No) //{ // flg = false; //} } this.txtDummy.IsTabStop = false; if (flg == false) { if (errCtl != null) { ExBackgroundWorker.DoWork_Focus(errCtl, 10); } return; } #endregion #region 更新処理 switch (this.utlFunctionKey.gFunctionKeyEnable) { case Utl_FunctionKey.geFunctionKeyEnable.New: case Utl_FunctionKey.geFunctionKeyEnable.Init: //UpdateData(Common.geUpdateType.Insert); break; case Utl_FunctionKey.geFunctionKeyEnable.Upd: UpdateData(Common.geUpdateType.Update); break; default: break; } #endregion } finally { Common.gblnBtnProcLock = false; Common.gblnBtnDesynchronizeLock = false; } }
public static void Write(string Username, string Password, string Domain, string ComputerName, object Hive, string Subkey, string Valuename, string Value, string Type, object Access) { try { if (CheckAccess.Check(Username, Password, Domain, ComputerName, Hive, Subkey, Access)) { object Valuetype = null; if (Type != null) { switch (Type.ToLower()) { case ("string"): Valuetype = ValueType.String; break; case ("exstring"): Valuetype = ValueType.ExtendedString; break; case ("binary"): Valuetype = ValueType.Binary; break; case ("dword"): Valuetype = ValueType.DWORD; break; case ("multistring"): Valuetype = ValueType.MultiString; break; case ("qword"): Valuetype = ValueType.QWORD; break; } } else { int val = EnumValues.GetValue(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename); switch (val) { case (1): Valuetype = ValueType.String; break; case (2): Valuetype = ValueType.ExtendedString; break; case (3): Valuetype = ValueType.Binary; break; case (4): Valuetype = ValueType.DWORD; break; case (7): Valuetype = ValueType.MultiString; break; case (11): Valuetype = ValueType.QWORD; break; } } switch (Valuetype) { case (ValueType.String): StdRegProv.String.Set(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename, Value); break; case (ValueType.ExtendedString): ExString.Set(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename, Value); break; case (ValueType.Binary): Binary.Set(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename, Convert.FromBase64String(Value)); break; case (ValueType.DWORD): Dword.Set(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename, Convert.ToUInt32(Value)); break; case (ValueType.MultiString): MultiString.Set(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename, Value.Split(',')); break; case (ValueType.QWORD): Qword.Set(Username, Password, Domain, ComputerName, Hive, Subkey, Valuename, Convert.ToUInt64(Value)); break; default: Console.WriteLine($"[-] Error: Do not have permissions to query {Subkey}"); Environment.Exit(1); break; } } else { Console.WriteLine($"[-] Error: Do not have permissions to set {Subkey}"); Environment.Exit(1); } } catch (Exception e) { Console.WriteLine($"[-] Error: {e.Message}"); } }