private void closeInactiveSessions() { Cstatus status = new Cstatus(); List <String> systemPrograms = status.GetProcesses(); //tüm takip edilenleri bul DataTable dbPrograms = Cprograms.getAllTracked(); foreach (DataRow dbProgram in dbPrograms.Rows) { //eğer çalışmıyorsa if (!systemPrograms.Contains((String)dbProgram["exe"])) { //açık session(ları) ı kapat Csessions.close((int)dbProgram["programid"]); if (!(bool)dbProgram["is_confirmed"]) { iTimer.Enabled = false; DialogResult result = MessageBox.Show(Strings.Tracking + " " + (String)dbProgram["exe"], (String)dbProgram["exe"], MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { Cprograms.track((String)dbProgram["exe"]); } else if (result == DialogResult.No) { Cprograms.hide((String)dbProgram["exe"]); } iTimer.Enabled = true; } } } }
private void updateActiveSessions() { Cstatus status = new Cstatus(); List <String> systemPrograms = status.GetProcesses(); DataTable dbPrograms = new DataTable(); dbPrograms = Cprograms.getAll(); //sistemdeki tüm programları gez ve bağlı olarak sessionları oluştur veya update et foreach (String programExe in systemPrograms) { //program kayıtlı mı kontrol et var rows = dbPrograms.Select("exe = '" + programExe + "'"); //eğer veri tabanında varsa if (rows.Length != 0) { //ve eğer takip ediliyorsa if ((bool)rows[0]["is_tracked"]) { int programId = (int)rows[0]["programid"]; //programa ait açık sessionları bul DataTable sessions = Csessions.getOpen(programId); //eğer session varsa if (sessions.Rows.Count > 0) { //her açık olan her sessionı update et (normalde birden fazla satır olmaması lazım ama yinede kontrol et) foreach (DataRow session in sessions.Rows) { Csessions.update(programId, (Properties.Settings.Default.loopTime / 1000)); } } else { //açık session yok //session oluştur Csessions.create(programId); } } } else //veri tabanında kaydı yok ise { //programı kaydet ama sonra kullanıcıya sormak üzere işaretle Cprograms.insert(null, programExe, true, null, 1, false); } } //end of for system programs }
public frmMain() { //10 saniyelik timer, 10 saniye olmak zorunda iTimer = new System.Timers.Timer(Properties.Settings.Default.loopTime); iTimer.Enabled = true; iTimer.Elapsed += new ElapsedEventHandler(timeLoop); //bütün sessionları kapat Csessions.closeAll(); //notify this.SizeChanged += new EventHandler(form1_sizeeventhandler); //localization //Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("tr-TR"); //MessageBox.Show(Strings.Hello); InitializeComponent(); }
private void lstTracked_Click(object sender, EventArgs e) { lblProgramExe.Text = lstTracked.Text; DataRowView program = (DataRowView)lstTracked.SelectedItem; Double dTime = Csessions.getTotalTime((int)program["programid"]); Double dTodayTime = Csessions.getTodayTotalTime((int)program["programid"]); int started = Csessions.getTotalStart((int)program["programid"]); TimeSpan time = TimeSpan.FromSeconds(dTime); lblTotalTime.Text = time.Days.ToString() + " " + Strings.Day; lblTotalTime.Text += " " + time.Hours.ToString() + " " + Strings.Hour; lblTotalTime.Text += " " + time.Minutes.ToString() + " " + Strings.Minute; lblTotalTime.Text += " " + time.Seconds.ToString() + " " + Strings.Second; lblStarted.Text = started.ToString(); cmbCategory.SelectedValue = (int)program["categoryid"]; txtTitle.Text = program["name"].ToString().Trim(); TimeSpan todayTime = TimeSpan.FromSeconds(dTodayTime); lblToday.Text = todayTime.ToString(); }
private void btnReset_Click(object sender, EventArgs e) { Csessions.delete((int)lstTracked.SelectedValue); lstTracked_Click(null, null); }