Um was genau handelt es sich denn?
ich halte sehr wenig von den Pixel funktionen, weil sie einfach sehr unsicher sin...
Beiträge von Schnitzel
-
-
Sehr schön
wenn das Problem gelöst ist könntest du es als gelöst markieren
einfach den ersten post editieren, das Präfix auf gelöst setzen und Absenden -
Du solltest auf die neueste autoit version updaten
Adlibregister gibts seit der version 3.3.5 oder so.Also updaten dann sollts bei dir auch gehn
-
Ich hoffe du nimmst mir nicht übel dass ich es mal umgebastelt hab^^
so würds schonmal ganz gut aussehn.Spoiler anzeigen
[autoit]#Include <StaticConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <WindowsConstants.au3>
#include <GUIConstants.au3>
#include <Date.au3>
#NoTrayIcon
HotKeySet("+!i", "exitProg")
AdlibRegister("UpdateTime", 100)Global $IDC_PICTURE, $IDC_EXIT, $MainGUI, $iDiffold
[/autoit] [autoit][/autoit] [autoit]
Local $Width = 306$MainGUI = GUICreate("timer", _
[/autoit] [autoit][/autoit] [autoit]
$Width, 236, @DesktopWidth - $Width, 0, _
$WS_POPUP, BitOR ($WS_EX_TOOLWINDOW, $WS_EX_LAYERED))$IDC_PICTURE = GUICtrlCreatePic(@ScriptDir & "\lll.gif", _
[/autoit] [autoit][/autoit] [autoit]
0, 0, 0, 0, _
BitOR ($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS), _
$GUI_WS_EX_PARENTDRAG)$IDC_EXIT = GUICtrlCreateButton("X", 260, 20, 15, 15)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState ($IDC_EXIT, $GUI_ONTOP)$IDC_TIME = GUICtrlCreateLabel("", 60, 100, 190, 15); so ist es auf dem bild
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont($IDC_TIME, 10, 500, 0, "Harlow Solid Italic"); wenn du die schriftart nicht hast nimm ne andere schöne
GUICtrlSetColor($IDC_TIME, 0xC71585); hier ist die pinke farbe
GUICtrlSetBkColor($IDC_TIME, 0x000000); das ist der schwarze hintergrundGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While TRUE
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $IDC_EXIT
Exit
EndSwitch
WEndFunc ExitProg()
[/autoit] [autoit][/autoit] [autoit]
Exit 0
EndFuncFunc UpdateTime()
[/autoit] [autoit][/autoit] [autoit]
$iDiffnew = _DateDiff('s', '2010/01/01 00:00:00', _NowCalc())
If $iDiffold <> $iDiffnew Then
Guictrlsetdata($IDC_TIME, _SecondsToDateTime($iDiffnew))
$iDiffold = $iDiffnew
EndIf
EndFuncFunc _SecondsToDateTime($iSeconds, $iLang = 1)
[/autoit]
If $iLang < 0 Or $iLang > 1 Then $iLang = 0
Local $sOut = '', $bCheck = False, $bNegative = False, $aDiv[5] = [2592000, 86400, 3600, 60, 1]
Local $aFormat[5][2] = [['M', 'M.'],['Tage', 'D.'],['Stunden', 'H.'],['Minuten', 'Min.'],['Sekunden', 'Sec.']]
If $iSeconds = 0 Then Return '0 ' & $aFormat[4][$iLang]
If $iSeconds < 0 Then
$bNegative = True
$iSeconds = Abs($iSeconds)
EndIf
For $i = 0 To 4
If ($iSeconds >= $aDiv[$i]) Or $bCheck Then
$sOut &= Int($iSeconds / $aDiv[$i]) & ' '
If Int($iSeconds / $aDiv[$i]) = 1 Then
$sOut &= StringTrimRight($aFormat[$i][$iLang], 1) & ', '
Else
$sOut &= $aFormat[$i][$iLang] & ', '
EndIf
$bCheck = True
EndIf
$iSeconds = Mod($iSeconds, $aDiv[$i])
Next
If $bNegative Then $sOut = ' - ' & $sOut
Return StringTrimRight($sOut, 2)
EndFuncZu deinen drei fragen lautet die antwort übrigens JA
Hab an den stellen im script kommentare eingefügt -
Ich würde an deiner stelle beide guis gleich am anfang erstellen, und nur dann einblenden wenn sie gebraucht werden.
Vorteile:
- übersichtlicheres skript
- nur eine while endlosschleife -
Ich denke dein Problem ist damit gelöst.
Wäre nett wenn du den Thread setzen würdest.
Dazu einfach den ersten Post editieren, Präfix auf gelöst setzen und Absenden -
wie Multibot schon sagt brauchst du für "diese Pfeile" WS_Sizebox (auswählen für die Gui)
und bei den einzelnen Controls musst du das resizing angeben.
in koda: siehe Bildim script
[autoit]Guictrlsetresizing()
[/autoit] -
Scriptverzeichnis: das ist das verzeichnis wo auch das script liegt...
-
Aha
und wo liegt dein problem?
Das hier ist das Hilfe Forum, nicht das mach mir mal Forum... -
Sie greift natürlich schon beim ersten mal.
aber da mit dem ersten klicken die checkbox ja markiert wird, wird das ausgeführt.
Und da die Liste schon Enabled ist ändert sich nichts.GUICtrlSetState($hListBox,$GUI_ENABLE)
-
du kannst kein control auslesen das nicht mehr existiert
du löscht ja die Gui und dann versuchst du das noch auszulesen
[autoit]GUIDelete()
[/autoit]
MsgBox(1, "", GUICtrlRead($hname))andersrum könnte es eher klappen
Edit:
oh und gibt ein 2D array zurück.
probiers so:Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Local $hname, $section
Example1()
Func Example1()
Local $msg
GUICreate(" GUI ") ; will create a dialog box that when displayed is centered
GUICtrlCreateLabel("HostName ", 11, 80)
$hname = GUICtrlCreateCombo("", 10, 102)
$section = IniReadSection(@desktopdir & "\autoit\reg\muster.ini", "HostName")
For $i = 1 To UBound($section) - 1
GUICtrlSetData($hname, $section[$i][1])
NextGUISetState(@SW_SHOW) ; will display an empty dialog box
[/autoit] [autoit][/autoit] [autoit]; Run the GUI until the dialog is closed
[/autoit]
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
MsgBox(1, "", GUICtrlRead($hname))
GUIDelete()
EndFunc ;==>Example1 -
Wenn ich mich nicht irre brauchst du nur die flag 262144 damit die Msgbox immer im Vordergrund ist.
Hilfe lesen -
PS: Plural von Status = Statusse oder Status (Langes U)
ja laut Duden falsch, laut Umgangssprache aber richtig
Zitat von AutoBertda XovoxKingdom GuiCtrlRead benutzt, ist das kein Problem. Anders wäre es bei GuiCtrlGetState.
ups hast natürlich recht^^
habs wohl verwechselt...@xabbu
so vielleicht?
Spoiler anzeigen
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_Icon=ruoff.ico
#AutoIt3Wrapper_Outfile=connector.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=Connector by Terra-IT
#AutoIt3Wrapper_Res_Description=Connector zum verbinden von ausländischen Filialen ohne die MasterGUI zu verwenden
#AutoIt3Wrapper_Res_Fileversion=1.0.0.1
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p
#AutoIt3Wrapper_Res_LegalCopyright=Terra-IT
#AutoIt3Wrapper_Res_SaveSource=y
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Res_Field=Made By|Soeren Mindorf
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
; *** Author: S. Mindorf 27.06.2010 ***
; *** Version 1.0 *Rewrite*, now with double click#include<GuiListBox.au3>
[/autoit] [autoit][/autoit] [autoit]
#include<GUIConstantsEx.au3>
#include<ListBoxConstants.au3>
#include<WindowsConstants.au3>$version = "1.0 (27.06.2010)"
[/autoit] [autoit][/autoit] [autoit]
$user = @UserName$Form1 = GUICreate("Connector", 381, 236, 306, 216)
[/autoit] [autoit][/autoit] [autoit]
$help = GUICtrlCreateMenu("?")
$hilfe = GUICtrlCreateMenuItem("Hilfe", $help)
$about = GUICtrlCreateMenuItem("Info", $help)
$OK = GUICtrlCreateButton("OK", 152, 160, 90, 41, 0)
$Cancel = GUICtrlCreateButton("Cancel", 248, 160, 90, 41, 0)
$Label1 = GUICtrlCreateLabel("Wähle den Server aus:", 8, 45, 113, 17)
$isdebug = GUICtrlCreateCheckbox("GUI Debug", 8, 60, 90, 41)
$isall = GUICtrlCreateCheckbox("Select all", 8, 90, 90, 41)$h1 = "Dieses Programm dient zur schnellen Verbindung zum Server."
[/autoit] [autoit][/autoit] [autoit]
$h2 = "Die ini-Datei befindet sich in %appdata% und muss wie folgt aussehen: [Serverip] server=servername,...,..."GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
[/autoit] [autoit][/autoit] [autoit]
$var = IniRead(@AppDataDir & "/connector.ini", "Serverip", "server", "NotFound")
$IP = StringSplit($var, ",")$hListBox = GUICtrlCreateList("", 144, 45, 185, 71)
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_SHOW)$Serverlst = $hListBox
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetLimit(-1, 200); to limit horizontal scrollinIf $IP[0] = 1 Then;
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, "Fehler", "Es befinden sich keine Server in der ini")
Exit
Else
For $i = 1 To $IP[0]
_GUICtrlListBox_AddString($hListBox, '' & $IP[$i])
Next
EndIfWhile 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Cancel; Cancel wurde gedrückt
Exit
Case $OK; OK wurde gedrückt
SEP()
Exit
Case $about
MsgBox(0, "About", "Erstellt von Soeren Mindorf" & @LF & $version)
Case $hilfe
MsgBox(0, "Hilfe", $h1 & @LF & $h2)
Case $isall
If GUICtrlRead($isall) = $Gui_Checked Then
GUICtrlSetState($hListBox,$GUI_ENABLE)
Else
GUICtrlSetState($hListBox,$GUI_DISABLE)
EndIf
EndSwitch
WEnd;$hListBox = GUICtrlCreateList("", 144, 45, 185, 71)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit] [autoit][/autoit] [autoit]
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
;MsgBox(0, "Doppelklick", "Doppelklick Funktion start")
SEP()
Exit
; case 1
; ConsoleWrite("Click" & @CRLF)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMANDFunc SEP()
[/autoit]
MsgBox(0, "in Funktion SEP", "Funktion SEP")
If GUICtrlRead($isdebug) = 1 Then
MsgBox(0, "Debug ist an!", "Debug")
If GUICtrlRead($Serverlst) = "big.terra-it.de" Then
MsgBox(0, "big", "big")
Else
MsgBox(0, "alte Version", GUICtrlRead($Serverlst))
EndIf
Else
If GUICtrlRead($Serverlst) = "big.terra-it.de" Then
MsgBox(0, "big1", "big1")
Else
MsgBox(0, "alte GUI Version", "Alte GUI", 3)
EndIf
EndIf
EndFunc ;==>SEP -
XovoxKingdom:
Achtung die Checkbox kann mehrere Stati haben
mit BitAnd arbeiten -
so sollte es gehn:
[autoit]If bitand(guictrlread($isall),$GUI_CHECKED)=$GUI_CHECKED Then
[/autoit]
GUICtrlSetState($hListBox, $GUI_DISABLE)
Else
GUICtrlSetState($hListBox, $GUI_Enable)
EndIfwenn du nicht weißt wo du es einsetzen musst dann bitte den ganzen Code posten
-
Ja würde es, nur das problem ist, der Link varriert!
ideas2code's und meine lösung funktionieren für solche links. hauptsache sie sind so aufgebaut:
edit:
ideas hat natürlich recht. Je nachdem was du willst... -
hier nochmal mit _Strinbetween()
[autoit]#Include <String.au3>
[/autoit]
$string = "[Blockierte Grafik: http://www.imagebanana.com/img/xf3uf8z/thumb/rofl]"
$between = _StringBetween($string , "")
if isarray($between) then
msgbox(0,"", $between[0])
endif -
das kannste mit vielen Funktionen machen.
_stringbetween is das leichteste denk ich
gehn würds aber auch mit
stringtrimleft/right
stringleft/right
stringregex
... -
du kannst die Hash Werte der Dateien vergleichen, sind diese gleich ist alles glatt gegangen.
hier der Ansatz:
FileInfo - Errechnet Datei-Quersummen (MD5, CRC32 ...) -
Herzlichen Glückwunsch Schnuffel!
Feier schön und genieß den Tag