Gibts einige (bessere) Möglichkeiten: [ gelöst ] Erfassungsmaske - Springen zwischen den Inputfeldern per Enter-Taste
Beiträge von nuts
-
-
Auch von mir: Frohe Weihnachten und erholsame Feiertage.

-
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Global $user
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
[/autoit] [autoit][/autoit] [autoit]
Local $button, $msgGUICreate("GUISendToDummy", 220, 200, 100, 200)
[/autoit] [autoit][/autoit] [autoit]$user = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
$button = GUICtrlCreateButton("event", 75, 170, 70, 20)
GUISetState()While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Switch $msg
case $GUI_EVENT_CLOSE
exit
Case $button
OnClick()
case $user
MsgBox(1, "", "Message an Dummy geschickt")
exit
EndSwitch
WEndEndFunc ;==>Example
[/autoit] [autoit][/autoit] [autoit]Func OnClick()
[/autoit]
GUICtrlSendToDummy($user) ; fired dummy control
EndFunc ;==>OnClick
Also per Dummy funktioniert das aber gut.
-
Bsp:
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] [autoit][/autoit] [autoit]
Local $widthCell, $msg, $iOldOpt, $1GUICreate("My GUI") ; will create a dialog box that when displayed is centered
[/autoit] [autoit][/autoit] [autoit]GUISetHelp("notepad") ; will run notepad if F1 is typed
[/autoit] [autoit][/autoit] [autoit]
$iOldOpt = Opt("GUICoordMode", 2)$widthCell = 70
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$1= GUICtrlCreateLabel("Line 1 Cell 1", 10, 30) ; first cell 70 widthGUISetState() ; will display an empty dialog box
[/autoit] [autoit][/autoit] [autoit]; Run the GUI until the dialog is closed
[/autoit]
while 1
$msg = GUIGetMsg()
Switch $msg
case $GUI_EVENT_CLOSE
exit
case $1
MsgBox(1, "", "Label geklickt")
EndSwitch
wend
$iOldOpt = Opt("GUICoordMode", $iOldOpt)
EndFunc ;==>Example -
Du musst auf _Singleton auch reagieren
[autoit]
If _Singleton($TITLE, 1) = 0 Then Exit
[/autoit] -
Warum nimmst du nicht einfach ein Edit-Control?
-
Und woher kommt die max. Auflösung beim analog angeschlossenen CRT?

-
Die Info ob die Taste gedrückt oder losgelassen wurde steckt im Parameter $wParam. Damit lässt sich gezielt (nur einmal) reagieren.
-
Wozu sollte man Variablen im Sourcepfad Fileinstall auch brauchen?
-
Ist doch ein Beispiel dabei. Eine "klassische" Anwendungsmöglichkeit ist es Klicks auf ein Control abzufangen, z.B. einen Doppelklick ins Listview (s. Bsp.)
-
Das geht schon

Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Misc.au3>
global $titel = "test"
if _Singleton($titel,1) = 0 then exitif not FileExists(@ScriptDir & "\test.ini")then
[/autoit] [autoit][/autoit] [autoit]
IniWrite(@ScriptDir & "\test.ini", "test", "state", 0)
endif
global $1 = IniRead(@ScriptDir & "\test.ini", "test", "state","")
IniWrite(@ScriptDir & "\test.ini", "test", "state", 0)OnAutoItExitRegister("_Restart")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{ESC}", "_exit")while 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndfunc _exit()
[/autoit] [autoit][/autoit] [autoit]
Exit
endfuncfunc _Restart()
[/autoit]
if $1 = 0 Then
MsgBox(1, "", "testbox")
ShellExecute(@ScriptDir & "\test.exe")
IniWrite(@ScriptDir & "\test.ini", "test", "state", 1)
EndIf
endfunc -
Kann es dann nicht vorkommen, das die exe bzw. das Script gestartet wird, obwohl es noch läuft?
Wieso? Das kann man auch mit _Singleton ausschließen. -
-
[autoit]
[/autoit][autoit][/autoit][autoit]
if not FileExists(@ScriptDir & "\test.ini")then
IniWrite(@ScriptDir & "\test.ini", "test", "state", 0)
endif
global $1 = IniRead(@ScriptDir & "\test.ini", "test", "state","")
IniWrite(@ScriptDir & "\test.ini", "test", "state", 0)OnAutoItExitRegister("_Restart")
[/autoit][autoit][/autoit][autoit]
HotKeySet("{ESC}", "_exit")while 1
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
Sleep(100)
WEndfunc _exit()
[/autoit][autoit][/autoit][autoit]
Exit
endfuncfunc _Restart()
[/autoit]
if $1 = 0 Then
MsgBox(1, "", "testbox")
ShellExecute(@ScriptDir & "\test.exe")
IniWrite(@ScriptDir & "\test.ini", "test", "state", 1)
EndIf
endfunc
Geht auch mit einem Skript.
-
Trotzdem aber daran denken die Garantie, Gewährleistung und Rücknahme von dir als Privatperson auszuschließen.
Die Garantie, Gewährleistung ist nämlich je nachdem für Zweitbesitzer ausgeschlossen und dann wärst du an der Reihe
-
Sehe ich genauso. Zwar habe ich keinen Code der es wert wäre geschützt zu werden, dennoch ist keine Datenverschlüsselung vor den Decompilierern sicher
Stellt sich nur die Frage wie sicher der Autoit-Quellcode während der Ausführung ist.
Klar die richtigen Profis lassen sich auch nicht von richtig compilierten Anwendungen aufhalten, aber trotzdem diese 2 Klick Decompilierer kann doch mittlerweile jeder Grundschüler anwenden.
Nur ist mir unklar ob man den Quellcode nicht beim Starten des Skripts nicht auch auf einfachstem Weg sichtbar machen kann. -
Schau hier mal rein: Multidimensionale Arrays anzeigen
Mit der Schreibweise stehe ich auch auf Kriegsfuß, eine Schleife wäre zur Wertzuweisung besser geeignet.
-
_Arraydisplay ist nur für 1D und 2D Arrays. Oder was klappt genau nicht?
P.S. Hier im Forum sollte eine UDF mit Treeview für mehrdimensionale Arrays zu finden sein.
-
Gute Idee und super umgesetzt

-
Steckt ja ne Menge Arbeit drin.
Allerdings ist mir unklar was du damit genau bezwecken willst. Den Umgang mit WM_Notify erleichtern?