|
|
using AppTime.Properties;
|
|
using Microsoft.Win32;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data.OleDb;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Security.AccessControl;
|
|
using System.Text;
|
|
using System.Web.ModelBinding;
|
|
using System.Web.UI.WebControls;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AppTime
|
|
{
|
|
public partial class FrmMain : Form
|
|
{
|
|
|
|
const string appname = "AppTime";
|
|
const string regkey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
|
|
|
|
public FrmMain()
|
|
{
|
|
InitializeComponent();
|
|
|
|
}
|
|
|
|
private void FrmMain_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
cboRecordScreen.DataSource = new[] {
|
|
new {Text="最近30天", Value=30},
|
|
new {Text="最近15天", Value=15},
|
|
new {Text="无限制", Value=int.MaxValue},
|
|
new {Text="不留存", Value=0},
|
|
};
|
|
cboRecordScreen.DisplayMember = "Text";
|
|
cboRecordScreen.ValueMember = "Value";
|
|
|
|
cboImageQuality.DataSource = new[] {
|
|
new {Text="最省磁盘", Value=63},
|
|
new {Text="均衡", Value=50},
|
|
new {Text="高质量", Value=40},
|
|
};
|
|
cboImageQuality.DisplayMember = "Text";
|
|
cboImageQuality.ValueMember = "Value";
|
|
}
|
|
|
|
private void btnOpen_Click(object sender, EventArgs e)
|
|
{
|
|
Process.Start($@"http://localhost:{Program.Port}/");
|
|
}
|
|
|
|
private void notifyIcon_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
btnOpen_Click(null, null);
|
|
}
|
|
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
this.Hide();
|
|
}
|
|
|
|
bool cancelClose = true;
|
|
private void btnExit_Click(object sender, EventArgs e)
|
|
{
|
|
this.Hide();
|
|
cancelClose = false;
|
|
Program.recorder.FlushScreenBuffer();
|
|
this.Close();
|
|
}
|
|
|
|
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
this.Hide();
|
|
e.Cancel = cancelClose;
|
|
}
|
|
|
|
private void btnOK_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
Directory.CreateDirectory(txtDataPath.Text);
|
|
Settings.Default.DataPath = txtDataPath.Text == Application.StartupPath ? "" : txtDataPath.Text;
|
|
|
|
Program.recorder.BuildDataPath();
|
|
}
|
|
catch
|
|
{
|
|
MessageBox.Show("数据存储位置无效,请重新选择。");
|
|
}
|
|
Settings.Default.ImageQuality = (int) cboImageQuality.SelectedValue;
|
|
Settings.Default.RecordScreenDays = (int)cboRecordScreen.SelectedValue;
|
|
Settings.Default.Save();
|
|
|
|
using var reg = Registry.CurrentUser.CreateSubKey(regkey);
|
|
try
|
|
{
|
|
if (chkAutoRun.Checked)
|
|
{
|
|
reg.SetValue(appname, Application.ExecutablePath);
|
|
}
|
|
else
|
|
{
|
|
reg.DeleteValue(appname);
|
|
}
|
|
}
|
|
catch (UnauthorizedAccessException)
|
|
{
|
|
MessageBox.Show("设置启动失败,请检查:\r\n\r\n1、关闭杀毒软件(如360等);\r\n2、以管理员身份运行本程序。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
this.Hide();
|
|
}
|
|
|
|
private void FrmMain_Shown(object sender, EventArgs e)
|
|
{
|
|
this.Hide();
|
|
}
|
|
|
|
private void btnSetting_Click(object sender, EventArgs e)
|
|
{
|
|
if (!this.Visible)
|
|
{
|
|
if (string.IsNullOrEmpty(Settings.Default.DataPath))
|
|
{
|
|
txtDataPath.Text = Application.StartupPath;
|
|
}
|
|
else
|
|
{
|
|
txtDataPath.Text = Settings.Default.DataPath;
|
|
}
|
|
cboRecordScreen.SelectedValue = Settings.Default.RecordScreenDays;
|
|
cboImageQuality.SelectedValue = Settings.Default.ImageQuality;
|
|
|
|
using var reg = Registry.CurrentUser.CreateSubKey(regkey);
|
|
chkAutoRun.Checked = (reg.GetValue(appname) as string) == Application.ExecutablePath;
|
|
|
|
this.Show();
|
|
}
|
|
}
|
|
|
|
private void btnAbout_Click(object sender, EventArgs e)
|
|
{
|
|
MessageBox.Show($"AppTime桌面时间管理\r\nV{Application.ProductVersion}\r\n\r\n联系作者:newdraw@hotmail.com", "关于", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
|
|
private void btnDataPath_Click(object sender, EventArgs e)
|
|
{
|
|
using var dlg = new FolderBrowserDialog();
|
|
if(dlg.ShowDialog()== DialogResult.OK)
|
|
{
|
|
txtDataPath.Text = dlg.SelectedPath;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|