vb shell函数在c#的转换

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 & " 36", 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 - 1) {}

                    fs.Read(imgBytes, 0, 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 + " 36");

                    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, 0, 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;

        }

 

你可能感兴趣的:(shell)