コード例 #1
0
ファイル: MRB_Git.cs プロジェクト: mrbm2007/stopwatch
 internal void CloseBackUpDrive(int delay = 5 * 60 * 1000)
 {
     if (drive != "")
     {
         try
         {
             if (CloseBackUpDrive_timer != null)
             {
                 CloseBackUpDrive_timer.Stop();
             }
             CloseBackUpDrive_timer          = new System.Windows.Forms.Timer();
             CloseBackUpDrive_timer.Interval = delay + 1;
             CloseBackUpDrive_timer.Tick    += (ss, ee) =>
             {
                 try
                 {
                     if (CloseBackUpDrive_timer != null)
                     {
                         CloseBackUpDrive_timer.Stop();
                     }
                     CMD.RunBatString($"net use {drive}: /delete /Y ");
                     drive = "";
                     WebServer.Default.SendData("backup_proj", "act", "stop_share", "project", project_code);
                 }
                 catch { }
             };
             CloseBackUpDrive_timer.Start();
         }
         catch { }
     }
 }
コード例 #2
0
ファイル: MRB_Git.cs プロジェクト: mrbm2007/stopwatch
        internal void OpenBackUpDrive()
        {
            if (!NetworkMode)
            {
                return;
            }
            if (CloseBackUpDrive_timer != null)
            {
                CloseBackUpDrive_timer.Stop();
            }
            if (drive != "")
            {
                try
                {
                    if (Directory.Exists(drive + ":\\"))
                    {
                        return;
                    }
                }
                catch { }
            }
            drive = Utils.GetFreeDriveLeter();
            var res = WebServer.Default.SendData("backup_proj", "act", "start_share", "project", project_code, "proj_name", project_name);

            if (res.TrimStart().StartsWith("err:"))
            {
                throw new Exception(res.Replace("err:", "خطا:"));
            }
            var V      = res.Split(new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
            var host   = NetworkPath;
            var path   = V[0];
            var user   = V[1];
            var pass   = V[2];
            var result = CMD.RunBatString(
                $@"
cmdkey /add:{ host } /user:{ user } /pass:{ pass } 
net use {drive}: \\{ host }\{path} /p:no
cmdkey /add:{ host } /user:net /pass:123net
", read_result: true);

            if (result.Contains("[Error]"))
            {
                drive = "";
                throw new Exception(result.Split(new string[] { "[Error]" }, StringSplitOptions.None)[1]);
            }
        }