vb shell函数在c#的转换

时间:2022-05-24 03:13:00

vb shell:

Private Sub AddBarcodeImages(ByVal DTab As DataTable)
If Not DTab Is Nothing Then DTab.Columns.Add("BCIMAGE", Type.GetType("System.Byte[]")) Dim r As DataRow
For Each r In DTab.Rows Try
Dim BatchNo As String = CStr(r.Item("Operator2")).Trim
Dim sFileName As String = "C:\TEMP\" & BatchNo & ".jpg" Shell("Barcode.exe " & BatchNo & "", AppWinStyle.NormalFocus, True) Dim fs As IO.FileStream = New IO.FileStream(sFileName, IO.FileMode.Open)
Dim fi As IO.FileInfo = New IO.FileInfo(sFileName)
Dim fl As Long = fi.Length
Dim lung As Integer = Convert.ToInt32(fl)
Dim imgBytes As Byte() = New Byte(lung - ) {}
fs.Read(imgBytes, , lung)
fs.Close()
r.Item("BCIMAGE") = imgBytes Dim f As IO.File
Try
f.Delete(sFileName)
Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try Catch ex As Exception
'MessageBox.Show(ex.ToString)
End Try
Next
End If
End Sub

c# Process线程:

private DataTable getReportData()
{
DataTable tb = new DataTable();
tb.Columns.Add("Operator", Type.GetType("System.String"));
tb.Columns.Add("OperName", Type.GetType("System.String"));
tb.Columns.Add("Line_No", Type.GetType("System.String"));
tb.Columns.Add("SessionID", Type.GetType("System.String"));
tb.Columns.Add("IsActive", Type.GetType("System.String"));
tb.Columns.Add("IsLine", Type.GetType("System.String"));
tb.Columns.Add("logo", Type.GetType("System.Byte[]")); DataRow row;
foreach (DataRow r in ds.Tables["empd10"].Rows)
{
if (r["s_select"].ToString() == "F") continue;
if (r["ticketstatus"].ToString() != "Y") continue;
try
{
row = tb.NewRow();
row.BeginEdit();
row["Operator"] = r["empno"];
row["OperName"] = r["empname"].ToString() + r["eng_name"].ToString();
row["Line_No"] = r["teamno"];
row["SessionID"] = "";
row["IsActive"] = "";
row["IsLine"] = "";
//--------------------------------------------------条码-------------------------------------------
string BatchNo = row["Operator"].ToString().Trim();
string sFileName = @"C:\TEMP\" + BatchNo + ".jpg"; //------------------shell函数在c#的转换--------------------
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("Barcode.exe", BatchNo + "");
startInfo.WorkingDirectory = Application.StartupPath;
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();//必不可少否则出现条码生成不成功的情况
//------------------shell函数在c#的转换-------------------- System.IO.FileStream fs = new System.IO.FileStream(sFileName, System.IO.FileMode.Open);
System.IO.FileInfo fi = new System.IO.FileInfo(sFileName);
long f1 = fi.Length;
int lung = Convert.ToInt32(f1);
Byte[] imgBytes = new Byte[lung];
fs.Read(imgBytes, , lung);
fs.Close();
row["logo"] = imgBytes; try
{
System.IO.File.Delete(sFileName);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
//--------------------------------------------------条码-------------------------------------------
row.EndEdit();
tb.Rows.Add(row);
}
catch (Exception ex)
{
//return null;
}
}
tb.TableName = "OM";
tb.AcceptChanges();
return tb;
}