1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Carsten8

Beiträge von Carsten8

  • [Wettbewerb] Zweielementige boolesche Algebra

    • Carsten8
    • 21. Februar 2012 um 14:54

    Ich bin trotzdem der Meinung, man sollte den ganzen Wettbewerb (wenn's schon um Elektronik bzw. Kabel geht) auf Not und Or beschänken. Alles andere hat (wie ich finde) kaum etwas mit dem Thema zu tun, sorry.

  • [Wettbewerb] Zweielementige boolesche Algebra

    • Carsten8
    • 21. Februar 2012 um 14:05

    Einen dezimalen Input zu verwenden wird in der Tat kompliziert, aber nicht unmöglich.
    Ich experimentiere gerade mit AutoIt. Alles was man braucht ist in der Tat "Not" und "BitOR". BitOR dient hierbei zur Verbindung zweier Kabel.
    Ein AND-Gate würde dabei wie folgt aussehen:

    [autoit]

    $a = False
    $b = False

    [/autoit][autoit][/autoit][autoit]

    $c = Not BitOR(Not $a, Not $b)

    [/autoit]


    $a und $b stellen die beiden Inputs dar, $c ist das Ergebnis. Wenn $a und $b an sind, ist $c an. Auf diese Weise realisierst du dann dein If (je nachdem, was du machen willst).

  • [Wettbewerb] Zweielementige boolesche Algebra

    • Carsten8
    • 21. Februar 2012 um 13:36

    Wenn, dann aber richtig. Das heißt FromInteger, ToInteger und so weiter muss raus. Alles was du hast ist NOT. Das reicht für alles andere. For, If und so weiter braucht man hier nicht, das lässt sich alles mittels Not-Gates realisieren. Für Inputs und Outputs lassen sich beispielsweise Checkboxen verwenden, die grundsätzlich auch nur zwei Zustände haben (aus -> 0 und an -> 1).

  • Habt ihr eine G19?

    • Carsten8
    • 5. August 2010 um 07:58

    Guten Morgen,

    da nun meine G19 UDF fast fertig ist, wollte ich euch hier einmal fragen, ob ihr denn überhaupt eine G19 besitzt (oder vorhabt, euch eine zu holen) oder nicht. Das frage ich v.a. deshalb, weil ich mir nicht sicher bin, ob es sich lohnt, Applets zu schreiben, wenn die eh keiner hier nutzen kann.


    Würde mich über zahlreiche Antworten freuen :)

    Gruß,
    Carsten

  • G19 JDownloader

    • Carsten8
    • 4. August 2010 um 18:53
    Zitat von Skilkor

    allso mit der G15 Läufts schonmal Nicht :( Schade
    Bekomme bei Zeile 59 den Error

    muss ichn download aktiv haben oder nicht?

    Welchen Error denn?

  • Zahl berechnen

    • Carsten8
    • 3. August 2010 um 23:27

    $Zahl1 beinhaltet in deinem Fall (nachdem du das Eingabefeld erstellst) nun ein Handle (quasi die Speicheradresse zum Eingabefeld). Um den Inhalt auszulesen, brauchst du GUICtrlRead($zahl1), anstelle von nur $zahl1.

  • G19 Hintergrundbeleuchtung

    • Carsten8
    • 3. August 2010 um 22:12

    Mit umwandeln habe ich schon was gefunden. Aber da blick ich absolut nicht durch (c# verwende ich das erste mal) und (soweit ich das gelesen hab) muss ich wissen, wie viele Methoden es gibt, was ich ja leider nicht weiß :(

    Wäre natürlich der Hammer, wenn das jemand für mich übernehmen könnte, der Ahnung davon hat :)

    Edit: Grad gesehn, dass da ja so ein tolles Tool für geschrieben wurde. Gleich mal testen :)

    Edit 2: Mist, geht nicht. Hab nach der Reihe die Buttons angeklickt und am Ende folgendes Script versucht auszuführen:

    [autoit]

    DllCall("GLightLib.dll", "none", "SetUp")

    [/autoit]


    Hier verreckt das Script einfach ("AutoIt v3 Script funktioniert nicht mehr"). In der Konsole von SciTE ist folgendes zu lesen:

    Code
    >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\Carsten\Desktop\GLight\G19 Test.au3" /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams    
    +>22:49:13 Starting AutoIt3Wrapper v.2.0.1.24    Environment(Language:0407  Keyboard:00000407  OS:WIN_7/  CPU:X64 OS:X64)
    >Running AU3Check (1.54.19.0)  from:C:\Program Files (x86)\AutoIt3
    +>22:49:13 AU3Check ended.rc:0
    >Running:(3.3.6.1):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\Carsten\Desktop\GLight\G19 Test.au3"    
    
    
    Unbehandelte Ausnahme: System.BadImageFormatException: Es wurde versucht, eine Datei mit einem falschen Format zu laden. (Ausnahme von HRESULT: 0x8007000B)
    !>22:49:36 AutoIT3.exe ended.rc:-532459699
    >Exit code: -532459699    Time: 24.647
  • G19 Hintergrundbeleuchtung

    • Carsten8
    • 3. August 2010 um 22:06

    Ok, ich frage mal etwas anderes. Ich habe folgende DLL gefunden: http://www.g15-applets.de/glight-t7077.html
    Leider ist die in C# geschrieben und somit eine .net Library mit der ich mit AutoIt nichts anfangen kann. Gibt es trotzdem irgendwie eine Möglichkeit darauf zuzugreifen?

  • G19 Hintergrundbeleuchtung

    • Carsten8
    • 2. August 2010 um 23:21

    Guten Abend,

    nachdem ich jetzt meine UDF für das LCD für die G19 nahezu fertig habe, habe ich mich daran versucht, die Farbe der Hintergrundbeleuchtung der Tastatur zu ändern. Leider bisher ohne Erfolg.

    Was ich bis jetzt habe (und was auch funktioniert):

    [autoit]

    $sPath = "\\?\HID#VID_046D&PID_C229&MI_01&Col02#8&2a2bb5da&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}"
    $hHID = _WinAPI_CreateFile($sPath, 2, 2)

    [/autoit]

    Das war's aber auch schon.. Leider habe ich keine Ahnung, wie ich jetzt was damit anfangen soll.
    Ich habe im WWW noch folgenden C-Header gefunden, der mich leider auch nicht weiter bringt:

    Spoiler anzeigen
    Code
    // And Now we define the Report Ids
    typedef enum
    {
        G19InputReportId_Keyboard = 1,
        G19InputReportId_Gaming = 2,
    
    
    } eG19ReportInputReportId;
    
    
    
    
    typedef enum
    {
    
    
        G19FeatureReportId_GKeyUsages = 1,
        G19FeatureReportId_Unknown1 = 4,         // No info
        G19FeatureReportId_MLED = 5,
        G19FeatureReportId_Unknown2 = 6,           // No info
        G19FeatureReportId_BacklightColor = 7,
    
    
    } eG19FeatureReportId;
    
    
    
    
    
    
    // FEATURE REPORTS
    typedef struct
    {
        BYTE bReportId;     // This will be G19FeatureReportId_MLED
        BYTE Resv   : 4;
        BYTE MR     : 1;
        BYTE M3     : 1;
        BYTE M2     : 1;
        BYTE M1     : 1;
    
    
    } G19FeatureReport_MLED;
    
    
    
    
    typedef struct
    {
        BYTE bReportId;     // This will be G19FeatureReportId_GKeyUsages
        BYTE Usages[12];
    
    
    } G19FeatureReport_GKeyUsage;
    
    
    typedef struct
    {
        BYTE bReportId;     // This will be G19FeatureReportId_BacklightColor
        BYTE Red;
        BYTE Green;
        BYTE Blue;
    
    
    }  G19FeatureReport_Backlighting;
    
    
    
    
    
    
    // INPUT REPORTS
    typedef struct
    {
        BYTE bReportId;     // This will be G19InputReportId_Gaming
    
    
        BYTE G1     : 1;
        BYTE G2     : 1;
        BYTE G3     : 1;
        BYTE G4     : 1;
        BYTE G5     : 1;
        BYTE G6     : 1;
        BYTE G7     : 1;
        BYTE G8     : 1;
    
    
        BYTE G9     : 1;
        BYTE G10    : 1;
        BYTE G11    : 1;
        BYTE G12    : 1;
        BYTE M1     : 1;
        BYTE M2     : 1;
        BYTE M3     : 1;
        BYTE MR     : 1;
    
    
        BYTE Resv1  : 3;
        BYTE BL     : 1;  // Light Button
        BYTE Resv2  : 4;
    
    
    } G19InputReport_Gaming;
    Alles anzeigen

    Hat jemand von euch eine zündende Idee?

    Würde mich freuen,
    Carsten

  • TS3 connecten

    • Carsten8
    • 2. August 2010 um 10:47

    In der Arbeit sind vermutlich einfach nur die Ports gesperrt. Von zu Hause aus sollte es aber gehn. Es sieht aber so aus, als würdest du den falschen Port verwenden. 10025 Scheint der Port vom Server zu sein, du brauchst aber den ServerQuery Port, der i.d.R. 10011 ist.

    Möchtest du dich überhaupt mit dem Teamspeak Client zum Server verbinden oder möchtest du eine ServerQuery Verbindung aufbaun?

  • Cursor freigeben (Anti-Mausetrap)

    • Carsten8
    • 2. August 2010 um 09:49

    Stimmt aber, Modern Warfare 2 sperrt in einem laufenden Spiel die Windows Taste sowie Alt-Tab.

    Hab mal hier ein Beispiel geschrieben, du musst probieren, ob es geht:

    [autoit]

    ; HotKey Strg+I setzen
    HotKeySet("^i", "_Itunes")

    [/autoit][autoit][/autoit][autoit]

    While sleep(20)
    ; Nichts tun
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _Itunes()
    ; iTunes den Focus geben
    WinActivate("iTunes")
    EndFunc

    [/autoit]
  • Mehrzeiliger Button mit mehreren Bildern drin

    • Carsten8
    • 1. August 2010 um 22:18

    Nein, wir meinen, dass du EIN Bild generierst, in dem sich alle Bilder und Texte die auf dein Button sollen befinden. Dann hast du ein fertiges Bild, das du nurnoch als verwenden musst.

  • Mehrzeiliger Button mit mehreren Bildern drin

    • Carsten8
    • 1. August 2010 um 20:50

    Wie wärs, wenn du die Bilder einfach mit GDI+ generierst und anzeigst?

  • Bei "StringSplit" immer das letzte Array als Variable

    • Carsten8
    • 1. August 2010 um 14:12

    Z.B. so:

    [autoit]

    #include <Array.au3>
    $message = "Um mehrere Dateien auszuwählen, ist die Strg-Taste oder die Shift-Taste zu drücken."
    $var = FileOpenDialog($message, @WindowsDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
    $splitten = StringSplit($var,"\")
    $datei = $splitten[$splitten[0]]

    [/autoit]

    Edit: zu langsam :pinch:

  • AdvanceLcd - UDF für alle Logitech Produkte (G15, G19 etc.)

    • Carsten8
    • 1. August 2010 um 13:41

    Ich probiers aus Progandy, danke!

    Edit: Scheint zu funktionieren. Bau ich in die nächste Version mit ein.

    chip: du musst bei den Funktionen anstelle von str den Typ wstr verwenden.

    Edit 2: Ich schreibe jetzt die restlichen Funktionen, vielleicht wirds heut fertig :)

  • AdvanceLcd - UDF für alle Logitech Produkte (G15, G19 etc.)

    • Carsten8
    • 1. August 2010 um 10:18
    Zitat von Higggiii

    Riesengroßen Dank.


    Gerne ;)

    Zitat von chip

    Habs mal um drei Funktionen erweitert weil ich die noch brauchte. Hier damit die nicht selber reinschreiben brauchst.


    Danke dir, werd ich beim nächsten Update mit einbauen.

  • AdvanceLcd - UDF für alle Logitech Produkte (G15, G19 etc.)

    • Carsten8
    • 31. Juli 2010 um 23:00

    Hallo AutoIt.de,

    lange habe ich gesucht nach einer UDF, um Applets für meine G19 zu schreiben. Leider habe ich dazu nichts gefunden, woraufhin ich beschlossen habe, mir meine eigene UDF zu schreiben.
    Die UDF läuft mit AdvanceLcd, eine DLL um Applets für Logitech Produkte zu erstellen, da mir das normale Logitech SDK zu umständlich erscheint und ich nicht dahinter gekommen bin, wie ich die DLLs mit AutoIt verwende. Des Weiteren ist AdvanceLcd vielseitiger, das heißt, man kann damit nicht nur die G19, sondern auch die G15 und andere Geräte ansprechen.

    Nun aber zur UDF.

    Funktionen:

    Spoiler anzeigen
    Code
    LcdInitialize
    LcdDeInitialize
    LcdCreateApplet
    LcdDeleteApplet
    LcdLoadPixmap
    LcdCreatePixmap
    LcdSetTarget
    LcdClear
    LcdDrawPixmap
    LcdDeletePixmap
    LcdWaitActivation
    LcdUpdate
    LcdSetEventHandler [INSTABIL]
    LcdButtonState
    Alles anzeigen

    UDF Rev. 1:

    Spoiler anzeigen
    [autoit]

    ; Logitech G19 UDF
    ; Autor: Carsten Schneider aka Carsten8
    ; Datum: 24.07.2010
    ; Veröffentlichung: 31.07.2010

    [/autoit] [autoit][/autoit] [autoit]

    ; Diese UDF benötigt die AdvanceLcd (http://www.blitzforum.de/forum/viewtopic.php?p=362484) DLL
    ; sowie installierte Gerätetreiber. Das Copyright von AdvanceLcd besitzt ChristianK von blitzforum.de.

    [/autoit] [autoit][/autoit] [autoit]

    ; #CONSTANTS# ===================================================================================================================
    Global Const $LCD_OK = 0
    Global Const $LCD_ERROR = 1
    Global Const $LCD_ERROR_NOT_INITIALIZED = 2
    Global Const $LCD_ERROR_INVALID_PARAMETER = 3
    Global Const $LCD_ERROR_NOT_FOUND = 4

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $LCD_DEVICE_INVALID = -1
    Global Const $LCD_DEVICE_MONO = 1
    Global Const $LCD_DEVICE_COLOR = 2

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $LCD_EVENT_CONFIGURE = 1
    Global Const $LCD_EVENT_BUTTON = 2

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $LCD_BUTTON_1 = 0x0001
    Global Const $LCD_BUTTON_2 = 0x0002
    Global Const $LCD_BUTTON_3 = 0x0004
    Global Const $LCD_BUTTON_4 = 0x0008

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $LCD_BUTTON_LEFT = 0x0100
    Global Const $LCD_BUTTON_RIGHT = 0x0200
    Global Const $LCD_BUTTON_OK = 0x0400
    Global Const $LCD_BUTTON_CANCEL = 0x0800
    Global Const $LCD_BUTTON_UP = 0x1000
    Global Const $LCD_BUTTON_DOWN = 0x2000
    Global Const $LCD_BUTTON_MENU = 0x4000

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $LCD_PRIORITY_LOW = 1
    Global Const $LCD_PRIORITY_NORMAL = 2
    Global Const $LCD_PRIORITY_HIGH = 3

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $LCD_COLOR_VISIBLE = 0xFFFFFF
    Global Const $LCD_COLOR_INVISIBLE = 0

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $LCD_FONT_DEFAULT = 0
    Global Const $LCD_FONT_BOLD = 1
    Global Const $LCD_FONT_ITALIC = 2
    Global Const $LCD_FONT_UNDERLINE = 4
    ; ===============================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    ; #VARIABLEN# ===================================================================================================================
    Global $dll = 0
    Global $callback = -1
    ; ===============================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTIONEN# ==================================================================================================================
    ;LcdInitialize
    ;LcdDeInitialize
    ;LcdCreateApplet
    ;LcdDeleteApplet
    ;LcdLoadPixmap
    ;LcdCreatePixmap
    ;LcdSetTarget
    ;LcdClear
    ;LcdDrawPixmap
    ;LcdDeletePixmap
    ;LcdWaitActivation
    ;LcdUpdate
    ;LcdSetEventHandler [INSTABIL]
    ;LcdButtonState
    ; ===============================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdInitialize
    ; Beschreibung ..: Initialisiert AdvanceLcd
    ; Syntax ........: LcdInitialize([$sDLLPath = "advlcd.dll"])
    ; Parameter .....: $sDLLPath - Pfad zur advlcd.dll
    ; Rückgabewerte .: Erfolg - $LCD_OK
    ; Fehler - $LCD_ERROR
    ; Bemerkungen ...:
    ; Verwandt ......: LcdDeInitialize
    ; ===============================================================================================================================
    Func LcdInitialize($sDLLPath = "advlcd.dll")
    $dll = DllOpen($sDLLPath)
    Local $ret = DllCall($dll, "int", "LcdInitialize")
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdInitialize

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdDeInitialize
    ; Beschreibung ..: Deinitialisiert AdvanceLcd
    ; Syntax ........: LcdDeInitialize()
    ; Parameter .....:
    ; Rückgabewerte .:
    ; Bemerkungen ...: Vorher sollten alle Applets, Pixmaps etc. gelöscht werden.
    ; Verwandt ......: LcdInitialize
    ; ===============================================================================================================================
    Func LcdDeInitialize()
    If $callback <> -1 Then DllCallbackFree($callback)
    Local $ret = DllCall($dll, "int", "LcdDeInitialize")
    If @error Then Return SetError(1, @error, 0)
    DllClose($dll)
    Return $ret[0]
    EndFunc ;==>LcdDeInitialize

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdCreateApplet
    ; Beschreibung ..:
    ; Syntax ........: LcdCreateApplet($sName, [$iDevices = $LCD_DEVICE_COLOR, [$bConfigurable = 0, [$bAutostart = 0]]])
    ; Parameter .....: $sName - Der Name des Applets. Er wird später auf dem LCD und im LCD Manager angezeigt.
    ; $iDevices - Der Gerätetyp, der verwendet werden soll. Siehe Bemerkungen.
    ; $bConfigurable - Gibt an, ob der "Konfigurieren"-Button im LCD Manager anklickbar sein soll.
    ; $bAutostart - Gibt an, ob der LCD Manager das Applet automatisch starten kann.
    ; Rückgabewerte .: Erfolg - Ein Handle des Applets
    ; Bemerkungen ...: $iDevices kann entweder $LCD_DEVICE_MONO oder $LCD_DEVICE_COLOR sein. Wird beides verwendet, so muss
    ; bei späteren Aktionen das Gerät per LcdSelectDevice ausgewählt werden.
    ; Verwandt ......: LcdSelectDevice LcdDeleteApplet
    ; ===============================================================================================================================
    Func LcdCreateApplet($sName, $iDevices = $LCD_DEVICE_COLOR, $bConfigurable = 0, $bAutostart = 0)
    Local $ret = DllCall($dll, "ptr", "LcdCreateAppletA", "str", $sName, "int", $iDevices, "int", $bConfigurable, "int", $bAutostart)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdCreateApplet

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdDeleteApplet
    ; Beschreibung ..:
    ; Syntax ........: LcdDeleteApplet($hApplet)
    ; Parameter .....: $hApplet - Handle des Applets, welches gelöscht werden soll.
    ; Rückgabewerte .:
    ; Bemerkungen ...: Sollte vor LcdDeInitialize aufgerufen werden.
    ; Verwandt ......: LcdCreateApplet LcdDeInitialize
    ; ===============================================================================================================================
    Func LcdDeleteApplet($hApplet)
    Local $ret = DllCall($dll, "int", "LcdDeleteApplet", "ptr", $hApplet)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdDeleteApplet

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdLoadPixmap
    ; Beschreibung ..:
    ; Syntax ........: LcdLoadPixmap($sFile)
    ; Parameter .....: $sFile - Der Pfad zu der Bilddatei, die geladen werden soll.
    ; Rückgabewerte .: Erfolg - Das Handle der Pixmap
    ; Bemerkungen ...: Unterstützte Formate: JPG, PNG, BMP, TIFF und GIF
    ; Verwandt ......: LcdCreatePixmap LcdDeletePixmap
    ; ===============================================================================================================================
    Func LcdLoadPixmap($sFile)
    Local $ret = DllCall($dll, "ptr", "LcdLoadPixmapA", "str", $sFile)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdLoadPixmap

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdCreatePixmap
    ; Beschreibung ..: Erstellt eine neue leere Pixmap
    ; Syntax ........: LcdCreatePixmap([$iWidth = 320, [$iHeight = 240, [$iDevice = $LCD_DEVICE_COLOR]]])
    ; Parameter .....: $iWidth - Breite der Pixmap
    ; $iHeight - Höhe der Pixmap
    ; $iDevice - Typ des Geräts, für das die Pixmap erstellt werden soll.
    ; Rückgabewerte .: Erfolg - Das Handle der Pixmap
    ; Bemerkungen ...:
    ; Verwandt ......: Lcd
    ; ===============================================================================================================================
    Func LcdCreatePixmap($iWidth = 320, $iHeight = 240, $iDevice = $LCD_DEVICE_COLOR)
    Local $ret = DllCall($dll, "ptr", "LcdCreatePixmap", "int", $iWidth, "int", $iHeight, "int", $iDevice)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdCreatePixmap

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdSetTarget
    ; Beschreibung ..: Setzt das aktuelle Renderziel.
    ; Syntax ........: LcdSetTarget($hApplet, $hPixmap)
    ; Parameter .....: $hApplet - Das Handle des Applets, dessen Renderziel gesetzt werden soll.
    ; $hPixmap - Ein Handle zu einer Pixmap, welche das Renderziel sein soll. Bemerkungen beachten!
    ; Rückgabewerte .:
    ; Bemerkungen ...: $hPixmap kann nur eine Pixmap sein, die mit LcdCreatePixmap erstellt wurde.
    ; 0 verwenden, um das Renderziel zurückzusetzen.
    ; Verwandt ......: LcdCreatePixmap
    ; ===============================================================================================================================
    Func LcdSetTarget($hApplet, $hPixmap)
    Local $ret = DllCall($dll, "int", "LcdSetTarget", "ptr", $hApplet, "ptr", $hPixmap)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdSetTarget

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdClear
    ; Beschreibung ..: Leert den Buffer des LCDs.
    ; Syntax ........: LcdClear($hApplet, [$iColor = 0x000000])
    ; Parameter .....: $hApplet - Das Applet, dessen Buffer geleert werden soll.
    ; $iColor - Die Farbe, mit der der Buffer überschrieben werden soll.
    ; Rückgabewerte .:
    ; Bemerkungen ...:
    ; Verwandt ......:
    ; ===============================================================================================================================
    Func LcdClear($hApplet, $iColor = 0x000000)
    Local $ret = DllCall($dll, "int", "LcdClear", "ptr", $hApplet, "int", $iColor)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdClear

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdDrawPixmap
    ; Beschreibung ..: Zeichnet eine Pixmap in den Buffer eines Applets.
    ; Syntax ........: LcdDrawPixmap($hApplet, [$hPixmap, [$iX = 0, [$iY = 0, [$iFrame = 0]]]])
    ; Parameter .....: $hApplet - Das Applet, in dessen Buffer die Pixmap gezeichnet werden soll.
    ; $hPixmap - Die Pixmap, die gezeichnet werden soll.
    ; $iX - Die X-Koordinate, der oberen linken Ecke der Pixmap
    ; $iY - Die Y-Koordinate, der oberen linken Ecke der Pixmap
    ; $iFrame - Die Framezahl, sollte die Pixmap mit LcdLoadAnimPixmap erstellt worden sein.
    ; Rückgabewerte .:
    ; Bemerkungen ...:
    ; Verwandt ......: LcdLoadAnimPixmap
    ; ===============================================================================================================================
    Func LcdDrawPixmap($hApplet, $hPixmap, $iX = 0, $iY = 0, $iFrame = 0)
    Local $ret = DllCall($dll, "int", "LcdDrawPixmap", "ptr", $hApplet, "ptr", $hPixmap, "int", $iX, "int", $iY, "int", $iFrame)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdDrawPixmap

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdDeletePixmap
    ; Beschreibung ..: Löscht eine Pixmap
    ; Syntax ........: LcdDeletePixmap($hPixmap)
    ; Parameter .....: $hPixmap - Das Handle der Pixmap, die gelöscht werden soll.
    ; Rückgabewerte .:
    ; Bemerkungen ...: Sollte vor LcdDeInitialize aufgerufen werden.
    ; Verwandt ......: LcdCreatePixmap LcdLoadPixmap LcdDeInitialize
    ; ===============================================================================================================================
    Func LcdDeletePixmap($hPixmap)
    Local $ret = DllCall($dll, "int", "LcdDeletePixmap", "ptr", $hPixmap)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdDeletePixmap

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdWaitActivation
    ; Beschreibung ..: Wartet, bis das Applet aktiviert wird.
    ; Syntax ........: LcdWaitActivation($hApplet)
    ; Parameter .....: $hApplet - Das Handle des Applets, auf wessen Aktivierung gewartet werden soll.
    ; Rückgabewerte .:
    ; Bemerkungen ...:
    ; Verwandt ......:
    ; ===============================================================================================================================
    Func LcdWaitActivation($hApplet)
    Local $ret = DllCall($dll, "int", "LcdWaitActivation", "ptr", $hApplet)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdWaitActivation

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdUpdate
    ; Beschreibung ..: Aktualisiert das LCD und zeigt den aktuellen Buffer des Applets an.
    ; Syntax ........: LcdUpdate($hApplet, [$bSync = 0])
    ; Parameter .....: $hApplet - Das Handle des Applet, dessen Buffer angezeigt werden soll.
    ; $bSync - Gibt an, ob gewartet werden soll, bis der Buffer angezeigt wird, oder nicht.
    ; Rückgabewerte .:
    ; Bemerkungen ...: Wenn $bSync True ist, läuft das Script weiter, sobald der Inhalt des Buffers an den LCD Manger gesendet wurde.
    ; Wenn $bSync False ist, läuft das Script erst weiter, wenn der Inhalt des Buffers auf dem LCD angezeigt wird (ca. 30ms langsamer)
    ; Verwandt ......:
    ; ===============================================================================================================================
    Func LcdUpdate($hApplet, $bSync = 0)
    Local $ret = DllCall($dll, "int", "LcdUpdate", "ptr", $hApplet, "int", $bSync)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdUpdate

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdSetEventHandler
    ; Beschreibung ..: Legt eine Funktion als Eventhandler für ein Applet fest.
    ; Syntax ........: LcdSetEventHandler($hApplet, $EventHandler, [$hContext = 0])
    ; Parameter .....: $hApplet - Das Handle des Applets, dessen Eventhandler gesetzt werden soll.
    ; $EventHandler - Name der Funktion, die als Eventhandler dienen soll.
    ; $hContect -
    ; Rückgabewerte .:
    ; Bemerkungen ...: Die Funktion ist sehr instabil und kann zu Abstürzen des Scripts führen.
    ; Die Funktion muss immer folgende Parameter besitzen:
    ; _BeispielCallback($iEvent, $hContext, $iData)
    ; Verwandt ......:
    ; ===============================================================================================================================
    Func LcdSetEventHandler($hApplet, $EventHandler, $hContext = 0)
    If $callback <> -1 Then DllCallbackFree($callback)
    $callback = DllCallbackRegister($EventHandler, "int", "int;ptr;int")
    Local $ret = DllCall($dll, "int", "LcdSetEventHandler", "ptr", $hApplet, "ptr", DllCallbackGetPtr($callback), "ptr", $hContext)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdSetEventHandler

    [/autoit] [autoit][/autoit] [autoit]

    ; #FUNKTION# ====================================================================================================================
    ; Name ..........: LcdButtonState
    ; Beschreibung ..: Ermittelt den Status eines Knopfes des LCDs.
    ; Syntax ........: LcdButtonState($hApplet, $iButton)
    ; Parameter .....: $hApplet - Das Handle des Applets
    ; $iButton - Die ID des Knopfes
    ; Rückgabewerte .:
    ; Bemerkungen ...: $iButton kann, je nach Gerätetyp, eine der folgenden Variablen sein:
    ; $LCD_BUTTON_1
    ; $LCD_BUTTON_2
    ; $LCD_BUTTON_3
    ; $LCD_BUTTON_4
    ;
    ; $LCD_BUTTON_LEFT
    ; $LCD_BUTTON_RIGHT
    ; $LCD_BUTTON_OK
    ; $LCD_BUTTON_CANCEL
    ; $LCD_BUTTON_UP
    ; $LCD_BUTTON_DOWN
    ; $LCD_BUTTON_MENU
    ; Verwandt ......: LcdConfigState
    ; ===============================================================================================================================
    Func LcdButtonState($hApplet, $iButton)
    Local $ret = DllCall($dll, "int", "LcdButtonState", "ptr", $hApplet, "int", $iButton)
    If @error Then Return SetError(1, @error, 0)
    Return $ret[0]
    EndFunc ;==>LcdButtonState

    [/autoit]

    Beispiel (einfache Bildschirmlupe ohne Vergrößerung):

    Spoiler anzeigen
    [autoit]

    #include <AdvanceLCD.au3>
    #include <ScreenCapture.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ; Beim Beenden killfunc aufrufen
    OnAutoItExitRegister("killfunc")

    [/autoit] [autoit][/autoit] [autoit]

    ; AdvanceLcd initialisieren
    LcdInitialize()

    [/autoit] [autoit][/autoit] [autoit]

    ; Applet erstellen
    $hApplet = LcdCreateApplet("Bildschirm")

    [/autoit] [autoit][/autoit] [autoit]

    ; LCD als Ziel späterer DrawPixmap Befehle setzen
    LcdSetTarget($hApplet, 0)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    ; Warten bis das Applet aktiviert wird
    LcdWaitActivation($hApplet)

    [/autoit] [autoit][/autoit] [autoit]

    ; Screenshot der Umgebung der Maus erstellen. Größe optimal für das LCD, Format BMP (beides für bessere Performance)
    $aPos = MouseGetPos()
    _ScreenCapture_Capture(@TempDir & "\screenshot.bmp", $aPos[0] - 160, $aPos[1] - 120, $aPos[0] + 160, $aPos[1] + 120)

    [/autoit] [autoit][/autoit] [autoit]

    ; Bild laden
    $hPixmap = LcdLoadPixmap(@TempDir & "\screenshot.bmp")

    [/autoit] [autoit][/autoit] [autoit]

    ; LCD leeren
    LcdClear($hApplet, 0x000000)

    [/autoit] [autoit][/autoit] [autoit]

    ; Pixmap auf das LCD zeichnen
    LcdDrawPixmap($hApplet, $hPixmap)

    [/autoit] [autoit][/autoit] [autoit]

    ; Änderungen auf dem LCD anzeigen
    LcdUpdate($hApplet, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Pixmap wieder löschen
    LcdDeletePixmap($hPixmap)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func killfunc()
    ; Applet löschen
    LcdDeleteApplet($hApplet)

    [/autoit] [autoit][/autoit] [autoit]

    ; AdvanceLcd deinitialisieren
    LcdDeInitialize()
    EndFunc ;==>killfunc

    [/autoit]

    Todo:

    • Weitere Funktionen einbauen
    • ANSI Funktionen umschreiben für Unicode Unterstützung
    • Evtl. Standardwerte der Parameter der Funktionen setzen
    • Callback Bug beheben
    • Weitere Beispiele schreiben

    Download von AdvanceLcd:
    [DOWNLOAD - Klick mich]
    In dem Archiv findet ihr einen Ordner Binary. Darin befinden sich zwei weitere Ordner, x86 (32-Bit) und x64 (64-Bit). In den Ordnern befinden sich die jeweiligen DLL Dateien, die ihr braucht.

    Wichtig!
    Die ganze UDF ist noch WIP (Work-In-Progress). Das heißt, es können noch Bugs auftreten und es fehlen noch Funktionen, die ich mit der Zeit noch ergänzen werde.

    Sollten Fehler bei euch auftreten oder solltet ihr Verbesserungsvorschläge oder Kritik haben, bitte ich euch, diese hier zu posten.

    Gruß,
    Carsten8

  • Differenz zwischen 2 Tastenanschlägen berechnen so schnell gelöst *Very Nice*

    • Carsten8
    • 31. Juli 2010 um 20:40

    Wozu brauchst du sowas?

    [autoit]

    #include <Misc.au3>
    While 1
    $iPause = 1
    Do
    For $i = 7 to 254 ; Bei 7 beginnen, damit Maustasten ignoriert werden
    If _IsPressed(Hex($i, 2)) Then
    $iPause = 0
    EndIf
    Next
    sleep(20)
    Until $iPause = 0

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, "Taste gedrückt!", "Script wird fortgesetzt.")
    ; Rest des Scripts
    WEnd

    [/autoit]

    Wirst wohl die ganze Zeit prüfen müssen, ob was gedrückt wurde...

  • täglich Forumausfälle (nur bei mir?)

    • Carsten8
    • 31. Juli 2010 um 20:19

    Dann eben die DB Klasse abändern. Wenn eben der Fehler auftritt, Tabelle leeren und wenn möglich mit header() die Seite aktualisieren.

  • DllCallbackRegister: Skript stürzt ab?

    • Carsten8
    • 31. Juli 2010 um 19:49

    Vielleicht heute abend. Mal sehn :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™