c#窗体应用程序实现软件开机自启,并可以通过路径控制ICT测试软件的打开和关闭。良品条码和不良品条码可以在本地文件夹中的txt文件中获取。当软件开启,定时器就在数据库扫描是否有设置的良品和不良品条码的当天测试记录(数据库ICT_test表中Barcode和Date项的记录),如果存在,lable状态栏变绿并提示“以点检,请进行ICT测试”。就可以通过c#软件开启按钮打开ICT测试软件,进其他条码的ICT测试。如果数据库中没有设置的良品和不良品条码的测试记录,点击开启ICT测试按钮时,label状态栏变红,并提示“请进行测试前点检”,然后就先进行设置条码的ICT测试,判断扫描到的条码是否为本地txt文件中设置的良品或不良品条码,如输入的条码不符合,label状态栏变红,并提示“条码错误”,如输入的条码正确并为txt文件中设置的良品条码,label状态栏变绿,并提示“请进行良品点检”,这时就将扫到的良品条码通过模拟键盘复制黏贴到ICT测试软件条码栏,进行ICT测试,测试完成后就提示“良品点检完成”,并将测试记录上传到数据库
时间: 2023-11-25 21:04:49 浏览: 106
实现软件开机自启可以通过以下步骤:
1. 在项目的Properties中打开"应用程序"选项卡。
2. 将启动对象设置为"启动窗体"。
3. 在窗体的Load事件中添加自启代码:
```
private void Form1_Load(object sender, EventArgs e)
{
//获取当前应用程序的启动路径
string appPath = Application.StartupPath;
//设置自启动项
Microsoft.Win32.RegistryKey reg = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
reg.SetValue("MyApp", appPath + "\\MyApp.exe");
}
```
实现ICT测试软件的打开和关闭可以通过Process类实现:
1. 打开ICT测试软件:
```
Process.Start("ICT测试软件路径");
```
2. 关闭ICT测试软件:
```
foreach (Process p in Process.GetProcessesByName("ICT测试软件进程名称"))
{
p.Kill();
}
```
读取本地txt文件中的良品和不良品条码可以使用StreamReader类:
```
List<string> goodBarcodes = new List<string>();
List<string> badBarcodes = new List<string>();
StreamReader sr = new StreamReader("txt文件路径");
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
if (line.StartsWith("良品:"))
{
goodBarcodes.Add(line.Replace("良品:", ""));
}
else if (line.StartsWith("不良品:"))
{
badBarcodes.Add(line.Replace("不良品:", ""));
}
}
sr.Close();
```
定时器扫描数据库可以通过System.Timers.Timer类实现:
```
System.Timers.Timer timer = new System.Timers.Timer(60000); //一分钟扫描一次
timer.Elapsed += new ElapsedEventHandler(Timer_Tick);
timer.Enabled = true;
private void Timer_Tick(object sender, EventArgs e)
{
//扫描数据库,判断是否有设置的良品和不良品条码的当天测试记录
}
```
判断扫描到的条码是否为本地txt文件中设置的良品或不良品条码可以使用以下代码:
```
string barcode = "扫描到的条码";
if (goodBarcodes.Contains(barcode))
{
//进行良品测试
}
else if (badBarcodes.Contains(barcode))
{
//进行不良品测试
}
else
{
//条码错误
}
```
上传测试记录到数据库可以使用ADO.NET连接数据库并执行SQL语句实现:
```
using (SqlConnection conn = new SqlConnection("数据库连接字符串"))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO ICT_test (Barcode, Date, Result) VALUES (@Barcode, @Date, @Result)";
cmd.Parameters.AddWithValue("@Barcode", barcode);
cmd.Parameters.AddWithValue("@Date", DateTime.Now.Date);
cmd.Parameters.AddWithValue("@Result", "测试结果");
cmd.ExecuteNonQuery();
}
```
阅读全文