Verwende die Variante mit GUI - erklärt sich selbst.
Beiträge von BugFix
-
-
Ich entere noch mal den Thread

Ich hab mir überlegt, wie man denn eine echte Bewertung durchführen könnte.
Meiner Meinung nach benötigt man dafür einen Benchmark-Test, um verwendete RAM-Größe, Prozessorlast und Programmlaufzeit zu messen. (Ich denke, diese 3 Kenngrößen geben den Erfolg eines Skripts am besten wieder)
Den kleinsten ermittelten Wert aus allen Skripten würde ich als Bezugsnormal auf einen Wert von 100 setzen.
Alle anderen werden dann in % von diesem Ergebnis berechnet - sind also dann z.B. 122 o.ä., auf jeden Fall größer
Im Idealfall wären also 300 Punkte zu erreichen. Dann hätte man eine echte Vergleichsgröße. Zumal diese 3 Kenngrößen sich gegenseitig beeinflussen und dadurch z.B. ein zwar größeres Skript letztendlich wieder durch bessere Performance ausgleichen könnte.Nun fehlt uns nur noch solch ein Benchmarktest.
Vielleicht hat ja schon jemand 'ne passende Idee, wie man den umsetzen könnte um unsere Skripts damit zu testen.Aber natürlich möchte ich gern wissen, ob ihr dieser Methode zustimmen würdet.
Also laßt mal eure Meinungen los
-
Ich verstehe nicht, warum da irgendeine Taste gedrückt werden soll. _IsPressed brauchst du doch überhaupt nicht.
Wenn du ein Input anklickst, schreibst du doch automatisch da drin. Und um die Eingabe zu übernehmen kannst du ja für die Inputs das Event 'InputChange' ausnutzen. Das tritt ein, wenn der Inhalt des Inputs sich verändert hat und wird überprüft bei Betätigung der Entertaste.
Bsp.:Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt("GUIOnEventMode", 1)$Form1 = GUICreate("Form1", 633, 454, 193, 115)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Input1 = GUICtrlCreateInput("Input1", 88, 96, 145, 21)
GUICtrlSetOnEvent(-1, "Input1Change")
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc Form1Close()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc Input1Change()
[/autoit]
MsgBox(0, '', 'Inhalt geändert')
EndFunc -
Hi Alina,
dazu hatte ich mal ein Skript geschrieben, dass eine Zielstruktur analog zur Ausgangsstruktur erstellt.
Schaus dir mal an: Install-Script-Generator -
Zitat
ich wollte mal fragen ob es möglich ist, dass die selben _IsPressed die für $Input1 gelten
auch für $Input2 geltend zu machen?
Der Funktion _IsPressed() ist es sowas von egal, in welches Input du deine Eingaben machst
Mit der Funktion wird eine Eingabe eines bestimmten Zeichens abgewartet. Wo dies erfolgt spielt keine Rolle. -
Das Programm ist schon korrekt.
Wenn Orange und/oder Gelb nicht gefunden werden ist der Fehlerwert=1 . -
Also ein Schlüssel sieht z.B. so aus:
"01000000000000000100000000000000020000000500000000000000000000007800000032320302020000000200000000003A772EF207002C0100003C00000000000000B4000000000064646464927C"
Stell dir das vor wie einen Satz. "01000000000000000" könnte dann das erste Teilelement(Wort) sein, "1000000000000000" wäre das zweite. usw.
Um das festzustellen, muß man halt immer nur einen Parameter verändern und den neuen Schlüssel unter den alten legen und dann schauen wo die Änderungen stattgefunden hanen. Sind sie immer an bzw. ab derselben Position, kann man so den Bereich der Kette, der für einen bestimmten Parameter zuständig ist eingrenzen. Einfach mal probieren.
Variante 2 halte ich eigentlich aufgrund der Länge des Wertes für wenig wahrscheinlich. Eher eine Kombination aus Variante 1 und 2:
Ein bestimmter Teil des Wertes verkörpert einen Parameter. Die Werte die der Parameter annehmen kann werden durch Bitoperationen verändert. Schau mal in das Bit-Tutorial in meiner Signatur. Das erklärt, wie Bitoperationen ausgeführt werden.Übrigens kannst du ja auch mal prüfen, ob sogar sinnvoller Text in dem Wert enthalten ist (glaub ich eher nicht). Nützlich dafür: Funktion _RegReadBinary()
Also nicht verzagen
und viel Spaß noch. -
Ich hab bisher keine Beschreibung dazu gefunden.
Ich halte zwei Varianten für möglich:
1. Die Binärzahl besteht aus mehreren verketteten Teilbinären, wobei jedes einzelne Binär einen Parameter im Powerschema reflektiert
2. Die Binärzahl ist ein Bitsummenbildung aus den Hexwerten, die jeder Parameter annehmen kannUm das festzustellen, müßtest du mehrfach Änderungen an einem einzigen Parameter ausführen und vergleichen, welche Änderungen im Registrywert stattgefunden haben.
Die Einstellungen des Powerschemas benötigen keinen Neustart um aktiviert zu werden. Das merkst du, wenn du von Hand in den Energieoptionen Änderungen vornimmst. Diese sind sofort und ohne Neustart wirksam. -
Oscar
Diese Variante hatte ich auch noch fertig, aber 3 Ergebnisse posten war mir zu fett
Sie unterscheidet sich aber trotzdem von deiner, weil ich nicht die Zahl selbst ermittle, sondern deren Speicherplatz.
Ich stells mal rein, vielleicht gefällts dir
Spoiler anzeigen
[autoit]Global $str = '', $ar[49] = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49]
[/autoit]
For $i = 1 To 7
$x = Random(0, UBound($ar)-1, 1)
If $i < 7 Then
$str &= $i & '. = ' & $ar[$x] & @LF
Else
MsgBox(0, 'Lottozahlen', $str & 'Zusatzzahl = ' & $ar[$x])
EndIf
$ar[$x] = $ar[UBound($ar)-1]
ReDim $ar[UBound($ar)-1]
Next -
Oh man, Kartoffeln auf den Augen oder erste Anzeichen von Demenz

