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#可执行程序,并传递参数相关推荐

  1. 金蝶KIS旗舰版V5.0.0研究学习

    金蝶KIS旗舰版V5.0.0 https://pan.baidu.com/s/1M19ropfRq2DW-7dXU-uMRg 提取码: tafa 数据库:sql server 2008 链接: htt ...

  2. 金蝶在虚拟机安装服务器端,金蝶KIS旗舰版V6.0安装运行环境

    客户端运行环境 组件 要求 处理器 处理器类型: Pentium 4兼容处理器 或 速度更快的处理器 处理器速度: 最低:单核1.7GHz双核1.0GHz 推荐:双核2.0GHz或 更快 内存 物理内 ...

  3. 金蝶KIS旗舰版V5.0安装报错问题总结

    1.启动本机SQL数据服务失败,创建演示账套失败:SQL Server 2008 R2需要使用混合认证模式,请确认当前登录计算机的用户有权限,如果没有新建登录名即可.如果新建登录名,自行百度: 2.K ...

  4. VB6上创建金蝶K/3或KIS旗舰版插件

    金蝶K/3 KIS旗舰版在VB6上创建新增插件教程 1.首先,必须的前提是先安装好金蝶K/3产品 (V11.0以上的版本),然后再安装VB6,不懂安装就自己百度解决了. 2.打开VB6,新建工程 选择 ...

  5. BOM物料清单,金蝶KIS旗舰版专业版金蝶K3WISE生产管理软件ERP

    产品BOM物料清单,金蝶KIS旗舰版金蝶KIS专业版金蝶K3WISE生产企业管理软件ERP,金蝶财务管理软件软件_哔哩哔哩_bilibiliBOM单的制作.BOM:即物料生产清单,也叫产品结构,或配方 ...

  6. 金蝶Kis旗舰版不能反过账?

    客户之前使用金蝶专业版,随着公司规模扩大,重新购买了一套金蝶KIS旗舰版,发现不能反过账,到底是怎么回事?金蝶到底是怎么啦?连这个功能都没是给外星人用的吗?客户不停的抱怨. 金蝶的做法其实并不难解释 ...

  7. 天联高级版客户端_天联客户端登录的KIS旗舰版打印单据问题

    如何解决天联客户端登录的KIS旗舰版打印单据问题 用户通过天联高级客户端访问服务器端的KIS旗舰版,但是反应两边单据打印出来的结果不一致,现在以KIS旗舰版打印外购入库单为例具体介绍一下如何操作 1. ...

  8. 生产任务计划单,金蝶KIS旗舰版专业版K3WISE,生产管理软件ERP,金蝶生产任务管理,生产计划管理,自动下推生产领料单

    生产任务计划单,金蝶KIS旗舰版专业版K3WISE,生产管理软件ERP,金蝶安卓PDA仓库条码管理_哔哩哔哩_bilibili本期视频讲解:金蝶生产任务单的建立.https://www.bilibil ...

  9. 系统之家GHOST Win7_SP1纯净旗舰版V3.0

    系统之家GHOST Win7_SP1纯净旗舰版V3.0         ★完整功能★完美优化★华丽界面 ◇概述◇ ------------------------ ☆源安装盘是Windows7_SP1 ...

最新文章

  1. 利用Powershell SSH-Session 工具管理 linux或网络设备
  2. python简单小游戏代码_一个简单的python小游戏---七彩同心圆
  3. WinDbg实战调试命令笔记
  4. 无法加载可扩展计数器_多核可扩展计数器
  5. 简谈“开放平台”设计中的一些感悟
  6. Android 偶见花屏 bug,无法手动重现
  7. FreeRTOS之源码 及 移植详解
  8. java面试题之什么是ThreadLocal?底层如何实现的?
  9. mysql btree面试_java面试题:你了解mysql的B+TREE索引吗?
  10. Gcode G4及M603定义
  11. Rockchip RK3288 Datasheet芯片手册资料
  12. n-gram和skip-gram
  13. LaTeX参考文献取消doi输出
  14. 表达式之谜---半斤(复合赋值表达式)
  15. 移动支付难倒老年人 如何让他们不被时代抛弃?
  16. java调用R语言传参数时,RserveException: eval failed Syntax error
  17. 【超好玩的路由环路系列】2——汇总环路
  18. 图片直接引入base64格式的
  19. 分省创新能力面板数据 - 含专利数、成交额等多指标数据(2008-2019年)
  20. 自控力并不是与生俱来【加强自我认知】

热门文章

  1. 红米手机android测试,大概是跟红米杠上了—红米note5体验测评(非专业只写个人体验)...
  2. NEON技术如何实现移动端视频高效解码AV1?
  3. 小程序模板开发靠谱么
  4. plupload实现多文件上传
  5. 修改论文格式的方法总结
  6. 嘉峪关哪有学计算机的,嘉峪关市计算机专业_立讯学院
  7. ML-Agents与python的Low Level API通信
  8. 安卓模拟器清除pin密码后屏幕锁定崩溃停止运行的解决办法
  9. ZIP压缩文件如何设置密码保护?
  10. python要背的单词_学Python必须背的42个常见单词,看看你都会吗?-Go语言中文社区...