示例#1
0
 private void toolStripStatusLabel2_Click(object sender, EventArgs e)
 {
     if (Form_msg.Show(this, "لغو عملیات؟", btn: MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         git.abort = true;
     }
 }
示例#2
0
        private void button_restore_Click(object sender, EventArgs e)
        {
            if (dataGridView_backups.SelectedRows.Count == 0)
            {
                return;
            }
            try
            {
                var tmp = textBox_local.Text.Replace("\r", "").Replace("\n", "").Replace("\\", "").Replace("--", "-").Replace("--", "-").Trim();

                if (tmp == "" || tmp == "-")
                {
                    Form_msg.Show(this, "آدرس محلی را وارد کنید");
                    return;
                }
                var b = dataGridView_backups.SelectedRows[0].Cells[0].Value as MRB_Git.BackupInfo;
                if (b.InfoSection["user"] != textBox_user.Text)
                {
                    return;
                }
                if (Form_msg.Show(this, "فایل موجود در آدرس محلی کاملا حذف شود؟" + "\r\n" + textBox_local.Text.Trim(),
                                  btn: MessageBoxButtons.YesNo, icon: MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    Directory.Delete(textBox_local.Text.Trim() + "\\", true);
                }
                backgroundWorker_restore.RunWorkerAsync(new object[] { b, textBox_local.Text.Trim() });
            }
            catch { }
        }
示例#3
0
 private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (Form_msg.Show(this, "با حذف یک پشتیبانی، فایل مربوطه نیز حذف خواهند شد. آیا ادامه می دهید؟", btn: MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         var b = dataGridView_backups.SelectedRows[0].Cells[0].Value as MRB_Git.BackupInfo;
         var n = git.Delete(b.path);
         button_refresh_Click(this, null);
         Form_msg.Show(this, n + " " + "فایل پاک شد");
     }
 }
示例#4
0
 public Form_MRB_Git(MyData db, Project project)
 {
     try
     {
         InitializeComponent();
         this.project        = project;
         this.db             = db;
         textBox_server.Text = db.settings.BackUpServer;
         height_full         = this.Height;
         if (project != null)
         {
             textBox_project.Text  = project.code;
             git.user              = textBox_user.Text = db.user.ID;
             textBox_local.Text    = project.LocalPath;
             textBox_skip_pat.Text = project.BackUpSkipPattern;
             if (db.settings.BackUpServer + "" == "" || db.settings.BackUpServer + "" == "\\")
             {
                 checkBox_network.Checked = true;
             }
             textBox_skip_pat_TextChanged(this, null);
         }
         else
         {
             if (WebServer.Default.IsConnected)
             {
                 Height = 130;
                 textBox_project.ReadOnly = false;
                 textBox_user.ReadOnly    = false;
                 checkBox_network.Checked = true;
                 checkBox_network.Enabled = false;
                 textBox_project.Text     = "";
                 git.user = textBox_user.Text = "";
                 textBox_user.AutoCompleteCustomSource.Clear();
                 textBox_user.AutoCompleteMode   = AutoCompleteMode.SuggestAppend;
                 textBox_user.AutoCompleteSource = AutoCompleteSource.CustomSource;
                 Users = WebServer.Default.GetUserList();
                 foreach (IniFile.IniSection user in Users.Sections)
                 {
                     textBox_user.AutoCompleteCustomSource.Add(" " + user["name"].Trim());
                     textBox_user.AutoCompleteCustomSource.Add(user["name"].Trim());
                 }
                 textBox_user.Text = db.user.name;
                 button_ok.Visible = true;
             }
             else
             {
                 Form_msg.Show(this, new Exception("خطا در اتصال به شبکه! این قابلیت فقط تحت شبکه در دسترس است"));
                 timer_close.Start();
             }
         }
     }
     finally
     { ignor_events = false; }
     textBox_server_TextChanged(this, null);
 }
示例#5
0
        public WordEditor(string fileName)
        {
            this.FileName = fileName;
            while (ExcelEditor.IsFileLocked(FileName))
            {
                Form_msg.Show(null, "فایل باز است:" + "\r\n" + FileName + "\r\n" + "لطفا آن را ببندید");
            }

            dir = Path.GetTempPath() + "\\stp-" + Path.GetFileNameWithoutExtension(FileName) + "\\";
            Zip.UnZipFiles(FileName, dir, deleteZipFile: false);
            Content = File.ReadAllText(dir + "word\\document.xml");
        }
示例#6
0
 private void Form_MRB_Git_all_Shown(object sender, EventArgs e)
 {
     if ((DateTime.Now - LastMessageShown).TotalMinutes > 5)
     {
         if (Form_msg.Show(this, "لیست پروژه ها از سرور بارگذاری شود؟" + "\r\n" + "نام و کد پروژه ها از سرور دریافت خواهد شد", btn: MessageBoxButtons.YesNo) == DialogResult.Yes)
         {
             if (Form_list.LoadProjectList(this))
             {
                 UpdateList();
             }
         }
     }
 }
示例#7
0
 private void backgroundWorker_back_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     toolStripProgressBar1.Visible = false;
     toolStripStatusLabel1.Visible = false;
     toolStripStatusLabel2.Visible = false;
     button_refresh_Click(sender, e);
     button_backup.Enabled = true;
     if (e.Result is Exception)
     {
         Form_msg.Show(this, e.Result as Exception, "StopWatch - BackUp");
     }
     if (warning_files != null && warning_files.Count > 0)
     {
         new Form_MRB_Git_Warning(last_backup_info, warning_files).ShowDialog();
         button_refresh_Click(sender, e);
     }
     git.CloseOpennedArchives();
 }
示例#8
0
 private void backgroundWorker_restore_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     toolStripProgressBar1.Visible = false;
     toolStripStatusLabel1.Visible = false;
     toolStripStatusLabel2.Visible = false;
     if (e.Result is Exception)
     {
         Form_msg.Show(this, e.Result as Exception, "StopWatch - Restore");
     }
     if (warning_files != null && warning_files.Count > 0)
     {
         var res = "";
         foreach (var f in warning_files)
         {
             res += f[0] + "\r\n";
         }
         Form_msg.Show(this, "فایل های زیر کپی نشدند، زیرا از سرور حذف شده اند" + "\r\n\r\n" + res, icon: MessageBoxIcon.Error, rtl: RightToLeft.No);
     }
 }
