Raupi, als meinem Vor-Geburtstager (
) wünsche ich dir Alles Gute. Feiere schön ![]()
Beiträge von BugFix
-
-
Nee, das sehe ich anders. Da bin ich selbstkritisch genug, um zuzugeben, dass andere Skripte besser sind, als meines.
Das hast du dann bei mir falsch verstanden. Die Smileys sollten eigentlich eine Ironie darstellen. Was eigentlich auch mit meinem 2.ten Satz klar sein sollte.
Ich hatte mich übrigens bewußt gegen Marquee entschieden, weil ich eine deutlichere Abgrenzung einzelner Nachrichten haben wollte.
-
[autoit]
If $txt1 Or $title1 = "" Then
[/autoit]<== falsch
[autoit]If $txt1 = "" Or $title1 = "" Then
[/autoit] -
Teilnehmer dürfen aber natürlich auch für sich selbst stimmen!
Wenn einer der Teilnehmer abstimmt, wählt er doch logischerweise das 2. und 3. platzierte - das eigene Werk steht doch außer Frage
Mal ernsthaft: Die eine Stimme macht ja wohl den Kohl nicht fett, da finde ich es sportlicher das zu honorieren, was einem bei den anderen gefällt. -
Der Beitrag von eukalyptus hat mich sofort an ObjectDock (von Stardock.com) erinnert. Eine Anwendung, die ich nicht mehr missen möchte.

-
Letztlich bleiben wir immer wieder an einem Punkt hängen: Welcher wilde Affe sollte mich beissen, damit ich auf die Idee komme eine EXE zu posten. :wacko:
Ich habe anfangs viel aus den Skripten anderer gelernt und hoffe, dass meine Skripte wiederum für andere lehrreich sind. Community heißt geben und nehmen.
-
Flexibler ist es, wenn man ein Bytearray zum Speichern verwendet.
Um nicht immer nachrechnen zu müssen, welcher Speicherplatz wo liegt, hab ich dazu mal ein paar Funktionen erstellt: "2D_Dll_Struct" -
Im Forum war die Frage nach "2D" Strukturen aufgetaucht.
Natürlich gibt es keine 2D-Strukturen, die Daten liegen (ebenso wie bei Arrays) hintereinander im Speicher. Man kann aber den Zugriff so gestalten, dass ein Zeilen/Spalten -Effekt wirksam ist. Inwiefern das jetzt sinnvoll zu nutzen ist, muß jeder selbst entscheiden.
Ich habe mal Funktionen für "2D"-Strukturen mit Bsp. erstellt.Dll_Struct_2D
[autoit]; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _CreateByteArray2D
; Description ...: Erstellt die Struktur Bytearray im Zugriffs-Stil eines Array-2D
; Syntax.........: _CreateByteArray2D($sType, $iRows, $iCols)
; Parameters ....: $sType String zu speichernder Datentyp
; $iRows Anzahl Zeilen
; $iCols Anzahl Spalten
; Return values .: Bytearray-Struktur
; Author ........: BugFix ( [email='bugfix@autoit.de'][/email] )
; Remarks .......: Zusätzlich zu den Daten werden Größe und Name des verwendeten Datentyps und die Größe der Dimensionen
; in der Struktur hinterlegt
; ===============================================================================================================================
Func _CreateByteArray2D($sType, $iRows, $iCols)
Local $iSize = DllStructGetSize(DllStructCreate($sType, 1))
Local $aByte = DllStructCreate('byte[' & $iSize *$iRows *$iCols & "];int size;wchar type[128];int ubound[2]")
DllStructSetData($aByte, 'size', $iSize)
DllStructSetData($aByte, 'type', $sType)
DllStructSetData($aByte, 'ubound', $iRows, 1)
DllStructSetData($aByte, 'ubound', $iCols, 2)
Return $aByte
EndFunc ;==>_CreateByteArray2D; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _SetValToByteArray2D
; Description ...: Überträgt einen Wert an eine definierte Position im Bytearray
; Syntax.........: _SetValToByteArray2D($aByte, $vVal, $iRow, $iCol)
; Parameters ....: $aByte die Struktur Bytearray
; $vVal der einzutragende Wert
; $iRow Index Zeilenposition (0-basiert)
; $iCol Index Spaltenposition (0-basiert)
; Author ........: BugFix ( [email='bugfix@autoit.de'][/email] )
; Remarks .......: Die Plausibilitätsprüfung der einzutragenden Werte bzgl. des verwendeten Datentyps ist vorher sicherzustellen
; ===============================================================================================================================
Func _SetValToByteArray2D(ByRef $aByte, $vVal, $iRow, $iCol)
Local $sType = DllStructGetData($aByte, 'type')
Local $iSize = DllStructGetData($aByte, 'size')
Local $Ub2 = _GetUBoundFromByteArray2D($aByte, 2)
Local $iShiftPtr = ($iRow * $Ub2 * $iSize) + ($iCol * $iSize)
Local $tmpStruct = DllStructCreate($sType, DllStructGetPtr($aByte) +$iShiftPtr)
DllStructSetData($tmpStruct, 1, $vVal)
EndFunc ;==>_SetValToByteArray2D; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _GetValFromByteArray2D
; Description ...: Liest einen Wert aus einer definierten Position im Bytearray
; Syntax.........: _GetValFromByteArray2D($aByte, $iRow, $iCol)
; Parameters ....: $aByte die Struktur Bytearray
; $iRow Index Zeilenposition (0-basiert)
; $iCol Index Spaltenposition (0-basiert)
; Return values .: Der gelesene Wert
; Author ........: BugFix ( [email='bugfix@autoit.de'][/email] )
; ===============================================================================================================================
Func _GetValFromByteArray2D(ByRef $aByte, $iRow, $iCol)
Local $sType = DllStructGetData($aByte, 'type')
Local $iSize = DllStructGetData($aByte, 'size')
Local $Ub2 = _GetUBoundFromByteArray2D($aByte, 2)
Local $iShiftPtr = ($iRow * $Ub2 * $iSize) + ($iCol * $iSize)
Local $tmpStruct = DllStructCreate($sType, DllStructGetPtr($aByte) +$iShiftPtr)
Return DllStructGetData($tmpStruct, 1)
EndFunc ;==>_GetValFromByteArray2D; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _GetUBoundFromByteArray2D
; Description ...: Gibt die Größe der verwendeten Dimensionen zurück
; Syntax.........: _GetUBoundFromByteArray2D($aByte, $iDim = 1)
; Parameters ....: $aByte die Struktur Bytearray
; $iDim die Dimension, deren Größe erfragt wird, Standard = 1
; Return values .: Größe der Dimension (Anzahl Elemente)
; Author ........: BugFix ( [email='bugfix@autoit.de'][/email] )
; ===============================================================================================================================
Func _GetUBoundFromByteArray2D(ByRef $aByte, $iDim = 1)
If $iDim < 1 Then $iDim = 1
If $iDim > 2 Then $iDim = 2
Return DllStructGetData($aByte, 'ubound', $iDim)
EndFunc ;==>_GetUBoundFromByteArray2D; #FUNCTION# ====================================================================================================================
[/autoit]
; Name...........: _ByteArray2DToArray
; Description ...: Überträgt die Daten aus dem Bytearray in ein klassisches 2D-Array
; Syntax.........: _ByteArray2DToArray($aByte)
; Parameters ....: $aByte die Struktur Bytearray
; Return values .: Ein klassisches 2D-Array mit allen Werten aus der Struktur
; Author ........: BugFix ( [email='bugfix@autoit.de'][/email] )
; ===============================================================================================================================
Func _ByteArray2DToArray(ByRef $aByte)
Local $iRows = _GetUBoundFromByteArray2D($aByte)
Local $iCols = _GetUBoundFromByteArray2D($aByte, 2)
Local $a[$iRows][$iCols]
For $i = 0 To $iRows -1
For $j = 0 To $iCols -1
$a[$i][$j] = _GetValFromByteArray2D($aByte, $i, $j)
Next
Next
Return $a
EndFunc ;==>_ByteArray2DToArrayBsp.
[autoit]#include 'Dll_Struct_2D.au3'
[/autoit] [autoit][/autoit] [autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]; === 2d-Array / "2D-Struktur" (Integer Daten)
[/autoit] [autoit][/autoit] [autoit]
Local $a[10][5]
Local $2D_Struct = _CreateByteArray2D('int', 10, 5)For $i = 0 To 9
[/autoit] [autoit][/autoit] [autoit]
For $j = 0 To 4
$a[$i][$j] = ($i+1) *10 *($j+1)
_SetValToByteArray2D($2D_Struct, ($i+1) *10 *($j+1), $i, $j)
Next
Next
_ArrayDisplay($a, 'Original 2D Array')$a1 = _ByteArray2DToArray($2D_Struct)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($a1, 'aus Struktur erstelltes 2D Array'); === Daten aus Struktur gelesen ==> Ausgabe Console
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
For $i = 0 To 9
For $j = 0 To 4
ConsoleWrite(_GetValFromByteArray2D($2D_Struct, $i, $j) & ' ')
Next
ConsoleWrite(@CRLF)
Next; === "2D-Struktur" (Datentyp Zeichen)
[/autoit]
Local $2D_Struct_str = _CreateByteArray2D('char[128]', 5, 2)
Local $n = 65
For $i = 0 To 4
_SetValToByteArray2D($2D_Struct_str, Chr($n), $i, 0)
_SetValToByteArray2D($2D_Struct_str, Chr($n+32), $i, 1)
$n += 1
Next
$a2 = _ByteArray2DToArray($2D_Struct_str)
_ArrayDisplay($a2, 'String-Strukt als Array') -
NEIN, das geht mir jetzt einfach zu weit Alle und Jeden unter generellen Botverdacht zu stellen.
Die Frage verstößt NICHT gegen die Regeln. Wir können vermuten, dass es ein Bot werden soll.
ABER:
Ich verlange, dass für Alle gleichermassen die Unschuldsvermutung gilt. Falls die Vermutung besteht, es könnte ein Bot werden, braucht hier niemand zu antworten.Ich denke, meine Position zum Thema Bot ist unstrittig. Wir haben hier aber eine Community, die mit Leben erfüllt sein soll und nicht mit Scharmützeln. Es gilt gründlich abzuwägen, wo liegt ein Regelverstoß vor und wo nicht. Wehret den Anfängen ist völlig in Ordnung, aber nicht derart, dass wir uns das Leben schwer machen.
[Thread wieder offen]
-
Der TS hat den Thread keineswegs gestartet um Dll-Injection zu betreiben. Diese (von uns abzulehnende) Lösungsvariante wurde von Eaelendil ins Spiel gebracht.
Insofern ist es absolut unangemessen den TS mit Sperrung seines Threads zu bestrafen, weil ein anderer User die Forenregeln mißachtet. Und selbst dieser Verstoß gegen die Forenregeln ist grenzwertig, da nicht ausdrücklich in den Regeln hinterlegt, sondern nur dem dort angeführten Geiste nach.
Ich finde es begrüßenswert, dass ihr mit Argusaugen auf die Einhaltung unserer Regeln achtet. Jedoch ist manchmal etwas mehr Feingefühl von Nöten.
In diesem Fall gebe ich den Thread wieder frei unter der eindeutigen Maßgabe, dass Thema Dll-Injection nicht mehr zu verfolgen. -
Mein Lieblingsspiel aus der Zeit (besitze jetzt auch eine auf Windows laufende Version): Blockout (3D-Tetris)

Edit: Hier mal noch der Link zur aktuellen Version
-
Dazu verwendest du einfach den Else-Zweig (wenn in beiden Fällen wahr/unwahr reagiert werden soll) oder negierst die Abfrage:
[autoit]
[/autoit][autoit][/autoit][autoit]
If $input1 = "Alex" then
msgbox (0,"TEST","Alex wahr")
else
msgbox (0,"TEST","Alex unwahr")
endif; oder nur unwahr abfragen
[/autoit]
If $input1 <> "Alex" then msgbox (0,"TEST","Alex unwahr") -
BugFix , tklausl: sorry kann es sein dass ihr den 2. Teil der Frage nicht gelesen habt?
Doch, gelesen - aber anders interpretiert. Ich dachte, er möchte eine nur logische Gruppe ohne sichtbare Abgrenzung durch das Group-Ctrl. Denn dass jemand dieses Ctrl nicht kennt hielt ich irgendwie nicht für möglich.

-
Dafür gibt es den Style $WS_GROUP.Edit: Damit wird nur das Fokussieren mit den Pfeiltasten geregelt.
Echte Groups gibt es nur für Radiobutton.
Für andere Ctrl fass deren ID in einem Array zusammen, dann kannst du dieses durchlaufen und z.B. gleiche Styles setzen. -
Edit:
[autoit]
Diese Variante würde ich bevorzugen (ich mag Hooks ;))#include <WinAPI.au3>
[/autoit][autoit][/autoit][autoit]
#include <WindowsConstants.au3>
OnAutoItExitRegister('OnAutoItExit')
HotKeySet('{ESC}', '_Exit')Global Const $HC_ACTION = 0
[/autoit][autoit][/autoit][autoit]
Global $hStub_MouseProc = DllCallbackRegister("_MouseProc", "long", "int;wparam;lparam")
Global $hmod = _WinAPI_GetModuleHandle(0)
Global $hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_MouseProc), $hmod)While True
[/autoit][autoit][/autoit][autoit]
Sleep(50)
WEndFunc _MouseProc($nCode, $wParam, $lParam)
[/autoit][autoit][/autoit][autoit]
Local $event, $info, $iX, $iY, $mouseData = "", $wheelData = ""
$info = DllStructCreate("int X;int Y;dword mouseData;dword flags;dword time;ulong_ptr dwExtraInfo", $lParam)
$iX = DllStructGetData($info, 1)
$iY = DllStructGetData($info, 2)
$mouseData = DllStructGetData($info, 3)
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
If $nCode = $HC_ACTION Then
Switch $wParam
Case $WM_MBUTTONDOWN
_MButton(1)
Case $WM_MBUTTONUP
_MButton(0)
EndSwitch
EndIf
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFuncFunc _MButton($iDown)
[/autoit][autoit][/autoit][autoit]
If $iDown Then
ToolTip(@HOUR & ':' & @MIN & ':' & @SEC) ; Anzeige Tooltip solange Middle gedrückt
Else
ToolTip('')
EndIf
EndFuncFunc _Exit()
[/autoit][autoit][/autoit][autoit]
Exit
EndFuncFunc OnAutoItExit()
[/autoit]
_WinAPI_UnhookWindowsHookEx($hHook)
DllCallbackFree($hStub_MouseProc)
EndFunc ;==>OnAutoItExit -
Das geht mit der Button-UDF:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiButton.au3>
#include <WindowsConstants.au3>
Local $switch = FalseGUICreate('')
[/autoit] [autoit][/autoit] [autoit]
$b1 = GUICtrlCreateButton("Button",10,10)
GUICtrlSetBkColor($b1,0x059122)
GUISetState()While True
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $b1
$switch = Not $switch
If $switch Then
_GUICtrlButton_SetStyle($b1, $GUI_SS_DEFAULT_GUI)
Else
GUICtrlSetBkColor($b1,0x059122)
EndIf
EndSwitch
WEnd -
Da wären wir wieder bei dem Thema: Sollte man bei Checkboxen und Radions nicht eigentlich BitAnd nehmen?
Das bedarf eigentlich keiner Diskussion:
Zitat von Hilfe AutoItBei Checkboxen und Radiobuttons können mehrere Statuse als $GUI_FOCUS und $GUI_CHECKED zurückgegeben werden. So ist z. B. BitAnd(GUICtrlRead($Item),$GUI_CHECKED) zu verwenden um zu sehen ob ein Control markiert ist.
Wenn der auszulesende Wert eine Bitsumme enthalten kann, muß ich zwingend mit BitAnd selektieren. Alles andere ist Lotterie.
-
ich schraub auch bestimmt an meinem Laptop
. Wenn du weiß wie es geht, mach pls mal ein Tutorial drüber.Sag an, was für ein Typ es ist. Wenn ich es schon in den Fingern hatte, kann ich dir sagen wie es geht. - Wobei das Verfahren grundsätzlich gleich ist.
- Bodenschrauben entfernen
- Bodenplatte aushebeln, ist mit Plastiknasen eingerastet - das ist das eigentliche Geheimnis, diese zu finden
-
Ist abhängig von der verwendeten Tastatur.
Guckst du: [ offen ] Wo sind ö/ä/ü bei _IsPressed? -
Hi Xeno,
wünsche dir auch Alles Gute zu deinem Ehrentag. Reib dich nicht bei der Arbeit auf. Herzinfarkt muss nicht sein.