网站建设资讯

NEWS

网站建设资讯

枚举进程vb.net 枚举进程的另类方法

在vb.net中,如何枚举一个注册的组件其开放的COM类的接口函数。

为什么增加的回答这么久还没显示。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名网站空间、营销软件、网站建设、宾阳网站维护、网站推广。

我想知道你为什么要枚举这些方法,是需要打印出来还是只是为了查看和调用?

1,如果只是为了查看和调用的话,不需要用代码就能知道了。

打开VS,视图-》对象浏览器。然后开了后,点浏览右边的“。。。”,开了后。选COM活页,再在里面选ThunderAgent 1.0 Type Library。再点添加。

添加好之后。在左边的浏览窗口内就有了,展开THUNDERAGENTLib下面有几个类和接口,展开类就有方法了。

2,如果是需要用代码枚举并打印。网上有相关的代码,C#写的。我就不帖了。自己搜一下。改成vb.net相信应该不会太难。

祝你好运。

VB 枚举系统进程得到各个运行程序的名称,有就杀

以下是获得当前系统所有进程的代码:

需要文本框,时间控件,按钮各一个

Const TH32CS_SNAPHEAPLIST = H1

Const TH32CS_SNAPPROCESS = H2

Const TH32CS_SNAPTHREAD = H4

Const TH32CS_SNAPMODULE = H8

Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)

Const MAX_PATH As Integer = 260

Private Type PROCESSENTRY32

dwSize As Long

cntUsage As Long

th32ProcessID As Long

th32DefaultHeapID As Long

th32ModuleID As Long

cntThreads As Long

th32ParentProcessID As Long

pcPriClassBase As Long

dwFlags As Long

szExeFile As String * MAX_PATH

End Type

Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long

Private Declare Function Process32First Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function Process32Next Lib "Kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)

Private Sub Command1_Click()

Timer1.Interval = 5000

End Sub

Private Sub Form_Load()

Text1.Text = "输入要结束的进程名称"

Command1.Caption = "5秒杀进程"

End Sub

Private Sub Timer1_Timer()

Dim hSnapShot As Long, uProcess As PROCESSENTRY32

hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0)

'得到系统中所有正在运行的进程的快照信息

uProcess.dwSize = Len(uProcess)

r = Process32First(hSnapShot, uProcess)

Me.AutoRedraw = True

'窗体重画

Do While r

If Left$(uProcess.szExeFile, IIf(InStr(1, uProcess.szExeFile, Chr$(0)) 0, InStr(1, uProcess.szExeFile, Chr$(0)) - 1, 0)) = Text1.Text Then Shell "cmd /c" "Taskkill /f /t /im " Text1.Text, 0

'杀指定进程

r = Process32Next(hSnapShot, uProcess)

Loop

CloseHandle hSnapShot

Timer1.Interval = 0

End Sub

VB.NET的枚举求教解决方法

这个功能实现起来其实也很简单,就是通过反射去读取 DescriptionAttribute 的 Description 属性的值,代码如下所示:

/// summary

/// 返回枚举项的描述信息。

/// /summary

/// param name="value"要获取描述信息的枚举项。/param

/// returns枚举想的描述信息。/returns

public static string GetDescription(Enum value)

{

Type enumType = value.GetType();

// 获取枚举常数名称。

string name = Enum.GetName(enumType, value);

if (name != null)

{

// 获取枚举字段。

FieldInfo fieldInfo = enumType.GetField(name);

if (fieldInfo != null)

{

// 获取描述的属性。

DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo,

typeof(DescriptionAttribute), false) as DescriptionAttribute;

if (attr != null)

{

return attr.Description;

}

}

}

return null;

}

这段代码还是很容易看懂的,这里取得枚举常数的名称使用的是 Enum.GetName() 而不是 ToString(),因为前者更快,而且对于不是枚举常数的值会返回 null,不用进行额外的反射。

当然,这段代码仅是一个简单的示例,接下来会进行更详细的分析。

VB.net如何枚举字符串?

Enum Week

周日 = 0

周一 = 1

周二 = 2

周三 = 3

周四 = 4

周五 = 5

周六 = 6

End Enum

Sub Main()

Dim myType As Type = GetType(Week)

MsgBox(Week.GetName(myType, Week.周二))

End Sub


分享名称:枚举进程vb.net 枚举进程的另类方法
当前路径:http://njwzjz.com/article/hjispi.html