示例#9
0
 internal void button_backup_Click(object sender, EventArgs e)
 {
     if (textBox_local.Text.Trim() == "")
     {
         Form_msg.Show(this, "آدرس محلی را وارد کنید");
         return;
     }
     try
     {
         git.OpenBackUpDrive();
     }
     catch (Exception ex)
     {
         Form_msg.Show(this, new Exception("خطا در باز کردن درایو شبکه" + " : " + ex.Message, ex));
         return;
     }
     button_backup.Enabled = false;
     backgroundWorker_back.RunWorkerAsync();
 }
示例#10
0
 private void checkBox_network_CheckedChanged(object sender, EventArgs e)
 {
     try
     {
         this.Enabled = false;
         Refresh();
         Application.DoEvents();
         button_browse_server.Enabled =
             textBox_server.Enabled   =
                 !checkBox_network.Checked;
         git.CloseBackUpDrive();
         if (checkBox_network.Checked)
         {
             var res = User.Check(db.user.ID, db.user.PASS);
             if (res == "ok")
             {
                 textBox_server.Text = "";
                 textBox_server_TextChanged(this, null);
             }
             else
             {
                 Form_msg.Show(this, "خطا در اتصال به شبکه" + "\r\n'" + res + "'");
                 new Form_user(db.user?.ID, db.user?.PASS).ShowDialog();
                 res = User.Check(db.user.ID, db.user.PASS);
                 if (res == "ok")
                 {
                     textBox_server.Text = "";
                     textBox_server_TextChanged(this, null);
                 }
                 else
                 {
                     checkBox_network.Checked = false;
                 }
             }
         }
     }
     finally
     {
         this.Enabled = true;
     }
 }
