Dann mach nach jeder folgenden Codezeile eine Msgbox rein. ![]()
Beiträge von nuts
-
-
Hehe ja der Pfad zu deiner .ini muss natürlich stimmen.

-
Spoiler anzeigen
[autoit]$Zufall = Random(1,3,1)
[/autoit]
$Frage1 = IniRead("C:\Dokumente und Einstellungen\Charlie\Desktop\Fragen\" & $Zufall & ".ini", "Frage","Frage", "ng")
So müsste es gehen. -
Vielleicht dauert das auch nur sehr lange?
_Reg() wird ja erst aufgerufen wenn alle angepingt wurden (_Pingall() )? -
Dann "springt" die Funktion auch an. Nur das Ergebnis ist wohl anders als erwartet.
Bau einfach in jeder Abzweigung eine msgbox (mit eindeutiger Bezeichnung) ein, somit lässt sich schnell herausfinden wo du in der Funktion gelandet bist. -
Am besten du machst einen Thread auf und postest mal dein umgebautes Listview Skript.
-
Ist eigentlich kein Problem fürs Listviewdatenbank-Beispiel.
[autoit]
Hilft dir_StringAddThousandsSep
[/autoit]?
Ansonsten müsste man das wohl selbst nachbauen. -
Aha jetzt kommt Licht ins Dunkel.

In Zeile 32 & 33 wird dann das Doppelwort getrennt. Die ersten 16 Bits sind das Lowword und die letzten das Highword.
Naja Zeile 32 ist noch unklar
aber das muss ich morgen nochmal genauer untersuchen. -
Suche mal nach Oscars Listviewdatenbank Beispiel. Ist super für das grundlegende Verständnis.
-
Super, danke!
Zum besseren Verständnis, sonst wirds bei der nächsten Abwandlung wieder nichts.
Was passiert in Zeile 32 & 33? Dabei wird die abgefeuerte Message in die richtige Form gebracht - nur nach welcher Vorgabe?
Die verwendbaren Messages EN_KILLFOCUS usw. muss man sich dann fürs entsprechende Control ergoogeln (bzw. man schaut sich die includes an)? -
Oder einfach ein Listview mit verschiedenen Spalten?
z.B. Produkt|Einkaufspreis|Nebenkosten|Verkaufspreis -
Hey,
hab ein Problem

In einer Eingabemaske, bestehend aus mehreren Input's, soll der Inhalt geprüft werden (Beispiel: Input2 darf nur Zahlen enthalten oder ähnliches).
Am sinnvollsten wäre es (denke ich mal
) sobald der Fokus vom Input genommen wird gleich den Inhalt zu prüfen.Laut googel ist die Windows Message WM_Command dafür geeignet, es wird auch eine Message ausgegeben sobald der Fokus geändert wird!
Leider werden ich aus der Dokumentation nicht schlau, was genau ist die Message für einen Fokus wechsel? Wie kann ich diese Message den einzelen Controls zuweisen?Beispiel:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <EditConstants.au3>
#include <StructureConstants.au3>
#include <WinAPI.au3>$sHeader = "Input1|Input2|Input3"
[/autoit] [autoit][/autoit] [autoit]
Global $hGui = GUICreate("", 400, 400, -1, -1)
Global $aHeader = StringSplit($sHeader, '|') ; Überschriften-Array
Global $aNew[$aHeader[0]] ; Array für die Input-IDs
Global $aInputWidth[$aHeader[0]] = [100, 100, 100] ; hier die Länge (in Pixel) der Inputfelder eintragen
Global $xPos = 20
For $i = 1 To $aHeader[0]
GUICtrlCreateLabel($aHeader[$i], $xPos + 2,200, 110, 20) ; Überschriften-Label erstellen
GUICtrlSetFont(-1, 8, 400, 0, 'Verdana') ; Schriftgröße und -art der Überschriften festlegen
$aNew[$i - 1] = GUICtrlCreateInput("", $xPos, 220, $aInputWidth[$i - 1], 20, Default, $WS_EX_STATICEDGE) ; Eingabefelder erstellen
GUICtrlSetFont(-1, 10, 600, 0, 'Verdana') ; Schriftgröße und -art der Eingabefelder festlegen
$xPos += $aInputWidth[$i - 1] + 5
NextGUISetState(@SW_SHOW, $hGui)
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_Command ,"WM_COMMAND")While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter ModusSwitch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen
[/autoit] [autoit][/autoit] [autoit]#Region Schließen
[/autoit] [autoit][/autoit] [autoit]
Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
Case $hGui ; User will das Hauptfenster schließen
exitEndSwitch
[/autoit] [autoit][/autoit] [autoit]#EndRegion Schließen
[/autoit] [autoit][/autoit] [autoit]
EndSwitchWEnd
[/autoit] [autoit][/autoit] [autoit]Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
MsgBox(1, "", $iwParam)
EndFunc ;==>WM_COMMAND;jedes Input soll, sobald es den Fokus verliert mit einer anderen Funktion überprüft werden.
[/autoit]
Func _Checkinput1()
;
Endfunc
Func _Checkinput2()
;
Endfunc
Func _Checkinput3()
;
EndfuncWäre super wenn mir dazu auch jemand erklären könnte wo man selbst nachlesen kann wie die verschiedenen Messagecodes zu behandeln sind.
Gruß nuts
-
Was spricht denn gegen GUICtrlCreateListViewItem?
Irgendwie ist das mit dem Beispiel zur UDF blöd (ist ja auch im Prinzip schon ein Beispiel).
Wenn ich alles bis auf das Färben der Zeilen rauslösche ists auch nicht viel verständlicher.
Vielleicht postest du dein Skript und wir versuchen die UDF einzubauen? -
Reicht dir ein Beispiel mit der UDF von Bugfix?
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#Include <Array.au3>
#include <FontConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>#region - required declarations for coloring and font
[/autoit] [autoit][/autoit] [autoit]
Global $hFont, $defColLV = 0x000000, $defBkColLV = 0xFFFFFF
; Font long = $nHeight, $nWidth[, $nEscape = 0[, $nOrientn = 0[, $fnWeight = $FW_NORMAL[,
; $bItalic = False[, $bUnderline = False[, $bStrikeout = False[, $nCharset = $DEFAULT_CHARSET[,
; $nOutputPrec = $OUT_DEFAULT_PRECIS[, $nClipPrec = $CLIP_DEFAULT_PRECIS[, $nQuality = $DEFAULT_QUALITY[,
; $nPitch = 0[, $szFace = 'Arial']]]]]]]]]]]])]
; zur Unterscheidung:
; $nHeight mit vorangestelltem '-' bei Font long !!
; Font short = $nHeight, $fnWeight, $szFaceGlobal $aSubItemSet[1][5] = [[-1]] ; [$i][$iItem, $iSubItem, $iBkCol, $iCol, $sFont]
[/autoit] [autoit][/autoit] [autoit]
;~ wenn [0][0] = -1
;~ $aSubItemSet[0][1] = Zeilen abwechselnd, -2 Spalten abwechselnd, -3 Einzelzeile, -4 Einzelspalte
;~ $aSubItemSet[0][2] = ungerade Zeile/Spalte Bk-Color oder Bk-Color Einzelzeile/-spalte
;~ $aSubItemSet[0][3] = gerade Zeile/Spalte Bk-Color oder Text-Color Einzelzeile/-spalte
;~ $aSubItemSet[0][4] = Zeile od. Spalte (bei [0][1]= -3 / -4)
#endregionGlobal $setIndex, $setSubIndex
[/autoit] [autoit][/autoit] [autoit]$GUI = GUICreate("Listview Custom Draw", 400, 440)
[/autoit] [autoit][/autoit] [autoit]
$cListView = GUICtrlCreateListView("", 2, 2, 394, 268, -1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
$hListView = GUICtrlGetHandle($cListView)
_GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
_GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
_GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)
For $i = 1 To 30
_GUICtrlListView_AddItem($hListView, "Row" & $i & ": Col 1", $i-1)
For $j = 1 To 2
_GUICtrlListView_AddSubItem ($hListView, $i-1, "Row" & $i & ": Col " & $j+1, $j)
Next
Next
GUICtrlCreateLabel('Item', 2, 278, 50, 17)
GUICtrlCreateLabel('or Row', 2, 290, 50, 17)
$inItem = GUICtrlCreateInput('10', 50, 280, 25, 20)
GUICtrlCreateLabel('SubItem', 86, 278, 45, 17)
GUICtrlCreateLabel('or Column', 86, 290, 50, 17)
$inSubItem = GUICtrlCreateInput('1', 145, 280, 25, 20)
GUICtrlCreateLabel('( 0-Index )', 185, 283, 50, 17)
$btSet = GUICtrlCreateButton('Set', 260, 280, 50, 20)
$btOff = GUICtrlCreateButton('Off', 340, 280, 50, 20)
GUICtrlCreateLabel('Bk-Color', 2, 308, 40, 17)
GUICtrlCreateLabel('or odd', 2, 320, 40, 17)
$inBkCol = GUICtrlCreateInput('0x3DF8FF', 50, 310, 60, 20)
GUICtrlCreateLabel('Color', 130, 308, 40, 17)
GUICtrlCreateLabel('or even', 130, 320, 40, 17)
$inCol = GUICtrlCreateInput('0xFF0000', 170, 310, 60, 20)
GUICtrlCreateLabel('Font', 2, 343, 40, 17)
$inFont = GUICtrlCreateInput('14,700,Courier New', 50, 340, 180, 20)
GUICtrlCreateGroup(' Spalten od. Zeilen', 240, 315, 150, 120)
$rRows = GUICtrlCreateRadio('Zeilen wechselnd', 245, 330, 130)
GUICtrlSetState(-1, $GUI_CHECKED)
$rCols = GUICtrlCreateRadio('Spalten wechselnd', 245, 350, 130)
$rOneRow = GUICtrlCreateRadio('Einzelzeile', 245, 370, 130)
$rOneCol = GUICtrlCreateRadio('Einzelspalte', 245, 390, 130)
$btSet2 = GUICtrlCreateButton('Set', 250, 412, 50, 18)
$btOff2 = GUICtrlCreateButton('Off', 330, 412, 50, 18)
GUICtrlCreateGroup('', -99, -99, 1, 1)
$lbActiv = GUICtrlCreateLabel('Zeilen-/ Spaltenmodus aktiv', 40, 415, 200)
GUICtrlSetFont(-1, 10, 400, -1, 'Comic Sans MS')
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetState(-1, $GUI_HIDE)GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
[/autoit] [autoit][/autoit] [autoit]
GUISetState()While True
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Switch $msg
Case -3
ExitLoop
Case $btSet
$setIndex = GUICtrlRead($inItem)
$setSubIndex = GUICtrlRead($inSubItem)
If ($setIndex <> '' And $setSubIndex <> '') Then _
_SubItemColSet($setIndex, $setSubIndex, GUICtrlRead($inBkCol), GUICtrlRead($inCol), GUICtrlRead($inFont))
Case $btOff
$setIndex = GUICtrlRead($inItem)
$setSubIndex = GUICtrlRead($inSubItem)
If ($setIndex <> '' And $setSubIndex <> '') Then _
_SubItemColOff($setIndex, $setSubIndex)
Case $btSet2
If BitAND(GUICtrlRead($rRows), $GUI_CHECKED) Then
_RowsSetCol(GUICtrlRead($inBkCol), GUICtrlRead($inCol))
ElseIf BitAND(GUICtrlRead($rCols), $GUI_CHECKED) Then
_ColumnsSetCol(GUICtrlRead($inBkCol), GUICtrlRead($inCol))
ElseIf BitAND(GUICtrlRead($rOneRow), $GUI_CHECKED) Then
_OneRowSetCol(GUICtrlRead($inItem), GUICtrlRead($inBkCol), GUICtrlRead($inCol)) ;die brauch ich
Else
_OneColumnSetCol(GUICtrlRead($inSubItem), GUICtrlRead($inBkCol), GUICtrlRead($inCol))
EndIf
Case $btOff2
_ColRowOff()
EndSwitch
WEnd
_WinAPI_DeleteObject($hFont)
Exit#region - functions for setting color and font
[/autoit] [autoit][/autoit] [autoit]
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR
$tNMHDR = DllStructCreate($tagNMHDR, $lParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hListView
Switch $iCode
Case $NM_CUSTOMDRAW
If Not _GUICtrlListView_GetViewDetails($hWndFrom) Then Return $GUI_RUNDEFMSG
Local $tCustDraw = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)
Local $iDrawStage, $iItem, $iSubitem, $hDC, $tRect
$iDrawStage = DllStructGetData($tCustDraw, 'dwDrawStage')
Switch $iDrawStage
Case $CDDS_ITEMPREPAINT
Return $CDRF_NOTIFYSUBITEMDRAW
Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM)
$iItem = DllStructGetData($tCustDraw, 'dwItemSpec')
$iSubitem = DllStructGetData($tCustDraw, 'iSubItem')
_SetItemCol($hDC, $tCustDraw, $iItem, $iSubitem)
Return $CDRF_NEWFONT
EndSwitch
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFYFunc _SetItemCol(ByRef $hDC, ByRef $tCustDraw, $iItem, $iSubitem)
[/autoit] [autoit][/autoit] [autoit]
If $aSubItemSet[0][0] = -1 Then
If $aSubItemSet[0][1] < 0 Then
Switch $aSubItemSet[0][1]
Case -1 ; Zeilen abwechselnd färben
If Mod($iItem, 2) Then ; ungerade
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($aSubItemSet[0][2]))
Else
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($aSubItemSet[0][3]))
EndIf
Case -2 ; Spalten abwechselnd färben
If Mod($iSubItem, 2) Then ; ungerade
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($aSubItemSet[0][2]))
Else
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($aSubItemSet[0][3]))
EndIf
Case -3 ; einzelne Zeile färben
If $iItem = $aSubItemSet[0][4] Then
DllStructSetData($tCustDraw, 'clrText', RGB2BGR($aSubItemSet[0][3]))
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($aSubItemSet[0][2]))
Else
DllStructSetData($tCustDraw, 'clrText', RGB2BGR($defColLV))
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($defBkColLV))
EndIf
Case -4 ; einzelne Spalte färben
If $iSubItem = $aSubItemSet[0][4] Then
DllStructSetData($tCustDraw, 'clrText', RGB2BGR($aSubItemSet[0][3]))
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($aSubItemSet[0][2]))
Else
DllStructSetData($tCustDraw, 'clrText', RGB2BGR($defColLV))
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($defBkColLV))
EndIf
Case Else
Return
EndSwitch
$hDC = DllStructGetData($tCustDraw, 'hdc')
$hFont = _WinAPI_CreateFont(14,0,0,0,$FW_NORMAL,False,False,False,$DEFAULT_CHARSET,$OUT_DEFAULT_PRECIS, _
$CLIP_DEFAULT_PRECIS,$DEFAULT_QUALITY,0,'Arial')
_WinAPI_SelectObject($hDC, $hFont)
EndIf
Else
Local $indx, $aIndex = _ArrayFindAll($aSubItemSet, $iItem)
If @error Then Return
For $i = 0 To UBound($aIndex) -1
If $aSubItemSet[$aIndex[$i]][1] = $iSubitem Then
$indx = $aIndex[$i]
ExitLoop
EndIf
Next
Local $aDefFont[14] = [14,0,0,0,$FW_NORMAL,False,False,False, _
$DEFAULT_CHARSET,$OUT_DEFAULT_PRECIS,$CLIP_DEFAULT_PRECIS,$DEFAULT_QUALITY,0,'Arial']
Local $splitFont = StringSplit($aSubItemSet[$indx][4], ',')
If StringLeft($splitFont[1], 1) <> '-' Then ; alternativer FontString?
$aDefFont[0] = $splitFont[1]
$aDefFont[4] = $splitFont[2]
$aDefFont[13] = $splitFont[3]
Else
For $i = 1 To UBound($splitFont) -1
If $i = 1 Then
$aDefFont[0] = StringTrimLeft($splitFont[1], 1)
Else
$aDefFont[$i-1] = $splitFont[$i]
EndIf
Next
EndIf
If ($aSubItemSet[$indx][0] = $iItem) And ($aSubItemSet[$indx][1] = $iSubitem) Then
$hDC = DllStructGetData($tCustDraw, 'hdc')
DllStructSetData($tCustDraw, 'clrText', RGB2BGR($aSubItemSet[$indx][3]))
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($aSubItemSet[$indx][2]))
$hFont = _WinAPI_CreateFont($aDefFont[0],$aDefFont[1],$aDefFont[2],$aDefFont[3],$aDefFont[4],$aDefFont[5],$aDefFont[6], _
$aDefFont[7],$aDefFont[8],$aDefFont[9],$aDefFont[10],$aDefFont[11],$aDefFont[12],$aDefFont[13])
_WinAPI_SelectObject($hDC, $hFont)
Else
$hDC = DllStructGetData($tCustDraw, 'hdc')
DllStructSetData($tCustDraw, 'clrText', RGB2BGR($defColLV))
DllStructSetData($tCustDraw, 'clrTextBk', RGB2BGR($defBkColLV))
$hFont = _WinAPI_CreateFont(14,0,0,0,$FW_NORMAL,False,False,False,$DEFAULT_CHARSET,$OUT_DEFAULT_PRECIS, _
$CLIP_DEFAULT_PRECIS,$DEFAULT_QUALITY,0,'Arial')
_WinAPI_SelectObject($hDC, $hFont)
EndIf
EndIf
EndFunc ;==>_SetItemColFunc RGB2BGR($iColor)
[/autoit] [autoit][/autoit] [autoit]
Local $sH = Hex($iColor,6)
Return '0x' & StringRight($sH, 2) & StringMid($sH,3,2) & StringLeft($sH, 2)
EndFuncFunc _SubItemColSet($iItem, $iSubItem, $iBkCol=-1, $iCol=-1, $sFont='-14,0,0,0,400,False,False,False,1,0,0,0,0,Arial')
[/autoit] [autoit][/autoit] [autoit]
Local $Bk, $Col
If $iBkCol = -1 Then $iBkCol = $defBkColLV
If $iCol = -1 Then $iCol = $defColLV
If $aSubItemSet[0][0] <> -1 Then ReDim $aSubItemSet[UBound($aSubItemSet)+1][5]
$aSubItemSet[UBound($aSubItemSet)-1][0] = $iItem
$aSubItemSet[UBound($aSubItemSet)-1][1] = $iSubItem
$aSubItemSet[UBound($aSubItemSet)-1][2] = $iBkCol
$aSubItemSet[UBound($aSubItemSet)-1][3] = $iCol
$aSubItemSet[UBound($aSubItemSet)-1][4] = $sFont
_WinAPI_InvalidateRect($hListView)
EndFunc ;==>_SubItemColSetFunc _SubItemColOff($iItem, $iSubItem)
[/autoit] [autoit][/autoit] [autoit]
Local $indx, $aIndex = _ArrayFindAll($aSubItemSet, $iItem)
If @error Then Return
For $i = 0 To UBound($aIndex) -1
If $aSubItemSet[$aIndex[$i]][1] = $iSubitem Then
$indx = $aIndex[$i]
ExitLoop
EndIf
Next
If UBound($aSubItemSet) > 1 Then
_ArrayDelete($aSubItemSet, $indx)
Else
$aSubItemSet[0][0] = -1
$aSubItemSet[0][1] = 0
$aSubItemSet[0][2] = 0
$aSubItemSet[0][3] = 0
$aSubItemSet[0][4] = 0
EndIf
_WinAPI_InvalidateRect($hListView)
EndFunc ;==>_SubItemColOffFunc _OneColumnSetCol($iIndex, $iBkCol=-1, $iCol=-1)
[/autoit] [autoit][/autoit] [autoit]
If $iBkCol = -1 Then $iBkCol = $defBkColLV
If $iCol = -1 Then $iCol = $defColLV
$aSubItemSet[0][0] = -1
$aSubItemSet[0][1] = -4
$aSubItemSet[0][2] = $iBkCol
$aSubItemSet[0][3] = $iCol
$aSubItemSet[0][4] = $iIndex
_WinAPI_InvalidateRect($hListView)
EndFuncFunc _OneRowSetCol($iIndex, $iBkCol=-1, $iCol=-1) ;die brauch ich
[/autoit] [autoit][/autoit] [autoit]
If $iBkCol = -1 Then $iBkCol = $defBkColLV
If $iCol = -1 Then $iCol = $defColLV
$aSubItemSet[0][0] = -1
$aSubItemSet[0][1] = -3
$aSubItemSet[0][2] = $iBkCol
$aSubItemSet[0][3] = $iCol
$aSubItemSet[0][4] = $iIndex
_WinAPI_InvalidateRect($hListView)
EndFuncFunc _ColumnsSetCol($iOddCol=-1, $iEvenCol=-1)
[/autoit] [autoit][/autoit] [autoit]
If $iOddCol = -1 Then $iOddCol = $defBkColLV
If $iEvenCol = -1 Then $iEvenCol = $defColLV
$aSubItemSet[0][0] = -1
$aSubItemSet[0][1] = -2
$aSubItemSet[0][2] = $iOddCol
$aSubItemSet[0][3] = $iEvenCol
_WinAPI_InvalidateRect($hListView)
EndFuncFunc _RowsSetCol($iOddCol=-1, $iEvenCol=-1)
[/autoit] [autoit][/autoit] [autoit]
If $iOddCol = -1 Then $iOddCol = $defBkColLV
If $iEvenCol = -1 Then $iEvenCol = $defColLV
$aSubItemSet[0][0] = -1
$aSubItemSet[0][1] = -1
$aSubItemSet[0][2] = $iOddCol
$aSubItemSet[0][3] = $iEvenCol
_WinAPI_InvalidateRect($hListView)
EndFuncFunc _ColRowOff()
[/autoit]
$aSubItemSet[0][0] = -1
$aSubItemSet[0][1] = 0
$aSubItemSet[0][2] = 0
$aSubItemSet[0][3] = 0
$aSubItemSet[0][4] = 0
_WinAPI_InvalidateRect($hListView)
EndFunc
#endregion
Diese hier meinst du oder? Vielleicht könnten wir das Problem noch etwas eingrenzen? -
In Zeile 7 wird ja auch nur "is alive" abgefragt.
Nach diesem Beispiel können aber auch die anderen Meldungen abgefangen werden. -
Funktioniert bei mir, liegt vielleicht an der Pfadangabe der Run Funktion?
-
Ist echt cool.
Hab die _Show() Funktion etwas angepasst:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Func _show()
Local $ID = @GUI_CtrlId
For $i = 0 To UBound($aChild) -1
If ($aLbl[$i] <> $ID) And (WinGetState($aChild[$i]) > 5) Then
$closehWnd = WinGetHandle($aChild[$i])
_hide()
EndIf
Next
For $i = 0 To UBound($aChild) -1
If ($aLbl[$i] = $ID) And (WinGetState($aChild[$i]) > 5) Then
$closehWnd = WinGetHandle($aChild[$i])
Return _hide()
EndIf
Next
For $i = 0 To UBound($aLbl) -1
If $aLbl[$i] = $ID Then _slideIn(WinGetHandle($aChild[$i]))
NextEndFunc
[/autoit] -
[autoit]
AdlibEnable
[/autoit]lässt sich je nachdem verwenden.
Habs leider immernoch nicht verstanden.
-
Mehrere Sachen gleichzeitig zu machen ist mit Autoit eigentlich nicht möglich.
Mit AdlibEnable lässt sich vielleicht aber etwas vergleichbares erreichen? Sorry hab das Problem noch nicht verstanden, das Skript wird einfach Zeile für Zeile ausgeführt.Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Sound.au3>
WinWaitActive ("Unbenannt - Editor")
Local $sleepy = Sleep (10000) ;hier schläft das skript
While 1 ;hier gehts in eine endlosschleife
_testfunc1() ;funktion1 wird aufgerufen
_testfunc2() ;nachdem funktion1 beendet ist wird funktion2 ausgerufen
Sleep(100)
WEnd
; die erste func
Func _testfunc1()
$1=1
$2=1
$3=1
$test=1
$test2=1
$test3=0
If $1 =$test AND ($2 = $test2 or $3 = $test3) then
Send ("Ich bin nicht da")
Sleep(10000) ; jetzt schläft es wieder
EndIf
EndFunc ;erst jetzt geht es wieder in die while wend schleife ud somit in funktion2Func _testfunc2()
[/autoit]
$1=1
$2=1
$3=1
$test=1
$test2=1
$test3=0
If $1 =$test AND ($2 = $test2 or $3 = $test3) then
Send ("doch bist du")
Sleep(5000) ; hier soll es aber weiterlaufen auch wenn oben 10sekunden sleep vorhanden ist
EndIf
EndFunc ;zurück zur while wend schleife -
[autoit]Alles anzeigen
[/autoit]
#include <Sound.au3>
WinWaitActive ("Unbenannt - Editor")
Local $sleepy = Sleep (10000) ; ???
While 1
_testfunc()
_testfunc2()
Sleep(100)
WEnd
Func _testfunc2()
$1=1
$2=1
$3=1
$test=1
$test2=1
$test3=0
If $1 =$test AND ($2 = $test2 or $3 = $test3) then
Send ("Test men")
EndIf
Func _testfunc()
While Hex(PixelGetColor(242,97),6) = "9CD2DF"
$sound = _SoundOpen("bla.wav")
_SoundPlay($sound)
While _SoundStatus($sound) = "playing"
sleep($sleepy) ;Was soll das?
;Wieviele Sekunden soll das Skript an dieser Stelle pausieren?
WEnd
WEnd
EndFunc