Windows Message Codes

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Windows Message Codes

      [SIZE="7"][COLOR="DarkOrange"]Windows Message Codes[/COLOR][/SIZE]
      [SIZE="5"]__________________________________[/SIZE]

      [SIZE="2"]

      [COLOR="PaleGreen"]Hi,

      In Diesem Guide geht es um die "Windows Message Codes".
      Windows Message Codes, abgekürzt WM Codes, sind Codes/Befehle die man , auch mit AutoIT, an Windows Übermitteln kann.
      Damit kann man zum Beispiel den Monitor ausschalten und wieder anschlaten oder nachsehen lassen ob die Maus sich gerade über einem Objekt befindet (Hover) .
      [/COLOR]
      [COLOR="LemonChiffon"]Wie rufe ich die WM Codes auf?[/COLOR]
      In AutoItv3 ist die folgende Funktion enthalten.

      Quellcode

      1. GuiRegisterMsg()


      Damit registriert man einen Code und eine, in String Tags angegebene, Funktion.

      So führt AutoIT diese Funktion aus, wenn der WM Code ausgeführt wird.

      Die WM Codes findet man im Help File.

      Quellcode

      1. AutoIT - > Appendix -> Windows Message Codes


      Und hier : Windows Message Codes

      Im Helpfile und im obrigen genannten Link sieht man 2 Tabellen ( Da alles so eng ist, sieht man es erst wenn man zweimal hinguckt)

      In jeder Tabelle befinden sich jeweils 2 Spalten.
      In der Ersten Spalte steht der Name des WM Comands, von dem man auch auslesen kann wofür er da ist.
      Und in der Zweiten Spalte steht Der Hexadezimale Wert Des Commands.

      Als Include kann man folgende Datei nutzen:

      Quellcode

      1. #include <GuiConstantsEx.au3>


      Aber leider sind nicht alle WM Comands als AutoIT Variable im include gespeichert.
      Man muss also auch mal selber etwas deklarieren, was ja nicht so tragisch ist.

      Ein Beispiel :

      Quellcode

      1. $hGUI = GuiCreate("WM_HSCROLL - Test",500,200)
      2. $hSlider = GUICtrlCreateSlider(50,50,300,50)
      3. GUICtrlSetLimit(-1,10,0)
      4. GUIRegisterMsg($WM_HSCROLL,"Info_Release")
      5. ;; HSCROLL = hScroll = handle Scroll
      6. ;; deDE = Wenn ein Control "gescrollt" wird, wie bei einem Slider zB.
      7. Func Info_Release($hWnd, $iMsg, $iwParam, $ilParam)
      8. ;; Die Parameter dieser Func, sind die, welche GUIRegisterMSG dann aussfüllt.
      9. ;; Jetzt wurde etwas "gescrollt".
      10. ;; Und deswegen diese Funktion abgerufen, da wir sie angegeben hatten.
      11. ToolTip(" Der Slider steht bei : " & GuiCtrlRead($hSlider))
      12. EndFunc
      Alles anzeigen


      Bei dem Code habt ihr bestimmt bei der Func, die 4 Parameter gesehen, die aber gar nicht genutzt wurden.
      Diese Parameter kann man nutzten, sie stehen auch im Helpfile unter dem "GuiRegisterMsg()" - eintrag.

      hWnd - The Window handle of the GUI in which the message appears.
      Msg - The Windows message ID.
      wParam - The first message parameter as hex value.
      lParam - The second message parameter as hex value.


      Falls ihr aber WM Commands ausführt bei dem Daten zurückgegeben werden.
      Dann müsst ihr eine neue Struktur anlegen.
      Dies gelingt euch durch

      Quellcode

      1. DllStructCreate()

      Daten werden mit folgender Funktion eingetragen:

      Quellcode

      1. DllStructSetData()

      Mit dieser folgender Funktione werden sie wieder ausgelesen:

      Quellcode

      1. DllStructGetData()

      Und mit dieser folgender Funktion kann man den Pointer / Zeiger oder auch bekannt als "ptr" bekommen:

      Quellcode

      1. DllStructGetPtr()


      Mehr zur Sache mit den Dll Strukturen findet ihr im Helpfile.
      Und die Strukturen zu den WM Comands bekommt ihr in Google, hauptsächlich in der MSDN libary von Microsoft.

      Manche werdne jetzt denken, dies sei etwas für fortgeschrittene und ein schwer zu bewältigenes Stück Arbeit, aber nein, so ist es nicht.
      Die verwendung von WM Comands gibt euch die Möglichkeit noch mehr dinge zu machen.
      Und das Ziel ist ganz eindach zu erreichen.
      Und fals einer denkt es sei unmöglich, dann irrt er sich gewaltig, denn sonst wäre es ja nicht eingetragen und vorallem :

      Quellcode

      1. [COLOR="DarkOrange"][B]NOTHING IS IMPOSSIBLE[/B][/COLOR]


      Und wenn ihr verzweifeln sollted, dann sucht in den offiziellen Foren nach beispielen zu den WM Commands, dort sind auch sehr viele UDF, an die ihr noch nicht eimal im Traum gekommen wärt, weil ich dachtet das ginge nicht so einfach.

      Viel Spass.

      gez :: *electriZer*

      [/SIZE]
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )