VB CreateObject转C#
C#调用方法、函数获取属性大致流程如下:
System.Type oType = System.Type.GetTypeFromProgID("SomeClass");
object o = System.Activator.CreateInstance(oType);
oType.InvokeMember("SomeMethod", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] { arg1, arg2 });
w = oType.InvokeMember("SomeFunction", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] { arg1, arg2 });
w = oType.InvokeMember("SomeGet", System.Reflection.BindingFlags.GetProperty, null, o, null);
oType.InvokeMember("SomeSet", System.Reflection.BindingFlags.SetProperty, null, o, new object[] { w });
示例:VB.NET 获取计划任务列表
Dim service = CreateObject("Schedule.Service")
Call service.Connect() ' Get the task folder that contains the tasks.
Dim rootFolder
rootFolder = service.GetFolder("\") Dim taskCollection
taskCollection = rootFolder.GetTasks() Dim numberOfTasks
numberOfTasks = taskCollection.Count If numberOfTasks = Then
Debug.Print("No tasks are registered.")
Else
Debug.Print("Number of tasks registered: " & numberOfTasks) Dim registeredTask
For Each registeredTask In taskCollection
Debug.Print("Task Name: " & registeredTask.Name) Dim taskState
Select Case registeredTask.State
Case ""
taskState = "Unknown"
Case ""
taskState = "Disabled"
Case ""
taskState = "Queued"
Case ""
taskState = "Ready"
Case ""
taskState = "Running"
Case Else
taskState = "Unknown"
End Select Debug.Print(" Task State: " & taskState)
Next
End If
翻译为C#:
var typeofScheduleService = System.Type.GetTypeFromProgID("Schedule.Service");
var service = System.Activator.CreateInstance(typeofScheduleService);
typeofScheduleService.InvokeMember("Connect", System.Reflection.BindingFlags.InvokeMethod, null, service, new object[] { });
var rootFolder = typeofScheduleService.InvokeMember("GetFolder", System.Reflection.BindingFlags.InvokeMethod, null, service, new object[] { @"\" });
var taskCollection = typeofScheduleService.InvokeMember("GetTasks", System.Reflection.BindingFlags.InvokeMethod, null, rootFolder, new object[] { });
var numberOfTasks = int.Parse(typeofScheduleService.InvokeMember("Count", System.Reflection.BindingFlags.GetProperty, null, taskCollection, new object[] { }).ToString());
foreach(var task in taskCollection as IEnumerable)
{
var taskName = typeofScheduleService.InvokeMember("Name", System.Reflection.BindingFlags.GetProperty, null, task, new object[] { }).ToString();
var taskState = int.Parse(typeofScheduleService.InvokeMember("State", System.Reflection.BindingFlags.GetProperty, null, task, new object[] { }).ToString());
//略去switch部分
}
VB CreateObject转C#的更多相关文章
- C#中实现VB中的CreateObject方法
经常看到有些VB的例子中直接用个CreateObject就可调用系统功能(大多是COM对象),像用户设定,网络设定等等.虽然C#中可以通过使用VB的命名空间的方法来调用CreateObject函数,但 ...
- 用VB脚本批到导入字段到PowerDesigner
在PowerDesigner使用脚本批量导入excel中记录的表结构信息,由于需要通过powerdesigner逆向工程创建一些sybase IQ的表,由于是接口数据,只有excel表,手动导入太耗时 ...
- 用VB实现SmartQQ机器人
这里为了便于介绍程序设计的流程,更多以代码形式给出,具体可用火狐浏览器的firebug插件来抓包分析,或者用谷歌浏览器的开发者工具进行抓包.抓包地址是:http://w.qq.com 第一步,是二维码 ...
- vb小菜一枚--------早期绑定和后期绑定
早期绑定和后期绑定 Visual Studio 2005 其他版本 将对象分配给对象变量时,Visual Basic 编译器会执行一个名为 binding 的进程.如果将对象分配给声明为特定对 ...
- vb.net向Excel中写入值
根据网上例子结合自己的工具环境修改后测试可以通过 我使用的工具:Microsoft Visual Studio 2010,Excel 2007 一.在D盘新建一个temp文件夹用于存放Excel启动时 ...
- 用VB操作Excel的方法
VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便.因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报 ...
- VB版本查询快递单号源码
能查询各大快递单号,包括申通快递,圆通快递,韵达快递等国内超过90家以上快递单号查询, 如果想快速搭建一个快递单号查询站我推荐这个,这是地址www.aikuaidi.cn,我分享一个VB Functi ...
- ASP 调用dll(VB)及封装dll实例
ASP调用dll及封装dll实例,封装为dll可以提供运行效率,加密代码. 打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Ob ...
- 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...
随机推荐
- python时间时分秒与秒数的互相转换
受到Unix时间戳的启发,我发现时间转成秒数后会非常好处理,在程序当中不再是以字符串的形式处理,不管时间的加减还是获取随机的时间点都变得非常方便, 如果有需要,也很容易转换成需要的时间格式. 一:时间 ...
- Android数据库 — — —查询数据
package com.example.datebasetest; import android.content.ContentValues;import android.database.Curso ...
- BootStrap 的modal 中使用typeahead
刚开始怎么也不现实,在页面上显示正常. 调试发现是下拉框被modal遮挡住了, 找到样式dropdown-menu 修改z-index值为2000后,显示正常.(modal的z-index值为1 ...
- hdu 2074
ps:WA了好多次...因为首先是n=1的情况,其次是中心花色和外花色,中心花色也有可能是最外层花色....很无语. 然后就是格式问题咯. 代码 #include "stdio.h" ...
- Linux命令全称
知其表亦需知其意 apt = Advanced Packaging Tool ar = archiver as = assembler awk = "Aho Weiberger and Ke ...
- article和section
article和section都是指页面中的块,但是article更加强调独立性,而section常被用来分块. section使用禁忌: 1.不要把section当作定义样式的容器,因为那是div的 ...
- Unity3D 处理Label的颜色代码
UILabel m_name = transform.Find("Name").GetComponent<UILabel>(); m_name.text = GetNa ...
- 2016-12-21(1)Git常用命令总结
友情链接:http://www.cnblogs.com/mengdd/p/4153773.html
- KBEngine 学习笔记
最近开始学习 KBE 扩展技能点>_<!所以建一个随笔记录一下遇到的小问题: 问题1 :DBMgr找不到LibMysql32.dll 解决:VS 中KBE源码 默认的是Win32 ,Win ...
- HDU 1237
http://acm.hdu.edu.cn/showproblem.php?pid=1237 表达式计算,方法是中缀转后缀,再计算.中间处理用栈操作 讲解看http://blog.csdn.net/a ...