[autoit]
_ArrayToString
[/autoit]Müsste dir helfen.
_ArrayToString
[/autoit]Müsste dir helfen.
Das ist mit den Codezeilen schwierig zu sagen.
Auf jeden Fall erscheint es mir ziemlich unnötig den Text des ganzen Items in ein Array zu laden und anschließend nur den Wert eines Subitems zu verwenden.
Dafür gibt es: _GUICtrlListView_GetItemText
#include <Array.au3>
$fFile = "\\server\share\order1\dummy.txt"
$4_array = StringSplit($fFile, '', 1)
[/autoit][autoit][/autoit][autoit]_ArrayDisplay($4_array)
[/autoit]Reicht das als Erklärung?
edit \ MsgBox(0,"",$4_array[0]) zeigt bei mir wie erwartet 31 ![]()
$SS_NOTIFY reicht doch
s. Hilfe zu GUICtrlCreateLabel (forced style = $SS_NOTIFY & $SS_LEFT)
Und beim Doppelklick dann die Variante (die erste) von Fireflyer nur ohne den einfachen abzufangen.
Ist die Funktion _Onlinecheck überhaupt nach 2 Sekunden fertig? Nee oder? Die Ping Funktion ist doch relativ träge.
Ein Klick aufs Label funktioniert doch schon per default, möglicherweise liegt das am Zusammenspiel mit der anderen Funktion
So funktioniert der Klick:
#include <GUIConstantsex.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ###
$Form1 = GUICreate("Wer ist Online?", 611, 340, 366, 327, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
$Label1 = GUICtrlCreateLabel("Welcher PC ist Online?", 104, 32, 382, 41)
GUICtrlSetFont(-1, 24, 800, 2, "Lucida Fax")
$Label2 = GUICtrlCreateLabel("Benedikt", 192, 104, 105, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Label3 = GUICtrlCreateLabel("Franzsika", 192, 144, 114, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Label4 = GUICtrlCreateLabel("Max", 192, 184, 51, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Label5 = GUICtrlCreateLabel("Victoria", 192, 224, 99, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Label6 = GUICtrlCreateLabel("Mama", 192, 264, 68, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Franziska = GUICtrlCreateLabel("Online", 352, 144, 120, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Mama = GUICtrlCreateLabel("Online", 352, 264, 120, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Max = GUICtrlCreateLabel("Online", 352, 184, 120, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Victoria = GUICtrlCreateLabel("Online", 352, 224, 120, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
$Benedikt = GUICtrlCreateLabel("Online", 352, 104, 120, 31)
GUICtrlSetFont(-1, 16, 400, 0, "Showcard Gothic")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuiCtrlSetData ($Benedikt, "Offline")
GuiCtrlSetColor($Benedikt, 0xff0000)
GuiCtrlSetData ($Franziska, "Offline")
GuiCtrlSetColor ($Franziska, 0xff0000)
GuiCtrlSetData ($Max, "Offline")
GuiCtrlSetColor ($Max, 0xff0000)
GuiCtrlSetData ($Victoria, "Offline")
GuiCtrlSetColor ($Victoria, 0xff0000)
GuiCtrlSetData ($Mama, "Offline")
GuiCtrlSetColor ($Mama, 0xff0000)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Label2
MsgBox (1, "", "Test")
EndSwitch
WEnd
Func stop()
Exit
EndFunc
Verstehe ich nicht. Wo soll da die Oberfläche sein?
Wie man eine GUI erstellst ist klar oder? Zur Not einfach mal mit Kuda rumprobieren.
Filewrite / Filewirteline zu zurückschreiben der Datei verwenden (bzw. Iniwrite bei einer .ini).
Dafür muss aber das .txt File erstmal geschlossen und im richtigen Modus (Schreibmodus) wieder geöffnet werden. Steht alles in der Hilfe ![]()
Komisch bei mir läuft es mit einem schwächeren Rechner flüssig.
amd x2 3800 (oder so ähnlich)
2gb ram
win xp
Hey,
hab noch eine Frage.
Irgendwie muss ich in meinem Skript bitmaps mit 32bit Farbtiefe verwenden. Woran könnte das liegen?
Vielleicht an der verwendeten .dll? Oder ist das einfach so bei der Toolbar UDF?
Bei 24bit bitmaps bleibt das Bild schwarz.
Gruß nuts
Aha. Ja soweit warn wir doch schon fast ![]()
Func check()
[/autoit][autoit][/autoit][autoit]_FileReadToArray(@ScriptDir & '\' & 'serverts.txt', $aIn) ; deine .txt datei
_ArrayDisplay($aIn)
_ArrayEmpty($aIn)
_FileReadToArray(@ScriptDir & '\' & 'test.log', $aIn) ;leere .log datei
_ArrayDisplay($aIn)
Func _ArrayEmpty(ByRef $array)
; Prog@ndy
If Not isArray($array) Then Return SetError(1,0,0)
Switch UBound($array,0)
Case 1
Dim $array[UBound($array,1)]
Case 2
Dim $array[UBound($array,1)][UBound($array,2)]
Case 3
Dim $array[UBound($array,1)][UBound($array,2)][UBound($array,3)]
Case Else
Return SetError(2,0,0)
EndSwitch
Return 1
EndFunc
EndFunc
Also ist die .log Datei ist falsch?
Bie mir funktionierts super und macht auch Spaß.
Bis jetzt hab ich keinen Fehler gefunden und relativ ruckelfrei läuft es auch (ok bin auch noch nicht weit gekommen :D)
Die "Blume" war aber doch zeitlich begrenzt oder?
edit \ wenn man die Schildkröte am anfang von der Plattform haut stürtzt sie aus dem Spiel, sollten die nicht unter weiterleben?
edit2 \ Getestet unter WinXP SP3
Hast du mit _Arraydisplay() nachgesehen ob überhaupt doppelte Einträge vorhanden sind.
Vergleiche mal den ersten Durchlauf (der ja funktioniert?) mit dem zweiten.
So ganz klar ist mir das Problem auch nicht. ![]()
Mhm mit Klickerskripten würde ich mich nicht zu lange aufhalten. Lerneffekt ist sagen wir mal gering und sinnvoll ists in den wenigsten Fällen.
Zum Ausführen einer Anwendung gibt es doch bessere Möglichkeiten.
[autoit]
Run
Shellexecute
Wieso willst du übers Startmenü gehen?
Doppeltklick für eine Listbox bzw. andere Controls.
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
;
;
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox
If Not IsHWnd($hListBox) Then $hWndListBox = GUICtrlGetHandle($hListBox)
$hWndFrom = $ilParam
$iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
$iCode = BitShift($iwParam, 16) ; Hi Word
Switch $hWndFrom
Case $hListBox, $hWndListBox
Switch $iCode
Case $LBN_DBLCLK ; Listbox Konstante s. entsprechendes include
;deine Funktion
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND (Bugfix)
Für ein Listview gibts noch diese Variante:
GUIRegisterMsg($WM_NOTIFY, "_DoubleClickOnListView")
;
;
Func _DoubleClickOnListView($hWnd, $Msg, $wParam, $lParam) ;Doppelklick auf ein Listviewitem
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
If $wParam = $hListView And $event = $NM_DBLCLK Then ;Wenn der Klick auf das ListView ging und es ein Doppelklick (windowskonstante) war, dann
; deine Funktion
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>_DoubleClickOnListView
Worin genau liegt das Problem bei Frage1? Bei der MySQL-Abfrage oder beim Erstellen der Listviewitems?
Die variablen Daten können ja auch aus einer .ini geholt werden, dann muss man nicht jedes mal eine neue .exe erstellen.
Darumherum kann man eine Gui basteln um die .ini zu editieren.
Ähm das war auch falsch sorry ![]()
Wieso nur das erste Item abgearbeitet wird verstehe ich grad auch nicht. Woraus schließt du das?
Ping($ListViewText[$i], 100) ; Host anpingen
[/autoit]
_GUICtrlListView_BeginUpdate($hLVHandle)
for $i = 1 to $aOut[0]
GUICtrlCreateListViewItem($aOut[$i], $hListView)
next
_GUICtrlListView_EndUpdate($hLVHandle)