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.
Beiträge von Carsten8
-
-
Einen dezimalen Input zu verwenden wird in der Tat kompliziert, aber nicht unmöglich.
[autoit]
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:$a = False
[/autoit][autoit][/autoit][autoit]
$b = False$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). -
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).
-
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 -
allso mit der G15 Läufts schonmal Nicht
Schade
Bekomme bei Zeile 59 den Errormuss ichn download aktiv haben oder nicht?
Welchen Error denn?
-
$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.
-
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
-
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? -
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}"
[/autoit]
$hHID = _WinAPI_CreateFile($sPath, 2, 2)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
Alles anzeigen// 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;
Hat jemand von euch eine zündende Idee?
Würde mich freuen,
Carsten -
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?
-
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
[/autoit][autoit][/autoit][autoit]
HotKeySet("^i", "_Itunes")While sleep(20)
[/autoit][autoit][/autoit][autoit]
; Nichts tun
WEndFunc _Itunes()
[/autoit]
; iTunes den Focus geben
WinActivate("iTunes")
EndFunc -
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.
-
Wie wärs, wenn du die Bilder einfach mit GDI+ generierst und anzeigst?
-
Z.B. so:
[autoit]#include <Array.au3>
[/autoit]
$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]]Edit: zu langsam :pinch:
-
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
-
Riesengroßen Dank.
GerneHabs 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. -
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
UDF Rev. 1:
Spoiler anzeigen
[autoit]; Logitech G19 UDF
[/autoit] [autoit][/autoit] [autoit]
; Autor: Carsten Schneider aka Carsten8
; Datum: 24.07.2010
; Veröffentlichung: 31.07.2010; Diese UDF benötigt die AdvanceLcd (http://www.blitzforum.de/forum/viewtopic.php?p=362484) DLL
[/autoit] [autoit][/autoit] [autoit]
; sowie installierte Gerätetreiber. Das Copyright von AdvanceLcd besitzt ChristianK von blitzforum.de.; #CONSTANTS# ===================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
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 = 4Global Const $LCD_DEVICE_INVALID = -1
[/autoit] [autoit][/autoit] [autoit]
Global Const $LCD_DEVICE_MONO = 1
Global Const $LCD_DEVICE_COLOR = 2Global Const $LCD_EVENT_CONFIGURE = 1
[/autoit] [autoit][/autoit] [autoit]
Global Const $LCD_EVENT_BUTTON = 2Global Const $LCD_BUTTON_1 = 0x0001
[/autoit] [autoit][/autoit] [autoit]
Global Const $LCD_BUTTON_2 = 0x0002
Global Const $LCD_BUTTON_3 = 0x0004
Global Const $LCD_BUTTON_4 = 0x0008Global Const $LCD_BUTTON_LEFT = 0x0100
[/autoit] [autoit][/autoit] [autoit]
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 = 0x4000Global Const $LCD_PRIORITY_LOW = 1
[/autoit] [autoit][/autoit] [autoit]
Global Const $LCD_PRIORITY_NORMAL = 2
Global Const $LCD_PRIORITY_HIGH = 3Global Const $LCD_COLOR_VISIBLE = 0xFFFFFF
[/autoit] [autoit][/autoit] [autoit]
Global Const $LCD_COLOR_INVISIBLE = 0Global Const $LCD_FONT_DEFAULT = 0
[/autoit] [autoit][/autoit] [autoit]
Global Const $LCD_FONT_BOLD = 1
Global Const $LCD_FONT_ITALIC = 2
Global Const $LCD_FONT_UNDERLINE = 4
; ===============================================================================================================================; #VARIABLEN# ===================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
Global $dll = 0
Global $callback = -1
; ===============================================================================================================================; #FUNKTIONEN# ==================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
;LcdInitialize
;LcdDeInitialize
;LcdCreateApplet
;LcdDeleteApplet
;LcdLoadPixmap
;LcdCreatePixmap
;LcdSetTarget
;LcdClear
;LcdDrawPixmap
;LcdDeletePixmap
;LcdWaitActivation
;LcdUpdate
;LcdSetEventHandler [INSTABIL]
;LcdButtonState
; ===============================================================================================================================; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; 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; #FUNKTION# ====================================================================================================================
[/autoit]
; 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 ;==>LcdButtonStateBeispiel (einfache Bildschirmlupe ohne Vergrößerung):
Spoiler anzeigen
[autoit]#include <AdvanceLCD.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <ScreenCapture.au3>; Beim Beenden killfunc aufrufen
[/autoit] [autoit][/autoit] [autoit]
OnAutoItExitRegister("killfunc"); AdvanceLcd initialisieren
[/autoit] [autoit][/autoit] [autoit]
LcdInitialize(); Applet erstellen
[/autoit] [autoit][/autoit] [autoit]
$hApplet = LcdCreateApplet("Bildschirm"); LCD als Ziel späterer DrawPixmap Befehle setzen
[/autoit] [autoit][/autoit] [autoit]
LcdSetTarget($hApplet, 0)While 1
[/autoit] [autoit][/autoit] [autoit]
; Warten bis das Applet aktiviert wird
LcdWaitActivation($hApplet); Screenshot der Umgebung der Maus erstellen. Größe optimal für das LCD, Format BMP (beides für bessere Performance)
[/autoit] [autoit][/autoit] [autoit]
$aPos = MouseGetPos()
_ScreenCapture_Capture(@TempDir & "\screenshot.bmp", $aPos[0] - 160, $aPos[1] - 120, $aPos[0] + 160, $aPos[1] + 120); Bild laden
[/autoit] [autoit][/autoit] [autoit]
$hPixmap = LcdLoadPixmap(@TempDir & "\screenshot.bmp"); LCD leeren
[/autoit] [autoit][/autoit] [autoit]
LcdClear($hApplet, 0x000000); Pixmap auf das LCD zeichnen
[/autoit] [autoit][/autoit] [autoit]
LcdDrawPixmap($hApplet, $hPixmap); Änderungen auf dem LCD anzeigen
[/autoit] [autoit][/autoit] [autoit]
LcdUpdate($hApplet, 0); Pixmap wieder löschen
[/autoit] [autoit][/autoit] [autoit]
LcdDeletePixmap($hPixmap)
WEndFunc killfunc()
[/autoit] [autoit][/autoit] [autoit]
; Applet löschen
LcdDeleteApplet($hApplet); AdvanceLcd deinitialisieren
[/autoit]
LcdDeInitialize()
EndFunc ;==>killfuncTodo:
- 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 -
Wozu brauchst du sowas?
[autoit]#include <Misc.au3>
[/autoit][autoit][/autoit][autoit]
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 = 0MsgBox(0, "Taste gedrückt!", "Script wird fortgesetzt.")
[/autoit]
; Rest des Scripts
WEndWirst wohl die ganze Zeit prüfen müssen, ob was gedrückt wurde...
-
Dann eben die DB Klasse abändern. Wenn eben der Fehler auftritt, Tabelle leeren und wenn möglich mit header() die Seite aktualisieren.
-
Vielleicht heute abend. Mal sehn