示例#11
0
        private void saveasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (treeView1.SelectedNode == null)
            {
                return;
            }
            var file = treeView1.SelectedNode.Tag + "";

            if (treeView1.SelectedNode.Nodes.Count > 0)
            {
                using (var sdg = new FolderBrowserDialog())
                    if (sdg.ShowDialog() == DialogResult.OK)
                    {
                        var dir       = sdg.SelectedPath + "\\" + treeView1.SelectedNode.Text + "\\";
                        var overwrite = DialogResult.No;
                        if (Directory.Exists(dir))
                        {
                            overwrite = Form_msg.Show(this, "در صورت وجود فایل ها در آدرس انتخاب شده، فایل ها جایگزین شوند؟", btn: MessageBoxButtons.YesNo, icon: MessageBoxIcon.Question);
                        }
                        if (overwrite != DialogResult.Cancel)
                        {
                            CopyNodeTo(dir, treeView1.SelectedNode, overwrite == DialogResult.Yes);
                        }
                    }
            }
            else
            {
                using (var sdg = new SaveFileDialog()
                {
                    Filter = Path.GetExtension(file) + "|*" + Path.GetExtension(file) + "|All files|*.*",
                    FileName = treeView1.SelectedNode.Text,
                    OverwritePrompt = true
                })
                {
                    if (sdg.ShowDialog() == DialogResult.OK)
                    {
                        File.Copy(file, sdg.FileName, true);
                    }
                }
            }
        }
示例#12
0
 private void button_ok_Click(object sender, EventArgs e)
 {
     try
     {
         if (!textBox_user.AutoCompleteCustomSource.Contains(textBox_user.Text.Trim()))
         {
             Form_msg.Show(this, new Exception("نام کاربر درست وارد نشده است!"));
             return;
         }
         else
         {
             foreach (IniFile.IniSection u in Users.Sections)
             {
                 if ((u["name"] + "").Trim() == git.user)
                 {
                     git.user = textBox_user.Text = (u["id"] + "").Trim();
                     break;
                 }
             }
         }
         if (textBox_project.Text.Trim() == "")
         {
             Form_msg.Show(this, new Exception("کد پروژه درست وارد نشده است!"));
             return;
         }
         project = db.GetByCode(textBox_project.Text.Trim()) ??
                   new Project()
         {
             code = textBox_project.Text.Trim()
         };
         label_proj_name.Text = project.Name;
         button_refresh_Click(this, null);
         Height                   = height_full;
         button_ok.Visible        = false;
         textBox_project.ReadOnly = true;
         textBox_user.ReadOnly    = true;
     }
     catch { }
 }
示例#13
0
        public ExcelGenerator(string FileName, int sheet = 1, bool refresh_data = false)
        {
            this.FileName = FileName;
            int rrr = 10;

            while (File.Exists(FileName) && IsFileLocked(FileName) && rrr-- > 0)
            {
                if (Form_msg.Show(null,
                                  "فایل باز است:" + "\r\n" + FileName + "\r\n" + "لطفا آن را ببندید",
                                  "StopWatch", btn: MessageBoxButtons.YesNo, yesCaption: "ادامه", noCaption: "توقف") == DialogResult.No)
                {
                    HasError = true;
                    return;
                }
            }
            if (refresh_data)
            {
                RefreshData();
            }
            dir = Path.GetTempPath() + "\\stp-" + Path.GetFileNameWithoutExtension(FileName) + "\\";
            Zip.UnZipFiles(FileName, dir, deleteZipFile: false);
            CurrentSheet = sheet;
        }
示例#14
0
 private void button_view_Click(object sender, EventArgs e)
 {
     try
     {
         try
         {
             git.OpenBackUpDrive();
         }
         catch (Exception ex)
         {
             Form_msg.Show(this, new Exception("خطا در باز کردن درایو شبکه" + " : " + ex.Message, ex));
             return;
         }
         if (dataGridView_backups.SelectedRows.Count == 0)
         {
             return;
         }
         var b = dataGridView_backups.SelectedRows[0].Cells[0].Value as MRB_Git.BackupInfo;
         if (b.InfoSection["user"] != textBox_user.Text)
         {
             var U = WebServer.Default.GetUserInfo(textBox_user.Text);
             if (U.GetSection(0)["level"] != "مدیر_مرکز" &&
                 U.GetSection(0)["level"] != "مدیران" &&
                 U.GetSection(0)["level"] != "کنترل" &&
                 U.GetSection(0)["level"] != "مدیر_فنی")
             {
                 return;
             }
         }
         new Forms.BackUpProj.Form_MRB_Git_view(git, b).ShowDialog();
     }
     finally
     {
         git.CloseBackUpDrive();
     }
 }
