c#窗体应用程序实现软件开机自启,并可以通过路径控制ICT测试软件的打开和关闭。良品条码和不良品条码可以在本地文件夹中的txt文件中获取。当软件开启,就在数据库扫描是否有设置的良品和不良品条码的当天测试记录(数据库ICT_test表中Barcode和Date项的记录),如果存在,lable状态栏变绿并提示“已点检,请进行ICT测试”。就可以通过c#软件开启按钮打开ICT测试软件,进行其他条码的ICT测试。如果数据库中没有设置的良品和不良品条码的测试记录,点击开启ICT测试按钮时,label状态栏变红,并提示“请进行测试前点检”,然后就先进行设置条码的ICT测试,判断扫描到txt_barcode的条码是否为txt文件中设置的良品或不良品条码,如输入的条码不符合,label状态栏变红,并提示“条码错误”,如输入的条码正确并为设置的良品条码,label状态栏变绿,并提示“请进行良品点检”,这时就能打开ICT测试软件,然后将扫到txt_barcode的良品条码通过模拟键盘复制黏贴到ICT条码栏,进行ICT测试,当发现有良品条码的点检报告生成,表示良品点检完成。测试完成后label状态栏提示“良品点检完成”,并将测试记录上传到数据库。c#完整代码
时间: 2023-11-30 21:02:17 浏览: 80
由于涉及到数据库操作和ICT测试软件的具体实现,本回答无法提供完整的可运行代码,但可以提供代码框架和思路供参考。
1. 实现软件开机自启
使用注册表的方式实现软件开机自启,具体代码如下:
```
using Microsoft.Win32;
// 设置开机自启动
RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
registryKey.SetValue("SoftwareName", Application.ExecutablePath);
```
2. 控制ICT测试软件的打开和关闭
使用Process类实现打开和关闭ICT测试软件,具体代码如下:
```
// 打开软件
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "ICT测试软件路径";
Process.Start(startInfo);
// 关闭软件
foreach (Process process in Process.GetProcesses())
{
if (process.ProcessName == "ICT测试软件名称")
{
process.Kill();
break;
}
}
```
3. 读取本地文件夹中的txt文件
使用StreamReader类读取txt文件中的内容,具体代码如下:
```
string filePath = "txt文件路径";
StreamReader reader = new StreamReader(filePath);
string content = reader.ReadToEnd();
reader.Close();
```
4. 扫描数据库是否存在设置的条码测试记录
使用ADO.NET连接数据库,查询ICT_test表中是否存在Barcode和Date项与设置的条码和当天日期相符的记录,具体代码如下:
```
string connectionString = "数据库连接字符串";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
string barcode = "条码";
string date = DateTime.Now.ToString("yyyy-MM-dd");
string sql = "SELECT * FROM ICT_test WHERE Barcode = '" + barcode + "' AND Date = '" + date + "'";
SqlCommand command = new SqlCommand(sql, connection);
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
// 存在记录,lable状态栏变绿并提示“已点检,请进行ICT测试”
}
else
{
// 不存在记录,lable状态栏变红,并提示“请进行测试前点检”
}
reader.Close();
connection.Close();
```
5. 设置条码的ICT测试
使用文本框或者扫码枪输入条码,判断是否为设置的良品或不良品条码,具体代码如下:
```
string barcode = "扫到的条码";
string goodBarcodes = "良品条码组合";
string badBarcodes = "不良品条码组合";
if (goodBarcodes.Contains(barcode))
{
// 条码正确并为设置的良品条码,label状态栏变绿,并提示“请进行良品点检”
}
else if (badBarcodes.Contains(barcode))
{
// 条码正确并为设置的不良品条码,label状态栏变绿,并提示“请进行不良品点检”
}
else
{
// 条码错误,label状态栏变红,并提示“条码错误”
}
```
6. 上传测试记录到数据库
使用ADO.NET连接数据库,将测试记录插入到ICT_test表中,具体代码如下:
```
string connectionString = "数据库连接字符串";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
string barcode = "条码";
string date = DateTime.Now.ToString("yyyy-MM-dd");
string result = "测试结果";
string sql = "INSERT INTO ICT_test (Barcode, Date, Result) VALUES ('" + barcode + "', '" + date + "', '" + result + "')";
SqlCommand command = new SqlCommand(sql, connection);
command.ExecuteNonQuery();
connection.Close();
```
阅读全文