Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

ManagementEventWatcher in VB.Net

Pagina: 1
Acties:
  • 52 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo allemaal,

Op dit moment zit ik met een probleem waar ik niet uitkom. Ik heb een applicatie gebouwd, die een aantal securitychecks doet, waaronder een check of de juiste USB-stick met encryptie aanwezig is.
Op zich werkt deze functionaliteit allemaal, alleen ik worstel met een probleem met het bijwerken van de GUI bij het tussentijds signalerern van het verwijderen/toevoegen van deze usb-stick. Ik maak hiervoor gebruik van de ManagementEventWatcher.

Als ik onderstaande (ingekorte) code gebruik, verschijnt er keurig een messagebox bij het optreden van een van de events.
code:
1
2
3
4
5
6
7
8
    Public Sub USBEventHandler(ByVal EventName As String, ByVal obj As Object)
        Select Case EventName
            Case "__InstanceCreationEvent"
                MsgBox(obj("Caption") & " has been plugged")
            Case "__InstanceDeletionEvent"
                MsgBox(obj("Caption") & " has been plugged")
        End Select
    End Sub


Vervang ik deze code door dit (de securitychecks zijn voor de eenvoud niet toegevoegd):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    Public Sub USBEventHandler(ByVal EventName As String, ByVal obj As Object)
       Select Case EventName
            Case "__InstanceCreationEvent"
                UpdateTools(True)
            Case "__InstanceDeletionEvent"
                UpdateTools(False)
        End Select
    End Sub

     Public Sub UpdateTools(ByVal Enabled As Boolean)
        SetAllMenuItems(MenuStrip1, Enabled)
     End Sub

    Private Sub SetAllMenuItems(ByRef menuStrip As MenuStrip, ByVal enable As Boolean)
        Dim c As ToolStripItem
        Dim t As ToolStripMenuItem
        For Each c In menuStrip.Items
            c.Enabled = enable
            If c.GetType Is GetType(ToolStripMenuItem) Then
                t = c
                SetAllMenuItems(t.DropDownItems, enable)
            End If
        Next

    End Sub
    Private Sub SetAllMenuItems(ByRef menus As ToolStripItemCollection, ByVal enable As Boolean)
        Dim c As ToolStripItem
        Dim t As ToolStripMenuItem
        For Each c In menus
            c.Enabled = enable
            If c.GetType Is GetType(ToolStripMenuItem) Then
                t = c
                SetAllMenuItems(t.DropDownItems, enable)
            End If
        Next
    End Sub



Dan wordt alleen het eerste menu-item gedisabled.

Roep ik dezelfde sub UpdateTools(False) aan via een button, dan worden wel
alle buttons gedisabled..

Heeft iemand een idee hoe ik dit moet gaan oplossen? Ik heb al gezocht op google (er is een hoop geschreven over dit onderwerp) maar kan echt geen bruikbare tips vinden voor het oplossen hiervan.

Een gebruiker met hetzelfde probleem kun je hier vinden..


http://forums.microsoft.c...x?PostID=2009854&SiteID=1

  • Zsub
  • Registratie: Juli 2006
  • Laatst online: 30-11 20:30
Zet al je code even tussen [code]-tags, alsjeblieft, dan is het een stuk leesbaarder...

Edit: ik kan je verder niet helpen, daar niet van, maar zo kan iemand die je wel kan helpen beter lezen en klikt hij/zij het iig niet weg omdat het onleesbaar is ;)

[ Voor 48% gewijzigd door Zsub op 04-09-2007 18:10 ]


Verwijderd

Topicstarter
Ik heb mijn post aangepast... dank voor het commentaar.
Zsub schreef op dinsdag 04 september 2007 @ 18:05:
Zet al je code even tussen [code]-tags, alsjeblieft, dan is het een stuk leesbaarder...

  • whoami
  • Registratie: December 2000
  • Nu online
Je kan misschien eens beginnen met het debuggen van je code....
Plaats een breakpoint in die method, voer ze stap voor stap uit, en zie waar & waarom het verkeerd gaat.
Je IDE biedt de nodige tools om je code te debuggen, dus gebruik je ze ook best. :)

Het is niet de bedoeling dat je je code hier post, en anderen het debug-werk laat doen, als je het zelf nog niet gedaan hebt. :)
Het is trouwens één van de nodige skills van een programmeur: code debuggen.

Succes. :)

https://fgheysels.github.io/


Dit topic is gesloten.