Item - na klar ist da ein Unterschied. Aber schön, dass wir drüber gesprochen haben
-
Hi,
beim Wühlen in den neuen ListView-Funktionen ist mir etwas aufgefallen.
In der Hilfe wird folgende WM_NOTIFY Funktion verwendet:Spoiler anzeigen
[autoit]Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
[/autoit]
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; A column was clicked
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
_DebugPrint("$LVN_COLUMNCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
; No return value
Case $LVN_KEYDOWN ; A key has been pressed
Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
_DebugPrint("$LVN_KEYDOWN" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->VKey:" & @TAB & DllStructGetData($tInfo, "VKey") & @LF & _
"-->Flags:" & @TAB & DllStructGetData($tInfo, "Flags"))
; No return value
Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_CLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
_ListView_Click()
; No return value
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
; No return value
Case $NM_KILLFOCUS ; The control has lost the input focus
_DebugPrint("$NM_KILLFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; No return value
Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_RCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
;Return 1 ; not to allow the default processing
Return 0 ; allow the default processing
Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
_DebugPrint("$NM_RDBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode & @LF & _
"-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
"-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
"-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
"-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
"-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
"-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
"-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
"-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
"-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
; No return value
Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
_DebugPrint("$NM_RETURN" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; No return value
Case $NM_SETFOCUS ; The control has received the input focus
_DebugPrint("$NM_SETFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
"-->IDFrom:" & @TAB & $iIDFrom & @LF & _
"-->Code:" & @TAB & $iCode)
; No return value
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Besonders interessant die Zeile: If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)Denn in der Hilfe steht explizit zur Funktion GUICtrlGetHandle():
ZitatRemarks
! These controls are not supported: Dummy, Graphic, Object, ListViewItem and TabItem !
ListViewItems and TabItems are managed through indexes.
To get the index of these items use DllCall() and DllStructCreate().
OK, in der Funktion wird ja dann auch mit DllStructCreate() gearbeitet, aber erst nachdem (falls kein Handle existiert) die Funktion GUICtrlGetHandle($hListView) ausgeführt wird.
Das find ich etwas verwirrend und widersprüchlich. Oder übersehe ich da was? -
Hi,
das wird ebenfalls im Schlüssel: "HKEY_CURRENT_USER\Control Panel\PowerCfg\PowerPolicies\aktives_Schema" eingestellt.Tipp:
Setze an einem PC alle Einstellungen für das Powermanagment, wie du es willst. Dann lies in der Registry den Binäwert des aktiven Schemas aus.
In dieserm Wert sind jetzt alle Einstellungen hinterlegt. Du kannst ihn also in das Schema in anderen PC's schreiben. Ich empfehle aber, wie bei dem vorab eingestellten Bsp., die Voreinstellungen nicht zu ändern, sondern ein neues Schema anzulegen und zu aktivieren. -
Hast du dein $array_inputs auch als Global deklariert, damit von der Funktion erreichbar ist?
-
Oft hilft ja doch das Lesen der Hilfe
[autoit]
PixelSearch gibt ein 2-Elemente Array zurück mit der ersten gefundenen Position im Bereich (Array[0]=x, Array[1]=y). Wird nichts gefunden gibts einen Fehler.
Also ist die Abfrage: If PixelSearch() Then sinnlos.
Hier mußt du abfragen:$ret = PixelSearch(...)
[/autoit]
If @error Then
; nichts gefunden
Else
; gefunden an Position $ret[0] / $ret[1]
EndIf -
Dann führe das doch in Abhängigkeit zurAnzahl aus:
[autoit]$start = TimerInit()
[/autoit]
$n = 0
While
If $n < 2 And TimerDiff($start) >= 5000 Then
Send('2')
$start = TimerInit()
$n += 1
EndIf
Sleep(100)
; anderer Code
WEnd -
Hier nun das Ergebnis.
Ich habe die Lösungen nach Größe sortiert eingestellt.
Die geringste Größe und dazu noch eine sehr interessante Lösung präsentiert Oscar. Da kann man nur sagen:
Die wenigsten Zeilen hat Xenobiologist benötigt.Für mich etwas überraschend, dass es keine absolut identischen Lösungswege gab. Womit wieder mal bewiesen ist: Viele Wege führen nach Rom.

Oscar 7 Zeilen 300 Byte
[autoit]
[/autoit]
Global $z, $t=' 01020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849'
For $i=0 TO 6
$r = Random(1,49-$i,1)*2
$z &= StringMid($t,$r,2) & StringLeft(' | ', 2+($i=5)*4)
$t = StringMid($t,1,$r-1)& StringMid($t,$r+2)
Next
MsgBox(0,'',$z)progandy 10 Zeilen 342 Byte
[autoit]
[/autoit]
Dim $s
For $i=0 To 6
Do
$u=1
$t=Random(1,49,1)
If StringInStr($s,"|"&$t&"|") Then $u=0
Until $u
$s&=(($i==6)&"|"&$t&"|")
Next
MsgBox(0,"Lotto-Zahlen","6 aus 49: "&Stringregexpreplace(Stringregexpreplace($s,"(\|?False\|)"," "),"(\|True.*)","")&@CRLF&"Superzahl: "&Stringregexpreplace(StringTrimRight($s,1),"(.*True\|)",""))GtaSpider 16 Zeilen 343 Byte
[autoit]
[/autoit]
MsgBox(0, '', _Lotto())
Func _Lotto()
Local $a[49],$sR,$sT,$rnd
For $i=1 To 49
$a[$i-1]=$i
Next
Do
$i+=Assign("rnd",Random(0,48))
$sR&=$a[$rnd]&","
$a[$rnd]=''
Until $i>55
While $sT=''
$sT=$a[Random(0,48)]
WEnd
Return StringTrimRight($sR,1)&"|"&$sT
EndFuncBugFix 12 Zeilen 350 Byte
[autoit]
[/autoit]
Global $a[7] = [0,0,0,0,0,0,0]
Do
$x = Random(1,49,1)
For $i = 0 To UBound($a) -1
If $a[$i] > 0 And $a[$i] = $x Then ExitLoop
If $a[$i] = 0 Then
$a[$i] = $x
ExitLoop
EndIf
Next
Until $a[UBound($a)-1] <> 0
MsgBox(0, 'Lottozahlen', $a[0] & ' ' & $a[1] & ' ' & $a[2] & ' ' & $a[3] & ' ' & $a[4] & ' ' & $a[5] & ' Z: ' & $a[6])Xenobiologist 6 Zeilen 374 Byte
[autoit]
[/autoit]
Global $z = ' ', $n = ''
Do
$n = Random(1, 49, 1)
If Not StringRegExp($z, '(?<= )' & $n & '(?= )') Then $z &= $n & ' '
Until StringInStr($z, ' ', 0,
MsgBox(64, 'Lotto (Mega)', 'Lottoziehung ' & @TAB & ':' & StringTrimRight($z, 3) & @CRLF & 'Zusatzzahl ' & @TAB & ': ' & StringRight($z, 3) & @CRLF & 'Superzahl' & @TAB & @TAB & ': ' & Random(1, 9, 1) & @CRLF)McPoldy 9 Zeilen 495 Byte
[autoit]
[/autoit]
Dim $result
For $i = 1 to 7
Do
$zahl = "," & Random(1,49,1) & ","
Until StringInStr($result,$zahl) = 0
$result &= StringRight($zahl,stringlen($zahl)-1)
Next
$result = StringSplit($result,",")
MsgBox(64,"6 aus 49 plus Zusatzzahl","Zahl 1: " & $result[1] & @CRLF & "Zahl 2: " & $result[2] & @CRLF & "Zahl 3: " & $result[3] & @CRLF & "Zahl 4: " & $result[4] & @CRLF & "Zahl 5: " & $result[5] & @CRLF & "Zahl 6: " & $result[6] & @CRLF & "Zusatzzahl: " & $result[7])BugFix 2. 11 Zeilen 707 Byte
[autoit]
[/autoit]
Global $str = '', $n = 0, $sum = 0, $a[49] = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656]
Do
$r = Random(0,48,1)
If Not BitAND($sum,$a[$r]) Then
$sum = BitOR($sum, $a[$r])
If $n < 6 Then $str &= $r+1 & ' '
If $n = 6 Then $str &= ' Z: ' & $r+1
$n += 1
EndIf
Until $n = 7
MsgBox(0, 'Lottozahlen',$str)PhilRip * Zeilen und Größe wg. Include nicht feststellbar
[autoit]
[/autoit]
#include <array.au3>
Dim $lotto[7]
For $i=0 to 5
$ran=Random(1,49,1)
If _ArraySearch($lotto, $ran)=1 Then
$i-=1
Else
$lotto[$i]=$ran
EndIf
Next
$lotto[6]=Random(1,9,1) ; Superzahl
_ArrayDisplay($lotto) -
- davon merkt man ja selber nix 
-
So, ich stelle heute abend alles rein. Sooo viel wars dann doch nicht. Schaut nachher selber

-
*grad-total-auf-dem-Schlauch-steh*
Was willst du denn da übersetzen? Das einzige nicht original deutsche Wort ist "posten". -
Sollte vllt. vor jedem Post sichtbar sein
UserTools.txtEdit: So, nun könnt ihr es auch sehen
