{"id":45,"date":"2008-05-07T11:21:15","date_gmt":"2008-05-07T11:21:15","guid":{"rendered":"http:\/\/tw.newtonstudio.com\/?p=45"},"modified":"2008-05-07T11:21:15","modified_gmt":"2008-05-07T11:21:15","slug":"net-framework-%e5%af%ab%e4%b8%80%e5%80%8bwinform%e7%a8%8b%e5%bc%8f%e4%be%86%e7%9b%a3%e6%8e%a7%e8%87%aa%e5%b7%b1%e7%9a%84%e9%9b%bb%e8%85%a6%e7%8b%80%e6%85%8bwmi","status":"publish","type":"post","link":"http:\/\/tw.newtonstudio.com\/?p=45","title":{"rendered":".NET FRAMEWORK \u5beb\u4e00\u500bWinForm\u7a0b\u5f0f\u4f86\u76e3\u63a7\u81ea\u5df1\u7684\u96fb\u8166\u72c0\u614b(WMI)"},"content":{"rendered":"<p>\u4f7f\u7528Visual Studio \u4f86\u958b\u767c\u7a0b\u5f0f, \u4e0d\u53ea\u5728ASPX\u6709\u5f88\u4e0d\u932f\u7684\u529f\u80fd, \u518dWINFORM\u65b9\u9762\u4e5f\u662f\u5b78\u5e7e\u5e74\u90fd\u5b78\u4e0d\u5b8c.<\/p>\n<p>\u4ee5\u4e0b\u662f\u4e00\u500b\u7c21\u55ae\u7684\u7bc4\u4f8b\u7a0b\u5f0f, \u4f5c\u7528\u662f\u76e3\u63a7\u81ea\u5df1\u7684\u96fb\u8166\u5982\u679c\u5efa\u7acb\u4e00\u500b\u5e33\u865f\u4e86, \u5c31\u6703\u986f\u793a\u4e00\u500b\u5c0d\u8a71\u6846, \u544a\u8a34\u4f60\u6240\u5efa\u7acb\u7684\u5e33\u865f\u540d\u7a31\u53caSID.<\/p>\n<p>\u7576\u7136\u5982\u679c\u4f60\u6703\u8209\u4e00\u53cd\u4e09, \u4e5f\u53ef\u4ee5\u5beb\u985e\u4f3c\u7684\u7a0b\u5f0f(\u5229\u7528System.Management\u7684namespace)\u4f86\u73a9\u5f88\u591a\u7684\u82b1\u6a23.<\/p>\n<p>WinForm \u7a0b\u5f0f:<\/p>\n<blockquote><p>Imports System.Management<\/p>\n<p>Public Class Form1<\/p>\n<p>\u00a0\u00a0\u00a0 Dim watcher As ManagementEventWatcher<\/p>\n<p>\u00a0\u00a0\u00a0 Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Button2.PerformClick()<br \/>\n\u00a0\u00a0\u00a0 End Sub<br \/>\n\u00a0\u00a0\u00a0 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br \/>\n\u00a0\u00a0\u00a0 End Sub<\/p>\n<p>\u00a0\u00a0\u00a0 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Dim equery As New WqlEventQuery(&#8220;__InstanceCreationEvent&#8221;, New TimeSpan(0, 0, 2), &#8220;TargetInstance isa &#8220;&#8221;Win32_Account&#8221;&#8221;&#8221;)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 watcher = New ManagementEventWatcher(equery)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 AddHandler watcher.EventArrived, AddressOf watcher_EventArrived<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 watcher.Start()<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Button1.Enabled = False<br \/>\n\u00a0\u00a0\u00a0 End Sub<\/p>\n<p>\u00a0\u00a0\u00a0 Sub watcher_EventArrived(ByVal sender As Object, ByVal e As EventArrivedEventArgs)<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Dim mbo As ManagementBaseObject<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 mbo = CType(e.NewEvent, ManagementBaseObject)<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Dim serviceMO As ManagementBaseObject<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 serviceMO = CType(mbo(&#8220;TargetInstance&#8221;), ManagementBaseObject)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MessageBox.Show(String.Format(&#8220;Create a New Account: {0}&#8221; &amp; vbCrLf &amp; &#8220;SID:{1}&#8221;, serviceMO(&#8220;Name&#8221;), serviceMO(&#8220;SID&#8221;)))<br \/>\n\u00a0\u00a0\u00a0 End Sub<\/p>\n<p>\u00a0\u00a0\u00a0 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 If watcher Is Nothing Then<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Exit Sub<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 End If<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 watcher.Stop()<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Button1.Enabled = True<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Button2.Enabled = False<br \/>\n\u00a0\u00a0\u00a0 End Sub<br \/>\nEnd Class<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528Visual Studio \u4f86\u958b\u767c\u7a0b\u5f0f, \u4e0d\u53ea\u5728ASPX\u6709\u5f88\u4e0d\u932f\u7684\u529f\u80fd, \u518dWINFORM\u65b9\u9762\u4e5f\u662f\u5b78\u5e7e\u5e74\u90fd [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-net-framework-aspx"],"_links":{"self":[{"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=45"}],"version-history":[{"count":0,"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=\/wp\/v2\/posts\/45\/revisions"}],"wp:attachment":[{"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/tw.newtonstudio.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}