Einfachen Keybinder erstellen [VisualBasic]

  • Da mir langweilig ist und mein hammer gut eine stunde zum compilen braucht,
    schreibe ich mal ein kleines tutorial (auserdem hab ich keinst auf dieser webseite gefunden)
    ALSO
    Was brauche ich?

    Wie installiere ich Visual Basic 2010 Express?
    Downloaded die datei vb_web.exe und führt sie ganz normal aus (achtung es dauert je nach internetverbindung länger)
    danach öffnet den ordner (auser ihr habt bereits eine verknüpfung auf eurem desktop) "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\"
    und sucht die datei vbexpress


    Wo Bleibt das tutorial?
    Lest weiter und ihr seht es ^^


    Am anfang kommt das erstellen . . .
    Wenn ihr vbexpress gestartet habt klickt auf "Neues Projekt..."
    Dann öffnet sich ein neues fenster in dem ihr "Windows Forms-Anwendung" aus danach wählt einen namen ich nenne es einfach nur "keybinder_tut"
    Klickt auf "OK" um fortzufahren


    Und Gott sprach es werde ein programm . . .
    Nun schliest sich das fenster und ihr bekommt einen (wahrscheinlich) unbekannten teil zu sehen
    dort ist ein kleines fenster das ihr nicht bewegen könnt und auch nicht schliesen könnt
    aber nur neben bei KEINE PANIK ihr seit im windows form editor und das fenster ist eure form ^^


    Was kommt auf das kleine fenster (auch genannt form) . . .
    nun wählt in der "Toolbox" das tool "TextBox" aus und zieht es auf euer fenster bis es so liegt das es euch gefällt
    danach sucht das tool "CheckBox" herraus und zieht es ebenfalls auf euer fenster
    danach müsst ihr einen "Timer" suchen und RICHTIG wieder aufs fenster (achtung dieser verschiebt sich automatisch dann nach unten und nicht auf das fenster!)


    Wozu war das jetzt gut?
    Die "TextBox"
    Enthält später euren auszugebenden text
    Die "CheckBox"
    Ist zum aktivieren/deaktivieren des keybinders
    Der "Timer"
    Ist für die überprüfung der gedrückten keys da


    Okay und weiter auf der form . . .
    Jetzt klickt ihr auf euren "Timer" und klickt auf "Eigenschaften" Dort solltet ihr sieben einstellungen sehen die da wären:

    • (ApplicationSettings)
    • (Name)
    • Enabled
    • GenerateMember
    • Interval
    • Modifiers
    • Tag

    Interesant sind die die in der liste (hier im forum) grün sind die anderen solltet ihr erst mal so lassen wie sie sind
    Enabled setzen wir auf "true"
    Dies dient eben dazu das der "Timer" von anfang an aktiviert ist und nicht erst manuell aktiviert werden muss
    danach setzen wir "Interval" auf 250
    Du kannst es aber auch auf 100 lassen aber merke! kleineres value = mehr leistung - größeres value = weniger leistung
    Wer jetzt jedoch denk "suppi dann setzt ich das auf 5000 und dann ist der supper leistungssparend" der hat sich geschnitten!
    denn dann wird nur alle 5 sekunden überprüft ob eine taste auf der tastatur gedrückt wurde! darum 250


    Und nun der Anfang . . .
    Klickt zwei mal auf "Timer" und . . . siehe da es öffnet sich ein weiterer tab in dem ihr plötzlich das hier seht:

    Code
    Public Class Form1
    
    
    	Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    
    
    	End Sub
    End Class


    Das ist der Code eurer form er ist im moment noch leer wie ihr sehen könnt

    Zitat von ein paar basics

    "Public Class Form1" und "End Class" gehören zusammen diese definieren den namen der klasse und kenzeichnen den anfang und das ende

    Zitat von ein paar basics

    "Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick" und "End Sub" gehören auch zusammen wie man schon vermuten kann wird dieser abschnitt immer dann ausgeführt wenn der timer seinen intervall erfüllt hat (oder anders
    wenn er Tickt XD)


    Nun fügen wir "Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Integer) As Short" direkt unter "Public Class Form1" ein
    dann solllte es bei euch so aussehen:

    Code
    Public Class Form1
    	Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Integer) As Short
    	Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    
    
    	End Sub
    End Class


    Die funktion "GetAsyncKeyState" Die wir soeben deklariert haben ist unser KeyChecker der überprüft ob jemand auf der tastatur einen knopf drückt


    Mittelteil - Da wo es schwieriger wird . . .
    Nun werden wir erst mal nur in

    Code
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    
    
    	End Sub

    uns bewegen


    naja als erstest sagem wir dem programm das es nur dann deine tastatur eingaben überprüfen soll wenn du deine "CheckBox" angeklickt hast (also sie markiert ist)
    dies machen wir durch eine if abfrage

    Code
    If CheckBox1.CheckState = CheckState.Checked Then
    
    
        	End If


    Danach fügen wir zwischen dem "Then" und dem "End If" die tastatur abfrage ein
    dafür nutzen wir wieder eine if abfrage allerdings diesesmal mit der funktion "GetAsyncKeyState"


    Code
    If GetAsyncKeyState(Keys.F1) Then
    
    
            	End If


    Nach "GetAsyncKeyState" kommt eine klammer mit dem inhalt "Keys.F1" hier könnt ihr auch genau so gut "Keys.A" herrein schreiben denn hier sagt ihr der if abfrage was sie überprüfen soll und das ist in diesem falle ob der benutzer F1 drückt


    Aber danach soll ja auch was geschehen darum fügen wir dazwischen jetzt folgendes ein:

    Code
    SendKeys.SendWait(TextBox1.Text)


    durch "SendKeys.SendWait" Sendet das programm denn danach in klammern stehenden text(der falls es dann wirklich ein text ist und kein objekt mit "" gefüßelt werden muss) Es wartet allerdings bis euer OS diese anfrage verarbeitet hat und sendet frühstens danach wieder etwas (dies ist leistungssteigernd darum nutze ich das)
    "TextBox1.Text" sagt dem programm nur woher es den text nehmen soll



    Danach sollte euer code in etwa so aussehen:


    (bitte weiter scrollen bis zum dritten post für PART2)
    @ [DCR]Patty danke fürs zwischen posten ^^

  • Und nun kommt das erste exam in der X39-Akademie . . .
    Klickt auf ALLES Speichern (die kleinen blauen disketten oben in der leiste) danach
    drückt ihr auf den kleinen grünen pfeil (auch oben oder ihr geht ins menu unter Debuggen -> Debugging Starten)
    Wenn euer programm dann keinen fehler ausspuckt wisst ihr ihr habt alles richtig gemacht
    wenn doch überprüft nochmal den endcode
    naja ich gehe jetzt davon aus das ihr alles richtig gemacht habt und sich jetzt ein kleines fenster vor euch geöffnet hat
    fügt nun in die textbox einen text ein,
    öffnet irgend etwas wo ihr hineinschreiben könnt,
    aktiviert den keybinder und drückt dann den key den ihr dafür auserwählt habt(bei mir war es F1)
    (ihr könnt auch in der textbox F1 drücken vorraussetzung das der keybinder funktioniert ist allerdings das ihr eure checkbox markiert habt)



    Kleinerer SchnickSchnack
    Wenn es funktioniert möchtet ihr garantiert noch euren ersten selbstgemachten keybinder verschönern oder?
    aber denkt daran Bilder vergrößern die benötigte leistung!



    Was wir als erstes ändern werden ist der text oben in eurem programm dafür geht ihr im form editor auf euer fensterchen und klickt wieder auf Eigenschaften


    Dort suchen wir die option TEXT herraus
    daneben könnt ihr jeden text einfügen den ihr wollt
    ich werde einfach mal "Mein Erster Keybinder" eintippen
    Ihr seht das sich der titel eures fensters geändert hat


    um den text der checkbox zu ändern tun wir das selbe


    Spielt einfach mal ein wenig mit den eigenschaften herrum und testet aus was was bewirkt



    Das HEIS ersehnte ende . . .
    Ihr müsst jetzt nurnoch eins tun
    Geht oben im menu auf "Debuggen -> EuerAusgewählterName erstellen"
    ihr seht es ist nichts geschehen
    FALSCH
    unten links sollte jetzt stehen erstellen erfolgreich
    das heist in dem ordner wo das projekt gespeichert ist (ihr habt sie gewählt als ihr speichern geklickt habt standartmäßig ist sie unter "eigene dokumente -> Visual Studio 2010 -> Projects")
    dort sucht ihr jetzt euer projekt raus und öffnet den ordner (in meinem falle wäre das dann "Projects/Keybinder_TUT/Keybinder_TUT/")
    dort öffnet ihr dann den ordner "BIN" und danach "Release"
    TADA sihe da keine EXE nur so komische doppel datei endungen
    aber da gibt es eine lösung ^^
    ändert einfach die datei endung zu .exe (auser von der .exe.mainfest) und ihr könnt das programm starten


    Fertig
    Ihr habt nun euer erstes programm für den kampfeinsatz gerüstet
    Viel Spass damit


    (entschuldigt mich fals ich etwas hier vergessen/übersprungen haben sollte oder meine rechtschreibung leicht nachlässig ist aber ich habe nicht gerade viel in letzter zeit geschlafen und nach ein bis zwei stunden schreiben kann sowas auch mal passieren)


    Über ein FeedBack meines ersten tuts hier würde ich mich freuen ^^



    Was noch fragen?
    ich werde gerne versuchen sie zu beantworten




    SOURCECODE


    Nur so ich werde morgen noch den "Kleinerer SchnickSchnack" teil ausbauen aber jetzt will ich erst mal schlafen
    video tut wird folgen (aber erst mal werde ich den sourcecode noch ausschmücken mit kommentaren und so weiter)
    weitere tutoriale NUR AUF ANFRAGE bzw WENN ICH LUST DAZU HABE

  • Will nicht unhofflich werden,aber für mich ist da zu wenig erklärt auch wenn das schon eine menge arbeit war,
    für die arbeit würdest du 9/10 bekommen,aber paar erklärungen fehlen da finde ich.
    Aber ich möchte jetzt auch nicht weiter hier was schlecht machen,ich sag nur soviel die es wirklich brauchen,
    denke ich werden dich schon danach fragen..:)

  • Also für einen Anfänger ist das hier alles C&P und kein Tutorial. Die Namen wie Private Sub, Klasse, Objekt etc. wird hier
    nicht angesprochen, wobei DAS die Grundlagen sind. Ich würde dir empfehlen das Tutorial stark zu ändern. Wobei ich selbst glaube
    das du noch nicht mal weißt was ein Objekt ist...


    Naja: An alle Script Kiddies hier im Forum: Los! Kopiert euch euren EIGENEN Keybinder.


    MFG


    DarkShot


    PS: Der Code ist sehr Fehleranfällig und unsauber. Aber das interessiert ja keinen C&P-Noob


    EDIT: Und wer meint das .NET Framework 4 zu brauchen, der ist auch sehr schief gewickelt...
    (Von wegen hier mindestens VB2010...)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Najo, hab mir das Tutorial nicht ganz druchgelesen aber scheint ganz Ordentlich zu sein. Und wer schon Grundkentnisse in VB hat, für den ist das ein Kinderspiel ;) btw. eher leicht zu Coden.


    - edit: Bei solchen Sachen wie, Keybinder erstellen etc. wäre ein Video Tutorial besser für Neu Anfänger. Nur zur Info. ;>

    Einmal editiert, zuletzt von Onizuka ()

  • Einen KeyBinder für Anfänger? WTF?


    Ich glaube ihr versteht eigentlich garnicht was hier Grundlagen sind. Die Sendkeys Methode bzw. die GetAsyncKeyState API bestimmt nicht... :evil:


    Das ist alles nur sinnloses kopiere und kein Tutorial. Aber naja. Script Kiddies halt. Die heutigen Programmierer sollte man eher Kopierer nennen. :thumbdown:


    Naja, frohes kopieren 8o


    MFG


    DarkShot


    PS: Ich glaube die meisten denken immer noch das ein String ein Datentyp ist. Aber da denkt ihr falsch ;)

  • Die heutigen Programmierer sollte man eher Kopierer nennen. :thumbdown:

    /sign


    nein String ist kein wirklicher Datentyp sondern setzt sich aus bestimmten Datentypen zusammen, Allgemein wird String auch Array genannt.


    Zum Thema selber, das Tutorial ist wirklich nichts mehr als kopieren und einfügen.
    Das ist in etwa das gleiche wie der Pawn , das Godfather Script und die Fragen in diesem Forum, nach jedem Fehler wird man merken man kommt nicht weiter und erst einmal
    ein neues Thema erstellen in dem man allen berichtet wie man gerade am weinen ist weil man feststeckt so nach dem Motto "Papa ich hab kaputt gemacht ;( , mach bitte wieder ganz"
    Ich denke wer eine Sprache lernt sollte vor allem erst einmal lernen um so das Prinzip zu begreifen , denn eine Sprache entspricht keinen Muster sprich ein Muster und gut ist,
    nein egal ob ein Code das gleiche tut er kann immer komplex anders gestaltet werden , so tut er im Endeffekt vielleicht das gleiche jedoch mit einer anderen Methode.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • String ist kein wirklicher Datentyp sondern setzt sich aus bestimmten Datentypen zusammen


    Was?


    Nein, ein String setzt sich doch nicht aus mehreren Datentypen zusammen. 8|


    Ein String ist eine Klasse, sonst gäbe es keine Methoden wie .Replace() o.Ä.
    Genauer gesagt ist der String im endgültigen Code ein Objekt, welches instanziert wird.


    Allgemein wird String auch Array genannt


    Ja, und zwar ein Char-Array...


    String -> Klasse mit Methoden
    Private myString As String -> Instanziierung des Objektes. Jetzt ist die String Klasse auch verwendbar...
    Private myBoolean As Boolean -> Variable mit einem Booleschen Wert. True oder False.


    Grüße an die C&P´ler ;P


    MFG

  • das ist die Verwendung des Typus String in Visual Basic ;)
    damit meinte ich aber andere Sprachen , aus der Basis her ist String nichts anderes als eine Kette von Daten/Zeichen/Zahlen/Hexwerten wie man es auch nennen mag,
    String selber ist dabei nur ein Subdatentyp.


    Ich habe damit niemals den Typus String in Visual Basic gemeint, in Visual Basic wurde der Typus nur nochmal vereinfacht sprich anders zusammengesetzt.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Ja, das weiß ich auch.


    Aber ich beziehe mich hier explizit auf VB.NET


    MFG


    DarkShot

  • Wobei die C&P Noobs meinen z.B. nicht nachmachen können ;)


    Aber ich finde es armseelig, dass hier jemand Tutorials macht, der eigentlich selbst nur ein C&P noob ist. So kommt er mir zumindest vor.
    Weil wer hier schon mit API´s rumfungiert, aber mich anschreibt wie ich das bei mir mit den Keybinds auswählen gemacht habe..


    Naja, da hast du bei den Grundlagen sehr sehr viel verpasst...



    MFG


    Dark

  • Zitat

    Aber das interessiert ja keinen C&P-Noob

    Ich finds schon etwas frech, dass Du andere die das auch mal probieren wollen als Noobs bezeichnet. Es kann leider nicht jeder als Visual Basic Männchen auf die Welt kommen und das alles perfekt beherrschen, wie Du Dich hier im Forum dastellst.


    Wieso darf nicht jeder es mal ausprobieren? Willst Du jetzt auch noch eine Regel machen, dass man nur Scripten darf, wenn man alles drauf hat und das alle Tutorials zum Scripten
    entfernt werden? :pinch:


    Kurz: Noob hier, Noob da. Hast Du nicht auch mal mit einem Tutorial angefangen? :)
    ____________________________________________________________________________________-


    Hättest etwas mehr erklären sollen. Wie alle schon gesagt haben, kommt hier nur Copy & Paste raus.. Ich finde die Videotutorials am besten, da man einfach durch den Ton mitarbeiten kann und dadurch sich die ganzen Sachen durch den Kopf gehen lässt und dann auf schreibt und es testet.


    PS.: Sorry wenn ich es etwas arg geschrieben habe, liegt aber an meiner mometanen Laune. Aber hält sich in Grenzen und sind keine Beleidgungen oder ähnliche Dinge dabei.. :)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen