Warum überhaupt mit Tastenkombinationen?
"ControlClick", "ControlCommand" und hier wohl wichtig "ControlListView" sind doch viel universeller und sicherer gegen "Fehlfunktion".
Beiträge von Oscar
-
-
So:
[autoit]
[/autoit]
$hGui = GUICreate('test', 400, 256)
For $i = 0 To 255
GUICtrlCreateLabel('', 0, $i, 400, 1)
$sColor = '0x' & Hex($i, 2) & Hex($i, 2) & Hex($i, 2)
GUICtrlSetBkColor(-1, $sColor)
Next
GUISetState()
Do
Until GUIGetMsg() = -3 -
Wenn Du auch mehrere zulassen willst, dann musst Du das so ändern:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <GUIConstantsEx.au3>Global $gaDropFiles[1], $iDropItem = -1
[/autoit] [autoit][/autoit] [autoit]
Global $WM_DROPFILES = 0x233GUICreate(" My GUI acceptfile", 320, 120, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45, -1, 0x00000018); WS_EX_ACCEPTFILES
[/autoit] [autoit][/autoit] [autoit]
$file = GUICtrlCreateButton("test", 10, 5, 300, 40)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUISetState()
GUIRegisterMsg($WM_DROPFILES, 'WM_DROPFILES_FUNC')
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $GUI_EVENT_DROPPED
_ArrayDisplay($gaDropFiles)
EndSwitch
WEndFunc WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
[/autoit]
Local $nSize, $pFileName
Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 255)
For $i = 0 To $nAmt[0] - 1
$nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
$nSize = $nSize[0] + 1
$pFileName = DllStructCreate('wchar[' & $nSize & ']')
DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
ReDim $gaDropFiles[$i + 1]
$gaDropFiles[$i] = DllStructGetData($pFileName, 1)
$pFileName = 0
Next
EndFunc ;==>WM_DROPFILES_FUNCTrotzdem finde ich das ziehen von Dateien auf einen Button "komisch". Eigentlich zieht man Dateien doch dorthin, wo sie dann angezeigt werden sollen und nicht auf irgendeinen Button.

-
Danke für die "Blumen"!

Wundert euch aber nicht, wenn euch die Kinder haushoch überlegen sind.
Als ich das Spiel damals mit meiner Nichte gespielt hatte (noch mit richtigen Karten), hab ich meistens verloren.
Vor kurzem hatte ich eine Doku zu dem Thema im Fernsehen gesehen, in der dargestellt wurde, dass Kinder ein viel besseres Kurzzeitgedächtnis besitzen und solche Spiele viel besser spielen können, als die Erwachsenen.
Also, wie gesagt, nicht wundern, wenn die Ergebnisse der Kinder viel besser sind, als eure eigenen.Wenn ihr wollt, könnt ihr ja mal die besten Ergebnisse hier posten (Screenshot). Würde mich mal interessieren...
-
Version 1.2 ( 02.08.11 )
Neu! Jetzt mit 8 verschiedenen Kartensets zur Auswahl.
Spielprinzip:
Es gibt 18 Kartenpaare, die verdeckt ausgelegt sind. Nun muss man immer 2 Karten "umdrehen". Sind beide gleich, so verschwinden diese. Wenn nicht, werden sie wieder auf die Rückseite gedreht.Spielende:
Wenn alle 18 Kartenpaare verschwunden sind.Screenshots:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. P.S.: Zum "schummeln" steht die Tastenkombination [Alt] + [code=c] zur Verfügung.

-
Du verwendest das Array "$VarAnwendung" doppelt. Erst weist Du ihm die Pfade zu Deinen Programmen zu und dann die Control-ID der Label. Du brauchst für die Label ein extra Array.
-
Nunja, da es in den Nutzungsbedingungen keine Ausnahme für die private Nutzung gibt, wird wohl auch das verboten sein.
Auf jeden Fall verstößt der Thread gegen die Forenregeln ("Automatisierung von Webseiten oder Tools, die das in ihren AGBs verbieten").[Thread closed]
-
Du solltest Dir mal die Nutzungsbedingungen durchlesen:
Zitat
Urheberrecht
Sämtliche Rechte an der im Rahmen dieses Online-Angebots entwickelten Software, den zugrunde liegenden Datenbanken und sonstigen Inhalten liegen bei der LEO GmbH, soweit nicht ausdrücklich ein anderer Urheber oder Rechtsinhaber genannt wird. Jedwede Verwendung der Software, Daten oder sonstigen Inhalte außer in der Form, wie sie unter leo.org angeboten und ermöglicht wird, ist nicht erlaubt. Es ist insbesondere nicht gestattet, jedwede Art von Inhalten per Script oder auf andere Weise automatisiert abzufragen. -
Ich weiss ja nicht, was es für einen Sinn hat, eine Datei gerade auf einen Button zu ziehen, aber wenn Du unbedingt willst:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit]
Local $file
GUICreate(" My GUI input acceptfile", 320, 120, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45, -1, 0x00000018); WS_EX_ACCEPTFILES
$file = GUICtrlCreateButton("test", 10, 5, 300, 40)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUISetState()
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $GUI_EVENT_DROPPED
MsgBox(4096, "drag drop file", @GUI_DRAGFILE)
EndSwitch
WEnd
EndFunc ;==>Example -
Schau Dir in der Hilfe mal das Beispielscript zu "GUICtrlCreateInput" an. Dort ist das beschrieben.
-
Dann muss Dein Script halt in einer Schleife testen, ob das jeweilige Programm (Fenster) gerade aktiv ist, und wenn ja, dann den entsprechenden Hotkey aktivieren.
Stichwörter:
- While...WEnd
- If...Then oder bei mehreren Programmen Switch...EndSwitch
- WinGetState -
Einige User hier haben einen (in sich) integrierten Obfuscator. Deren Code ist bereits im Klartext schwer lesbar.
SCNR -
Ich verstehe das Problem nicht...
Mit meinem Script sind die Hotkeys doch auf Dein Programm beschränkt!?Beschreib mal genau, was Du vor hast...
-
Hundertprozentige ("nicht zu knacken") Code-Sicherheit gibt es nicht!
Ein Obfuscator verhindert außerdem keineswegs das decompilieren, sondern er verschleiert lediglich den Sourcecode. Das heißt, der Obfuscator erschwert das Lesen.
Schau Dir am besten mal an, wie Dein Script aussieht, nachdem der Obfuscator ihn bearbeitet hat. IMHO arbeitet der Original-Obfuscator mittlerweile recht gut. -
Versuch's mal so:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hGui = GUICreate('Hotkey-Test', 400, 300)
$hLabel = GUICtrlCreateLabel('Hotkey aktiv', 20, 20, 160, 20)
GUISetState()
GUIRegisterMsg($WM_ACTIVATE, 'WM_ACTIVATE')
HotKeySet('!q', '_Test')Do
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = -3Func WM_ACTIVATE($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If $wParam Then
HotKeySet('!q', '_Test')
Else
HotKeySet('!q')
EndIf
Return $GUI_RUNDEFMSG
EndFuncFunc _Test()
[/autoit]
MsgBox(0, 0, 'Test')
EndFunc -
Zuerst die Datei vom Server downloaden, dann die eigene IP hinzufügen und zum Schluss wieder uploaden.
-
WinTitleMatchMode "richtig" setzen:
[autoit]
[/autoit]
Opt('WinTitleMatchMode', 2)
WinActivate('Mozilla Firefox') -
Ich passe ihm das Script bereits per PN an. Er hatte mir eine komplette Datei geschickt.
Das meiste ist, denke ich, bereits gelöst (warte noch auf eine Antwort von ihm). -
Schau Dir mal in der Hilfe die Funktion "_GUICtrlIpAddress_Get" an. Damit kannst Du einige Codezeilen einsparen, Fehlerbehandlung inkl. und auch das "weiterspringen" nach 3 Zahlen gibt's "gratis" dazu.

-
'(.+)\..+'
(.+) die Klammern generieren eine Backreferenz für den Ersetz-String. Der Punkt "." steht für ein beliebiges Zeichen. Das Plus "+" dahinter besagt min. ein Zeichen, ansonsten beliebig oft.
\. da der Punkt bei RegExp eine besondere Bedeutung hat (beliebiges Zeichen), muss man den Punkt maskieren, wenn man nach ihm suchen will. Das maskieren geschieht mit dem Backslash.
.+ steht wieder für ein oder mehrere, beliebige Zeichen.Der erste Teil findet also alle Zeichen bis zum letzten Punkt im String.