日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

KIS 旗舰版 VB6.0调用C#可执行程序,并传递参数

發布時間:2024/3/26 C# 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KIS 旗舰版 VB6.0调用C#可执行程序,并传递参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

KIS 旗艦版 VB6.0調用C#可執行程序,并傳遞參數

調用C#可執行程序部分代碼

Dim FID As StringDim FBillNo As StringDim CtlIndex As IntegerDim Cnnstring As StringDim path As StringFID = m_BillTransfer.SaveVect.Item(1).Value("FInterID")CtlIndex = CheckBill("FBillNo", 1)FBillNo = m_BillTransfer.GetHeadText(CtlIndex)Cnnstring = Split(Split((m_BillTransfer.Cnnstring), ";")(5), "=")(1)path = "C:\Program Files\KPART\My Product Name\Customprint.exe " & Cnnstring & " " & FBillNo & " " & FID'path = "C:\Program Files (x86)\KPART\My Product Name\Customprint.exe " & Cnnstring & " " & FBillNo & " " & FIDShell path, 1

完整VB代碼

'定義插件對象接口. 必須具有的聲明, 以此來獲得事件 Private WithEvents m_BillTransfer As k3BillTransfer.BillPublic Sub Show(ByVal oBillTransfer As Object)'接口實現'注意: 此方法必須存在, 請勿修改Set m_BillTransfer = oBillTransferEnd SubPrivate Sub Class_Terminate()'釋放接口對象'注意: 此方法必須存在, 請勿修改Set m_BillTransfer = NothingEnd SubPrivate Sub m_BillTransfer_BillInitialize()'*************** 開始設置菜單 ***************m_BillTransfer.AddUserMenuItem "自定義打印", "自定義菜單"'*************** 結束設置菜單 ***************End SubPrivate Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByVal Caption As String)'TODO: 請在此處添加代碼響應事件 UserMenuClick On Error GoTo ErrHSelect Case CaptionCase "自定義打印"'此處添加處理 自定義打印 菜單對象的 Click 事件Dim FID As StringDim FBillNo As StringDim CtlIndex As IntegerDim Cnnstring As StringDim path As StringFID = m_BillTransfer.SaveVect.Item(1).Value("FInterID")CtlIndex = CheckBill("FBillNo", 1)FBillNo = m_BillTransfer.GetHeadText(CtlIndex)Cnnstring = Split(Split((m_BillTransfer.Cnnstring), ";")(5), "=")(1)path = "C:\Program Files\KPART\My Product Name\Customprint.exe " & Cnnstring & " " & FBillNo & " " & FID'path = "C:\Program Files (x86)\KPART\My Product Name\Customprint.exe " & Cnnstring & " " & FBillNo & " " & FIDShell path, 1Case ElseEnd Select Exit Sub ErrH:MsgBox Err.Description, 48, "金蝶提示" End SubPrivate Function CheckBill(checkName As String, Sort As Integer) As Integer Dim HeadCtl As Variant Dim EntryCtl As Variant Dim reCName As String Dim I As Integer reCName = ""If checkName = "" Or Sort > 2 Or Sort < 1 ThenCheckBill = 0Exit Function End IfIf Sort = 1 ThenHeadCtl = m_BillTransfer.HeadCtlFor I = 1 To UBound(HeadCtl)If UCase(HeadCtl(I).FieldName) = UCase(checkName) ThenCheckBill = IExit FunctionExit ForEnd IfNext IEnd IfIf Sort = 2 ThenEntryCtl = m_BillTransfer.EntryCtlFor I = 1 To UBound(EntryCtl)If UCase(EntryCtl(I).FieldName) = UCase(checkName) ThenCheckBill = IExit FunctionExit ForEnd IfNext I End If End Function

C#程序入口
string[] args VB參數
HandleRunningInstance 方法,程序已運行限制重復打開并把窗口顯示在最前端。
HandleRunningInstance 方法,轉載網絡可自行查找使用。

using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Windows.Forms;namespace Customprint {static class Program{/// <summary> /// 該函數設置由不同線程產生的窗口的顯示狀態。 /// </summary> /// <param name="hWnd">窗口句柄</param> /// <param name="cmdShow">指定窗口如何顯示。查看允許值列表,請查閱ShowWlndow函數的說明部分。</param> /// <returns>如果函數原來可見,返回值為非零;如果函數原來被隱藏,返回值為零。</returns> [DllImport("User32.dll")]private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);/// <summary> /// 該函數將創建指定窗口的線程設置到前臺,并且激活該窗口。鍵盤輸入轉向該窗口,并為用戶改各種可視的記號。系統給創建前臺窗口的線程分配的權限稍高于其他線程。 /// </summary> /// <param name="hWnd">將被激活并被調入前臺的窗口句柄。</param> /// <returns>如果窗口設入了前臺,返回值為非零;如果窗口未被設入前臺,返回值為零。</returns> [DllImport("User32.dll")]private static extern bool SetForegroundWindow(IntPtr hWnd);private const int WS_SHOWNORMAL = 1;/// <summary>/// 應用程序的主入口點。/// </summary>[STAThread]static void Main(string[] args)//VB參數{Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Process instance = RunningInstance();if (instance == null){Application.Run(new FormMain(args));//VB參數}else{HandleRunningInstance(instance);}}/// <summary> /// 獲取正在運行的實例,沒有運行的實例返回null; /// </summary> public static Process RunningInstance(){Process current = Process.GetCurrentProcess();Process[] processes = Process.GetProcessesByName(current.ProcessName);foreach (Process process in processes){if (process.Id != current.Id){if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName){return process;}}}return null;}/// <summary> /// 顯示已運行的程序。 /// </summary> public static void HandleRunningInstance(Process instance){ShowWindowAsync(instance.MainWindowHandle, WS_SHOWNORMAL); //顯示,可以注釋掉 SetForegroundWindow(instance.MainWindowHandle); //放到前端 }} }

總結

以上是生活随笔為你收集整理的KIS 旗舰版 VB6.0调用C#可执行程序,并传递参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。