示例#15
0
 private void button_ok_Click(object sender, EventArgs e)
 {
     if (ignorEvents)
     {
         return;
     }
     try
     {
         for (int i = 0; i < dataGridView1.ColumnCount; i++)
         {
             dataGridView1[i, 0].ErrorText = "";
         }
         var t = new Time_(db.GetByName(dataGridView1[0, 0].Value.ToString()));
         try
         {
             var date = Utils.PersianParse(dataGridView1[2, 0].Value.ToString());
             try
             {
                 if (!(dataGridView1[3, 0].Value + "").Contains(":"))
                 {
                     dataGridView1[3, 0].Value += ":00";
                 }
                 var start = dataGridView1[3, 0].Value.ToString().Split(new char[] { ':' });
                 t.Start = new DateTime(date.Year, date.Month, date.Day,
                                        Convert.ToInt16(start[0]), Convert.ToInt16(start[1]), 0);
             }
             catch { dataGridView1[3, 0].ErrorText = "?"; }
         }
         catch { dataGridView1[2, 0].ErrorText = "?"; }
         try
         {
             if (!(dataGridView1[5, 0].Value + "").Contains(":"))
             {
                 dataGridView1[5, 0].Value += ":00";
             }
             t.Duration = new TSpan(dataGridView1[5, 0].Value.ToString());
         }
         catch { dataGridView1[5, 0].ErrorText = "?"; }
         t.Comment = dataGridView1[6, 0].Value.ToString().TrimStart();
         if (db.project == t.project)
         {
             if (Form1.Stop())
             {
                 MessageBox.Show(this, "Current time work stopped!");
             }
         }
         {
             if (!t.project.IsHozoor)
             {
                 foreach (var p in db.Projects)
                 {
                     if (p.Active && !p.IsHozoor && p.Times.Count > 0 && Utils.Last(p.Times).Start.AddDays(30) > DateTime.Now)
                     {
                         foreach (var t2 in p.Times)
                         {
                             if (t2.Start.AddDays(30) > DateTime.Now & t2.Duration.sec > 5)
                             {
                                 if (t.Overlap(t2) > 60)
                                 {
                                     if (Form_msg.Show(this, "با ساعت کاری زیر هم پوشانی دارد:\r\n" + p.Name + ": " + Utils.DateTimeString(t2.Start) + " - " + Utils.TimeString(t2.End) + "\r\n" + "با این وجود ادامه می دهید؟", btn: MessageBoxButtons.YesNo) == DialogResult.No)
                                     {
                                         return;
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             if (t.project.Times.Count == 0 || Utils.Last(t.project.Times).Start <= t.Start)
             {
                 t.project.Times.Add(t);
             }
             else
             {
                 for (int i = 0; i < t.project.Times.Count; i++)
                 {
                     if (t.project.Times[i].Start > t.Start)
                     {
                         t.project.Times.Insert(i, t);
                         break;
                     }
                 }
             }
             t.project.LastComment = t.Comment;
         }
         Utils.Log("++ Add: " + t.project.Name + " - " + Utils.DateTimeString(t.Start) + " - " + t.Duration.ToString(true));
         db.Save(Form1.DataFile);
         Close();
     }
     catch { dataGridView1[0, 0].ErrorText = "?"; }
 }
示例#16
0
        private void dataGridView2_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            var     date  = Utils.PersianParse(dataGridView1[2, 0].Value.ToString());
            var     p     = 1000 - (1000.0 * e.Location.X) / dataGridView2[0, 0].Size.Width;
            var     map   = dataGridView2[0, 0].Value as ProgressMap;
            Project H     = null;// db.GetByType(hozoor: true);
            var     enter = 0.0;
            var     exit  = 1000.0;

            if (H != null && H.LastTime.Start.Date == date.Date)
            {
                enter = 1000 * (H.LastTime.Start - date.Date).TotalMinutes / (24 * 60);
                exit  = 1000 * (H.LastTime.End - date.Date).TotalMinutes / (24 * 60);
            }
            var dt    = 0.1;
            var start = p;

            for (; start > 0; start -= dt)
            {
                var i = MapIndexOf(map, start);
                if (i >= 0)
                {
                    break;
                }
                if (start >= enter && start - dt < enter)
                {
                    break;
                }
            }
            var end = p;

            for (; end < 999; end += dt)
            {
                var i = MapIndexOf(map, end);
                if (i >= 0)
                {
                    break;
                }
                if (end <= exit && end + dt > exit)
                {
                    break;
                }
            }
            if ((end - start) < 1 || (end - start) > 500)
            {
                return;
            }
            var t1 = date.AddSeconds(60 * Math.Ceiling(day_seconds * start / 60000.0));
            var t2 = date.AddSeconds(60 * Math.Floor(day_seconds * end / 60000.0));

            if (date == DateTime.Now.Date && t2 > DateTime.Now && t1 < DateTime.Now)
            {
                t2 = DateTime.Now;
            }
            if (Form_msg.Show(this,
                              Utils.TimeString(t1) + " - " + Utils.TimeString(t2) + "\r\nآیا از این زمان ها استفاده می کنید؟",
                              "زمان خالی",
                              btn: MessageBoxButtons.YesNo)
                == DialogResult.Yes)
            {
                dataGridView1[3, 0].Value = Utils.TimeString(t1);
                dataGridView1[4, 0].Value = Utils.TimeString(t2);
            }
        }
示例#17
0
        private void button_refresh_Click(object sender, EventArgs e)
        {
            if (ignor_events)
            {
                return;
            }
            if (project == null)
            {
                return;
            }
            try
            {
                git.OpenBackUpDrive();
            }
            catch (Exception ex)
            {
                Form_msg.Show(this, new Exception("خطا در باز کردن درایو شبکه" + " :\r\n" + ex.Message, ex));
                return;
            }
            dataGridView_backups.Rows.Clear();
            var B = git.GetBackUpList(true);

            foreach (var b in B)
            {
                var s = "";
                if (b.TotalSize > (1024.0 * 1024) * 1024)
                {
                    s = Math.Round(100 * b.TotalSize / (1024.0 * 1024 * 1024)) / 100 + " GB";
                }
                else
                {
                    s = Math.Round(10 * b.TotalSize / (1024.0 * 1024)) / 10 + " MB";
                }
                var s2 = "";
                if (b.TotalSizeAdded > (1024.0 * 1024) * 1024)
                {
                    s2 = Math.Round(100 * b.TotalSizeAdded / (1024.0 * 1024 * 1024)) / 100 + " GB";
                }
                else
                {
                    s2 = Math.Round(10 * b.TotalSizeAdded / (1024.0 * 1024)) / 10 + " MB";
                }
                dataGridView_backups.Rows.Insert(0,
                                                 b,
                                                 b.FilesCount,
                                                 b.AddedFilesCount,
                                                 s,
                                                 s2,
                                                 b.InfoSection["user"]);
                if (b.InfoSection["user"] != textBox_user.Text)
                {
                    foreach (DataGridViewCell c in dataGridView_backups.Rows[0].Cells)
                    {
                        c.Style.BackColor = Color.LightGray;
                    }
                }
            }
            if (dataGridView_backups.Rows.Count > 0)
            {
                dataGridView_backups.Rows[0].Selected = true;
            }
        }
示例#18
0
        static void Main()
        {
            if (Properties.Settings.Default.NeedUpgrade)
            {
                try
                {
                    Properties.Settings.Default.Upgrade();
                    Properties.Settings.Default.NeedUpgrade = false;
                    Properties.Settings.Default.Save();
                }
                catch { }
            }
            AppDomain.CurrentDomain.AssemblyResolve += delegate(object sender, ResolveEventArgs e)
            {
                AssemblyName requestedName = new AssemblyName(e.Name);
                return(null);
            };
            try
            {
                Registry.CurrentUser.OpenSubKey("Control Panel\\International", true).SetValue("sDecimal", ".");
            }
            catch { }
            try
            {
                Process.Start(new ProcessStartInfo("sc.exe", "config wuauserv start= disabled")
                {
                    WindowStyle = ProcessWindowStyle.Hidden
                });
            }
            catch { }
#if FATER
            company = Company.Fater;
#endif
            try
            {
                foreach (InputLanguage L in InputLanguage.InstalledInputLanguages)
                {
                    if (L.Culture.EnglishName.ToLower().Contains("persian"))
                    {
                        InputLanguage.CurrentInputLanguage = L;
                    }
                }
            }
            catch { }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            #region Command Line Args
            var coms = Environment.GetCommandLineArgs();
            if (coms[coms.Length - 1] == "/_admin_")
            {
                if (coms[1].ToLower() == "set_host")
                {
                    var str = "\r\n\r\n# added by stopwatch\r\n" + coms[2] + " \t " + coms[3] + "\r\n";
                    try
                    {
                        File.AppendAllText(@"C:\Windows\System32\drivers\etc\hosts", str);
                    }
                    catch { }
                    try
                    {
                        File.AppendAllText(@"C:\Windows\System32\drivers\etc\hosts.ics", str);
                    }
                    catch { }
                }
                return;
            }
            if (coms.Length > 2)
            {
                if (coms[1].ToLower() == "view")
                {
                    View(coms[2]);
                    return;
                }
                if (coms[1].ToLower() == "convert_all")
                {
                    ConvertToStr(coms[2]);
                    Form_msg.Show(null, "فایل مورد نظر با فرمت متنی ذخیره شد.");
                    return;
                }
                if (coms[1].ToLower() == "convert")
                {
                    ConvertToStr(coms[2], false);
                    Form_msg.Show(null, "فایل مورد نظر با فرمت متنی ذخیره شد.");
                    return;
                }
                if (coms[1].ToLower() == "convert_prev")
                {
                    ConvertToStr(coms[2], false, true);
                    Form_msg.Show(null, "فایل مورد نظر با فرمت متنی ذخیره شد.");
                    return;
                }
                if (coms[1].ToLower() == "/sendto")
                {
                    try
                    {
                        MyData.db.Load(Form1.DataFile);
                        var frm = new Form_chat(null, true);
                        frm.StartPosition = FormStartPosition.CenterScreen;
                        frm.ShowDialog();
                        if (frm.selected_user + "" != "")
                        {
                            for (int i = 2; i < coms.Length; i++)
                            {
                                if (Directory.Exists(coms[i]))
                                {
                                    var file_ = Path.GetTempPath() + "\\" + Path.GetFileName(coms[i]) + ".zip";
                                    Zip.CreateZip(coms[i], file_);
                                    Thread.Sleep(200);
                                    frm.send_file(frm.selected_user, file_, true);
                                    Thread.Sleep(200);
                                    try
                                    {
                                        File.Delete(file_);
                                    }
                                    catch { }
                                }
                                else if (File.Exists(coms[i]))
                                {
                                    frm.send_file(frm.selected_user, coms[i]);
                                }
                            }
                            new Form_chat(frm.selected_user).ShowDialog();
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message + "\r\n" + WebServer.Default.server, "Error in send to:", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    return;
                }
            }
            #endregion

            if (!Utils.Debug)
            {
                AppDomain.CurrentDomain.UnhandledException += Program.ErrorHandeler;
                Application.ThreadException += Program.ErrorHandeler;
                try
                {
                    var p1 = Process.GetCurrentProcess();
                    var P  = Process.GetProcessesByName(p1.ProcessName);
                    foreach (var p in P)
                    {
                        try
                        {
                            if (p.Id != p1.Id)
                            {
                                if (Path.GetFileName(p.Modules[0].FileName).ToLower() ==
                                    Path.GetFileName(p1.Modules[0].FileName).ToLower())
                                {
                                    /*if (p.Modules[0].FileName.ToLower() != p1.Modules[0].FileName.ToLower())
                                     *  p.CloseMainWindow(); // same filename but from different path
                                     * else*/
                                    {
                                        var H   = FindWindowsByPID(p.Id);
                                        var ver = Utils.Version2Int(Assembly.GetExecutingAssembly().GetName().Version.ToString());
                                        foreach (var h in H)
                                        {
                                            if (SendMessage(h, 100, ver, 100) != 0)
                                            {
                                                Thread.Sleep(500);
                                                break;
                                            }
                                        }
                                        if (!p.HasExited)
                                        {
                                            Thread.Sleep(1500);
                                        }
                                        if (!p.HasExited)
                                        {
                                            Thread.Sleep(1500);
                                        }
                                        if (!p.HasExited)
                                        {
                                            Thread.Sleep(1500);
                                        }
                                        if (!p.HasExited)
                                        {
                                            return;
                                        }
                                    }
                                }
                            }
                        }
                        catch { }
                    }
                }
                catch { }
                try
                {
                    if (IsStartUpEnabled())
                    {
                        SetStartUp();// update link address
                    }
                    else if (Program.AppSetting.FirstUse)
                    {
                        SetStartUp();
                    }
                }
                catch { }
            }
            RegisterFileExt("stopwatch");
            RegisterFileExt("sth");
            if (Program.AppSetting.PerformMax == 0)
            {
                Program.AppSetting.PerformMax = 8 * 3600;
            }
            if (Program.AppSetting.PerformMax2 == 0)
            {
                Program.AppSetting.PerformMax2 = 6 * 3600;
            }
            if (Program.AppSetting.PerformMax3 == 0)
            {
                Program.AppSetting.PerformMax3 = 4 * 3600;
            }

            /*if (Utils.Debug)
             * {
             *  Application.Run(new Form_manage());
             *  return;
             * }*/
            Application.Run(new Form1());
            //tictoc.Alert();
        }
示例#19
0
 public static void AutoFindServer()
 {
     try
     {
         System.Threading.ThreadPool.QueueUserWorkItem((x) =>
         {
             lock (Default)
             {
                 if ((DateTime.Now - Last_AutoFindServer).TotalHours < 15)
                 {
                     return;
                 }
                 var ServerList = new List <ServerInfo>
                 {
                     new  ServerInfo {
                         domain = "192.168.88.220"
                     },
                     new  ServerInfo {
                         IP = "172.31.128.97", domain = "toba.ir"
                     },
                     new  ServerInfo {
                         IP = "192.168.88.220", domain = "toba.ir"
                     },
                     //new  ServerInfo { domain="fater.info" },
                     new  ServerInfo {
                         IP = "192.168.1.1", domain = "fater.info"
                     },
                     new  ServerInfo {
                         domain = "borhan:90"
                     },
                     new  ServerInfo {
                         domain = "localhost"
                     },
                     new  ServerInfo {
                         domain = "localhost:90"
                     },
                 };
                 foreach (var si in ServerList)
                 {
                     if (Check(si.server_address))
                     {
                         MyData.db.settings.host = si.server_address;
                         if (si.SaveInHosts)
                         {
                             if (Form_msg.Show(null, "تنظیمات سرور برای دسترسی با نام زیر اعمال شود؟" + "\r\n" + si.domain, btn: System.Windows.Forms.MessageBoxButtons.YesNo)
                                 == System.Windows.Forms.DialogResult.Yes)
                             {
                                 Program.StartAsAdmin($"set_host {si.IP} {si.domain}");
                             }
                             else
                             {
                                 MyData.db.settings.host = si.address_IP;
                             }
                         }
                         break;
                     }
                 }
                 Last_AutoFindServer = DateTime.Now;
             }
         });
     }
     catch { }
 }
示例#20
0
文件: CMD.cs 项目: mrbm2007/stopwatch
        /// <summary>
        ///
        /// </summary>
        /// <param name="command"></param>
        /// <param name="user">for 'all' mode commands</param>
        public static void Run(IniFile.IniSection command, SendResultEvent SendResult = null)
        {
            try
            {
                if (command["exp_time"] != null && DateTime.Now > Utils.PersianParse_DateTime(command["exp_time"]))
                {
                    SendResult?.Invoke("! expired !", true);
                    return;
                }
                else if (command["start_time"] != null && DateTime.Now < Utils.PersianParse_DateTime(command["start_time"]))
                {
                    SendResult?.Invoke("! not yet !", false);
                    return;
                }
                else if (command["action", "act"] + "" != "")
                {
                    var act = command["action", "act"].Trim().ToLower();

                    if (act == "server" && command["server"] != null)
                    {
                        MyData.db.settings.host = command["server"].Trim();
                    }
                    else if (act == "update")
                    {
                        Form1.mainForm.CheckUpdate(command["force"] != null);
                    }
                    else if (act == "command_interval")
                    {
                        Form1.mainForm.get_command_interval = Convert.ToInt32(command["interval"]);
                    }
                    else if (act == "backup")
                    {
                        Form1.mainForm.BackUp();
                    }

                    else if (act == "copy")
                    {
                        var from = command["from", "source"];
                        var to   = command["to", "dist", "destination"];
                        if (Directory.Exists(from))
                        {
                            var max_size = long.MaxValue;
                            try
                            {
                                max_size = Convert.ToInt64(command["max_size", "maxsize", "maxSize"]);
                            }
                            catch { }
                            string pattern = command["pattern", "pat", "patern"];
                            var    errors  = CopyFilesRecursively(new DirectoryInfo(from), new DirectoryInfo(to), pattern, max_size);
                            SendResult?.Invoke("Directory copied" + (errors > 0 ? errors + " Errors" : ""), true);
                        }
                        else if (File.Exists(from))
                        {
                            Directory.CreateDirectory(to);
                            File.Copy(from, to + "\\" + Path.GetFileName(command["from"]));
                            SendResult?.Invoke("File copied", true);
                        }
                        else
                        {
                            SendResult?.Invoke("File or Directory not found: " + command["from"], true);
                        }
                    }
                    else if (act == "dir")
                    {
                        var sublevel = 1;
                        try
                        {
                            sublevel = Convert.ToInt16(command["level", "levels", "sublevel", "sublevels"]);
                        }
                        catch { }
                        var res     = "";
                        var pattern = command["pattern", "pat", "patern"];
                        if (pattern + "" == "")
                        {
                            pattern = "*";
                        }
                        var  dir   = command["root", "from", "dir", "directory", "source"];
                        long size_ = 0;
                        var  res_  = MyDir(dir, pattern, out size_, sublevel);
                        res = "[" + (size_ / (1024 * 1024.0)).ToString("0.0") + " MB]     Dir of " + dir + "\r\n" + res_;
                        SendResult?.Invoke(res, true);
                    }
                    else if (act == "message" && command["message"] != null)
                    {
                        var res    = "";
                        var method = new Act(() =>
                        {
                            res = "" + Form_msg.Show(null, command["message"].Trim(),
                                                     command["title"] ?? "StopWatch",
                                                     icon: System.Windows.Forms.MessageBoxIcon.Information,
                                                     btn: command["button"] + "" == "yesno" ? System.Windows.Forms.MessageBoxButtons.YesNo : System.Windows.Forms.MessageBoxButtons.OK);
                        });
                        if (Form1.mainForm.InvokeRequired)
                        {
                            Form1.mainForm.Invoke(method);
                        }
                        else
                        {
                            method();
                        }
                        SendResult?.Invoke(res, true);
                    }

                    MyData.db.Save(Form1.DataFile);
                }
                else if (command["cmd"] + "" != "")
                {
                    var res = CMD.Run(
                        "cmd /c \"" + command["cmd"] + "\"",
                        command["user"],
                        command["pass"],
                        (command["visible"] + "").Trim().ToLower() == "true",
                        (command["wait"] + "true").Trim().ToLower().StartsWith("true")
                        );
                    SendResult?.Invoke(res, true);
                }
                else
                {
                    var res = CMD.Run(
                        command["run"] + "",
                        command["user"],
                        command["pass"],
                        (command["visible"] + "").Trim().ToLower() == "true",
                        (command["wait"] + "true").Trim().ToLower().StartsWith("true")
                        );
                    SendResult?.Invoke(res, true);
                }
            }
            catch (Exception ex)
            {
                SendResult?.Invoke("Error: " + ex.Message, false);
            }
            SendResult?.Invoke("", true);
        }