kostenloser Webspace werbefrei: lima-city


Global HotKey... Wie?!

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    slysphotos

    slysphotos hat kostenlosen Webspace.

    Hallo zusammen!

    Ich brauch mal wieder eure Hilfe bei einem VB.NET Programm an dem ich gerade arbeite:

    Das Programm simuliert Mausbewegungen bzw. Klicks, hat dabei aber selbst NICHT den Fokus!

    Ich brauche unbedingt einen \"Abbrechen\" Shortcuut zb mit Druck auf ESC.

    Ich hab schon rausgefunden das das angeblich mit einem hook oder so gehen soll.. nur weiß ich nicht wie

    Ich verwende vb.net 2005 und bin eher ein Anfänger.. also wenn wer helfen kann: bitte mit beispielen :)

    tia
    slysphotos
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Du hast die Lösung schon selbst gesagt:

    Du registrierst über die Windows API einen Globalhotkey und fügst einen Ereignishandler hinzu,
    der ausgelöst wird, wenn die Tasten gedrückt werden.
    Der Befehl dazu lautet RegisterGlobalHotKey. In der MSDN kannst du nachschauen, welche API du brauchst.
  4. Autor dieses Themas

    slysphotos

    slysphotos hat kostenlosen Webspace.

    danke erstmal für die schnelle Hilfe, aber ganau das bekomm ich (als vb.net noob) einfach nicht hin...

    in der msdn hab ich irgendwie keine für mich verständlichen einträge zu \"globalhotkey\" gefunden.
    relativ vielversprechend schaut das für mich aus \"http://www.dotnet2themax.com/ShowContent.aspx?ID=103cca7a-0323-47eb-b210-c2bb7075ba78\" nur dürfte das irgendwie im .net nicht ganz so klappen... wenn ich den code rüberkopiere bekomm ich SEHR VIELE sachen unterwellt (zb.: PRIVATE const, private DECLARE function, etc.)

    irgendwie blick ich da nicht durch....:confused:

    EDIT:
    ^^^^^
    oops.. hab den code an der falschen stelle eingefügt *g*

    jetzt ist schon weniger unterwellt:
    \"APPDOMAIN.GETCURRENTTHREADID.ToString\"
    sowie
    MARSHAL.GetLastWin32Error\"

    jeweils das großgeschreibene ist unterwellt..?
    warum bzw. was muss ich da ändern?

    Beitrag geändert: 5.2.2008 13:14:42 von slysphotos
  5. Autor dieses Themas

    slysphotos

    slysphotos hat kostenlosen Webspace.

    update:
    ^^^^^^^

    also ich spiel mich da jetzt schon ne ganze weile rum...

    das ich den teil mit Marshal.GetLastWin32Error nicht zum laufen bekomme ist ja nich so schlim.. hab ich hald keine Error ID...

    abder ich bekomm das mit dem AppDomain.GetCurrentThreadId nich hin..
    Laut MSDN soll ich mit ManagedThreadId arbeiten, aber irgendiw bekomm ich da nur Fehlermeldungen über Fehlermeldungen.. und sobald ich eine korregiere, kommen 2 neue..

    HELP!!

    >>>>>>>>>><<<<<<<<<
    Public ReadOnly Property ManagedThreadId() As Integer
    Get
    Dim instance As Threading.Thread
    Dim value As Integer

    value = instance.ManagedThreadId
    End Get
    End Property
    >>>>>>>>>><<<<<<<<<
    ...bringt das überhaupt was??

    >>>>>>>>>><<<<<<<<<
    \' register a global hot key
    Sub RegisterGlobalHotKey(ByVal hotkey As Keys, ByVal modifiers As Integer)
    Try
    \' use the GlobalAddAtom API to get a unique ID (as suggested by MSDN docs)
    Dim atomName As String = Me.ManagedThreadId.ToString(\"X8\") & Me.Name
    hotkeyID = GlobalAddAtom(atomName)
    If hotkeyID = 0 Then
    Throw New Exception(\"Unable to generate unique hotkey ID!\")
    End If

    \' register the hotkey, throw if any error
    If RegisterHotKey(Me.Handle, hotkeyID, modifiers, CInt(hotkey)) = 0 Then
    Throw New Exception(\"Unable to register hotkey!\")
    End If
    Catch ex As Exception
    \' clean up if hotkey registration failed
    UnregisterGlobalHotKey()
    End Try
    End Sub
    >>>>>>>>>><<<<<<<<<

    tia!!
    slysphotos
  6. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Solltest du dich etwas mit dem Visual Studio .Net Editor vertraut gemacht haben, dann würdest du in dem Fenster \"Fehlerliste\" eine genaue Beschreibung lesen und wissen können, was zu tun ist. Man kann die Fehlermeldung oder nur Warnung anklicken und dann sogar auf Hilfe klicken.


    Hast du es eigentlich bereits geschafft, ein Hello-World Programm zu schreiben? Dein Code sieht grauenhaft aus... ;)

    Beitrag geändert: 5.2.2008 17:43:11 von cbhp
  7. Autor dieses Themas

    slysphotos

    slysphotos hat kostenlosen Webspace.

    also über Hello World bin ich schon drüber... auch wenns noch nicht so lange he ist ;)

    Wenn bei mir was nicht geht versuch ich einfach alles mal auszuprobieren, und lösch den code dan nicht weg bis es klappt... deswegen das chaos :)

    die Fehlerliste schreibt mommentan, dass ich instance keinen wert zugeweisen habe...
    die frage ist nicht wie ich dem ding einen wert verpasse sonder welchen??

    übrigens der ober code-teil ist einfach unverändert aus der msdn rauskopiert... ich hatte gehofft dasaus schlau zu werden ;)

    der untere Teil ist (so gut wie) unverändert aus der Seite raukopiert die oben verlinkt ist... ich hab nur die AppDomain.GetCurrentThreadId auf die ManagedThreadId geändert/aktualisiert(?)
    vielleicht bin ich da aber auch schon wieder auf nem völlig falschen Dampfer..

    *verzweifel*


    Beitrag geändert: 5.2.2008 18:36:43 von slysphotos
  8. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.


    übrigens der ober code-teil ist einfach unverändert aus der msdn rauskopiert... ich hatte gehofft dasaus schlau zu werden ;)



    Also einfach nur rauskopieren hilft dir nicht sehr viel.
    Du musst schon verstehen, was du da genau kopiert hast.

    Außerdem versuche dich erstmal an einfacheren Programmen, damit du etwas Übung im Umgang mit dem .NET Framework bekommst. Danach solltest du dieses Problem selbst lösen können.
  9. Autor dieses Themas

    slysphotos

    slysphotos hat kostenlosen Webspace.

    hhmm..
    irgendwie klappt genau das mit dem \"an-das-thema-heran-lernen\" überal, aber hierbei stecke ich fest..

    whatever

    ...ich muss wohl weitersuchen

    Danke trotzdem!!

    lg
    slysphotos
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!