c#窗体应用程序实现软件开机自启,并可以通过路径控制ICT测试软件的打开和关闭。 良品和不良品条码可以在本地文件夹的txt文件中获取 。当软件开启,定时器就在数据库扫描是否有设置的良品和不良品条码的当天ICT测试记录,如果存在,lable状态栏变绿并提示“以点检,请进行测试”就可以通过c#软件开启按钮打开ICT测试软件,进行别的条码的ICT测试。如果没有,点击开启ICT测试按钮时,label状态栏变红,并提示“请进行测试前点检”全部代码实现
时间: 2023-12-01 08:02:06 浏览: 28
以下是实现软件开机自启并控制ICT测试软件打开和关闭的代码:
在Form_Load事件中添加以下代码:
```csharp
//设置软件开机自启
RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rk.SetValue("软件名称", Application.ExecutablePath);
//设置定时器
timer1.Interval = 60000; //每隔1分钟扫描一次数据库
timer1.Enabled = true;
```
在定时器的Tick事件中添加以下代码:
```csharp
private void timer1_Tick(object sender, EventArgs e)
{
//获取当前日期,格式为yyyy-MM-dd
string currentDate = DateTime.Now.ToString("yyyy-MM-dd");
//查询数据库是否有设置的良品和不良品条码的当天ICT测试记录
string sql = "SELECT COUNT(*) FROM ICTTest WHERE Barcode IN (SELECT Barcode FROM GoodBarcodes) OR Barcode IN (SELECT Barcode FROM BadBarcodes) AND CONVERT(varchar(10), TestTime, 120) = '" + currentDate + "'";
int count = 0;
using (SqlConnection conn = new SqlConnection("连接字符串"))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
count = Convert.ToInt32(cmd.ExecuteScalar());
}
if (count > 0)
{
//存在当天ICT测试记录,提示进行测试
label1.Text = "以点检,请进行测试";
label1.ForeColor = Color.Green;
}
else
{
//不存在当天ICT测试记录,提示进行点检
label1.Text = "请进行测试前点检";
label1.ForeColor = Color.Red;
}
}
```
在开启ICT测试按钮的Click事件中添加以下代码:
```csharp
//判断ICT测试软件是否已经打开
Process[] processes = Process.GetProcessesByName("ICTTest");
if (processes.Length > 0)
{
//ICT测试软件已经打开,关闭软件
foreach (Process process in processes)
{
process.Kill();
}
}
//打开ICT测试软件
Process.Start("ICTTest.exe");
```
最后,将良品和不良品条码分别保存在GoodBarcodes.txt和BadBarcodes.txt文件中,每行一个条码。在程序启动时,读取这两个文件并插入到数据库中。可以在Form_Load事件中添加以下代码实现:
```csharp
//读取良品条码并插入到数据库中
string goodBarcodesFile = Application.StartupPath + "\\GoodBarcodes.txt";
if (File.Exists(goodBarcodesFile))
{
string[] goodBarcodes = File.ReadAllLines(goodBarcodesFile);
using (SqlConnection conn = new SqlConnection("连接字符串"))
{
conn.Open();
foreach (string barcode in goodBarcodes)
{
string sql = "INSERT INTO GoodBarcodes (Barcode) VALUES ('" + barcode + "')";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
}
//读取不良品条码并插入到数据库中
string badBarcodesFile = Application.StartupPath + "\\BadBarcodes.txt";
if (File.Exists(badBarcodesFile))
{
string[] badBarcodes = File.ReadAllLines(badBarcodesFile);
using (SqlConnection conn = new SqlConnection("连接字符串"))
{
conn.Open();
foreach (string barcode in badBarcodes)
{
string sql = "INSERT INTO BadBarcodes (Barcode) VALUES ('" + barcode + "')";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
}
```
以上就是实现软件开机自启并控制ICT测试软件打开和关闭的完整代码。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)