1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • DateDiff bestimmter Monat innerhalb eines Zeitraums

    • BugFix
    • 17. Juni 2015 um 20:42
    Zitat von xbl38spezial

    Und wenn ich schon mal schreibe, kann ich die Beträge auch mit 1.000 er Trennpunkt darstellen?

    AutoIt
    ; === Formatierter Währungsstring
    
    
    ; Ausgabe Euro, Standard-Währungseinstellung
    ConsoleWrite(_FormatCurrency(200*12345) & @CRLF)  ; ==> 2.469.000,00 €
    
    
    ; Ausgabe Dollar, Währungssymbol führend
    ConsoleWrite(_FormatCurrency(-200*12345, -1, -1, '
    , -1, 1) & @CRLF)  ;==> $ -2.469.000,00
    
    
    ; Ausgabe Dollar, Währungssymbol führend, negativer Wert in Klammern
    ConsoleWrite(_FormatCurrency(-200*12345, -1, -1, '
    , -1, 1, 1) & @CRLF)  ;==> [$ -2.469.000,00]
    
    
    ; Ausgabe Euro, mit Vornull
    ConsoleWrite(_FormatCurrency(4/80) & @CRLF)  ;==> 0,05 €
    
    
    ; Ausgabe Euro, ohne Vornull
    ConsoleWrite(_FormatCurrency(4/80, -1, -1, -1, 0) & @CRLF)  ;==> ,05 €
    
    
    ;===============================================================================
    ; Function Name...: _FormatCurrency
    ; Description.....: Formatiert einen Ausdruck als Währung
    ; Parameter(s)....: $iExpression     der zu formatierende Ausdruck
    ; Requirement(s)..: $iNumDigit       Anzahl Nachkommastellen, -1 = Währungseinstellung PC (Standard)
    ;                   $iGroupDig       Anzahl Zeichen für Gruppierung, -1 = 3 Zeichen (Standard)
    ;                   $sCurr           Währungszeichen, -1 = Währungseinstellung PC (Standard)
    ;                   $iLeadingZero    Führende Null anzeigen, -1 = Währungseinstellung PC (Standard), 0 = nein
    ;                   $fLeadingSign    Währungszeichen führend anzeigen, 0 = nein (Standard)
    ;                   $fNegNumInPara   Negative Werte in eckigen Klammern anzeigen, 0 = nein (Standard)
    ; Return Value(s).: Der formatierte Währungsstring
    ; Note............: Die Gruppierung ermöglicht maximal 8 Blöcke
    ; Author(s).......: BugFix (bugfix@autoit.de)
    ;===============================================================================
    Func _FormatCurrency($iExpression, $iNumDigit=-1, $iGroupDig=-1, $sCurr=-1, $iLeadingZero=-1, $fLeadingSign=0, $fNegNumInPara=0)
    	Local $sRegKey = 'HKCU\Control Panel\International', $sReturn, $aTmp, $sTmp, $sNul = '000000000', $fNeg = 0
    	Local $sDec = RegRead($sRegKey, 'sMonDecimalSep'), $sThousand = RegRead($sRegKey, 'sMonThousandSep')
    	Local $sNegative = RegRead($sRegKey, 'sNegativeSign')
    	If $iGroupDig < 0 Then $iGroupDig = 3
    	If $sCurr = -1 Then $sCurr = RegRead($sRegKey, 'sCurrency')
    	If $iNumDigit = -1 Then $iNumDigit = RegRead($sRegKey, 'iCurrDigits')
    	If $iLeadingZero = -1 Then $iLeadingZero = RegRead($sRegKey, 'iLZero')
    	If IsFloat($iExpression) Then
    		$iExpression = Round($iExpression, $iNumDigit)
    		$sReturn = String($iExpression)
    		If $iNumDigit Then
    			$aTmp = StringSplit(String($iExpression), '.')
    			$sReturn = $aTmp[1] & Chr(29) & StringLeft($aTmp[2] & $sNul, $iNumDigit)
    		EndIf
    	Else
    		$sReturn = String($iExpression)
    		If $iNumDigit Then $sReturn = String($iExpression) & Chr(29) & StringLeft($sNul, $iNumDigit)
    	EndIf
    	If Not $iLeadingZero And StringRegExp($sReturn, '^-?0' & Chr(29) & '\d*') Then $sReturn = StringReplace($sReturn, '0' & Chr(29), Chr(29), 1)
    	If $iGroupDig > 0 And StringLen(Abs($sReturn)) >= $iGroupDig Then
    		$aTmp = StringRegExp(StringReplace($sReturn, '.', Chr(29)), _
    		"(-?\d{1,"&$iGroupDig&"})(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(\d{"&$iGroupDig&"})?(?:\Z|("&Chr(29)&"\d+))", 3)
    		For $i = 0 To UBound($aTmp) -1
    			If $aTmp[$i] <> '' Then $sTmp &= $sThousand & $aTmp[$i]
    		Next
    		$sReturn = StringTrimLeft(StringReplace($sTmp, $sThousand&Chr(29), Chr(29)), 1)
    	EndIf
    	If StringLeft($sReturn, 1) = '-' Then $fNeg = 1
    	$sReturn = StringReplace(StringReplace($sReturn, '-', $sNegative), Chr(29), $sDec)
    	If $fLeadingSign Then
    		$sReturn = $sCurr & ' ' & $sReturn
    	Else
    		$sReturn &= ' ' & $sCurr
    	EndIf
    	If $fNeg And $fNegNumInPara Then $sReturn = '[' & $sReturn & ']'
    	Return $sReturn
    EndFunc  ;==>_FormatCurrency
    Alles anzeigen

    Boah - das Syntaxhighlighting ist ja noch immer abartig.


    Zitat von xbl38spezial

    500,33 € * 0,5 = 250,16 € anstatt wie es richtig wäre 250,17 € oder

    Verwende Round(Expression, 2) zum kaufmännischen Runden.

  • Pixelganau zeichnen mit GDI+ / AutoIT - (wie) geht das ?

    • BugFix
    • 17. Juni 2015 um 17:51
    Zitat von myicq

    Kann aber nur Beispiele für 90-Grad text im Gui finden.

    Ich hatte mal eine kleine Oberfläche zum Testen gebastelt - Text in jedem Winkel. Probier einfach mal.

    AutoIt
    ; ver 3.2.12.1
    #Include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    
    
    Global $GUI = GUICreate('Test Rotation')
    GUICtrlCreateLabel('Text:', 10, 13, 50, 17)
    Global $In = GUICtrlCreateInput('Hallo!', 70, 10, 150, 20)
    Global $bt = GUICtrlCreateButton('Schreibe Text', 250, 10, 100, 20)
    Global $btDel = GUICtrlCreateButton('Lösche Text', 250, 40, 100, 20)
    GUICtrlCreateLabel('Pos. X:', 10, 43, 50, 17)
    Global $inX = GUICtrlCreateInput('80', 70, 40, 30, 20)
    GUICtrlCreateLabel('Pos. Y:', 110, 43, 50, 17)
    Global $inY = GUICtrlCreateInput('280', 170, 40, 30, 20)
    GUICtrlCreateLabel('Winkel:', 10, 73, 50, 17)
    Global $inDeg = GUICtrlCreateInput('30', 70, 70, 30, 20)
    GUICtrlCreateLabel('Höhe:', 110, 73, 50, 17)
    Global $inSize = GUICtrlCreateInput('60', 170, 70, 30, 20)
    GUICtrlCreateLabel('Breite:', 10, 103, 50, 17)
    Global $inWeight = GUICtrlCreateInput('400', 70, 100, 30, 20)
    GUICtrlCreateLabel('Font:', 110, 103, 50, 17)
    Global $inFont = GUICtrlCreateInput('Comic Sans MS', 170, 100, 200, 20)
    GUICtrlCreateGroup(' Stil ', 10, 130, 280, 40)
    Global $rDef = GUICtrlCreateRadio('Standard', 15, 145, 65)
    GUICtrlSetState(-1, $GUI_CHECKED)
    Global $rIt = GUICtrlCreateRadio('Italic', 85, 145, 45)
    Global $cbUn = GUICtrlCreateCheckbox('Underlined', 135, 145, 70)
    Global $cbSt = GUICtrlCreateCheckbox('StrikeOut', 215, 145, 70)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateLabel('Farbe    Schrift:', 10, 183, 80, 17)
    Global $inCol = GUICtrlCreateInput('', 90, 180, 60, 20)
    GUICtrlCreateLabel('Hintergrund:', 160, 183, 80, 17)
    Global $inbCol = GUICtrlCreateInput('', 230, 180, 60, 20)
    
    
    GUISetState()
    Global $Rect
    
    
    Do
    	$msg = GUIGetMsg()
    	If $msg = $bt Then
    		Local $type = 1, $col = -1, $bkcol = -1
    		If BitAND(GUICtrlRead($rIt), $GUI_CHECKED) Then $type = 2
    		If BitAND(GUICtrlRead($cbUn), $GUI_CHECKED) Then $type += 4
    		If BitAND(GUICtrlRead($cbSt), $GUI_CHECKED) Then $type += 8
    		Local $readFont = GUICtrlRead($inFont)
    		If $readFont = '' Then $readFont = -1
    		Local  $col = GUICtrlRead($inCol), $bkcol = GUICtrlRead($inbCol)
    		If $col = '' Then $col = -1
    		If $bkcol = '' Then $bkcol = -1
    		_WriteRotateText($GUI, GUICtrlRead($In), GUICtrlRead($inX), GUICtrlRead($inY), GUICtrlRead($inDeg), _
    			GUICtrlRead($inSize), GUICtrlRead($inWeight), $type, $readFont, $col, $bkcol)
    	ElseIf $msg = $btDel Then
    		_WinAPI_RedrawWindow($GUI)
    	EndIf
    Until $msg = $GUI_EVENT_CLOSE
    
    
    ;==================================================================================================
    ; Function Name:   _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize [, $iWeight=400 _
    ;                               [, $iType=1 [, $sFont=-1 [, $iCol=-1 [, $iBkCol=-1 [,$bRedraw=True]]]]]])
    ; Description:     Schreibt einen Text mit bestimmtem Winkel in das angegebene Fenster
    ; Parameter(s):    $hWnd	Handle des Fensters
    ;                  $sWrite	der zu schreibende Text
    ;                  $iX		x-Position auf dem Fenster
    ;                  $iY		y-Position auf dem Fenster
    ;                  $iDeg	Rotationswinkel des Textes
    ;                  $iSize	Höhe des Textes
    ;     optional:    $iWeight	Fontbreite 0 - 1000 (Standard 400)
    ;     optional:    $iType	Fonttyp		1=normal (Standard); 2=Italic; 4=Underline; 8=StrikeOut
    ;                                       1 oder 2 können mit 4 und 8 kombiniert werden (5;9 od. 6;10)
    ;     optional:    $sFont	Fontname	-1=Font der Form (Standard)
    ;     optional:    $iCol	Fontfarbe			-1=schwarz (Standard)
    ;     optional:    $iBkCol	Hintergrundfarbe	-1=Hintergrundfarbe des Fensters (Standard)
    ;     optional:    $bRedraw	True=Fenster vorher neu zeichnen (vorige Beschriftung löschen - Standard)
    ; Requirement(s):  #Include <WinAPI.au3>; #include <StructureConstants.au3>; #include <WindowsConstants.au3>
    ;==================================================================================================
    Func _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize, $iWeight=400, $iType=1, $sFont=-1, $iCol=-1, $iBkCol=-1, $bRedraw=True)
    	If $bRedraw Then _WinAPI_RedrawWindow($hWnd)
    	Local $tRect = DllStructCreate($tagRECT)
    	DllStructSetData($tRect, 'Left', $iX)
    	DllStructSetData($tRect, 'Top', $iY)
    	Local $rotate = $iDeg *10
    	If ($rotate = 900) Or ($rotate = 1800) Or ($rotate = 2700) Then $rotate += 1
    	Local $RotateMe = DllStructCreate($tagLOGFONT)
    	DllStructSetData($RotateMe, 'Escapement', $rotate)
    	DllStructSetData($RotateMe, 'Height', ($iSize * -20)/_WinAPI_TwipsPerPixelY())
    	If $iWeight <> 400 Then DllStructSetData($RotateMe, 'Weight', $iWeight)
    	If BitAND($iType, 2) Then DllStructSetData($RotateMe, 'Italic', True)
    	If BitAND($iType, 4) Then DllStructSetData($RotateMe, 'Underline', True)
    	If BitAND($iType, 8) Then DllStructSetData($RotateMe, 'StrikeOut', True)
    	If $sFont <> -1 Then DllStructSetData($RotateMe, 'FaceName', $sFont)
    	Local $rFont = _WinAPI_CreateFontIndirect($RotateMe)
    	Local $hDC = _WinAPI_GetDC($hWnd)
    	If $iCol <> -1 Then _WinAPI_SetTextColor($hDC, $iCol)
    	If $iBkCol <> -1 Then _WinAPI_SetBkColor($hDC, $iBkCol) ; wenn Transparenz gewünscht, Folgezeile aktivieren
    ;~ 	_WinAPI_SetBkMode($hDC, $TRANSPARENT)
    	_WinAPI_SelectObject($hdc, $rFont)
    	_WinAPI_DrawText($hDC, $sWrite, $tRect, BitOR($DT_NOCLIP,$DT_NOPREFIX))
    	_WinAPI_ReleaseDC($hWnd, $hDC)
    EndFunc  ;==>_WriteRotateText
    Alles anzeigen
  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 17. Juni 2015 um 17:46

    Also ich kann deinen Fehler nicht erkennen. Reduziere dein Skript mal soweit, dass nur noch das Listview mit dem Verhalten übrigbleibt. Lagere erst mal nicht in eine Funktion aus, ich denke dabei entsteht das Problem. Allerdings hat mir bisher _WinAPI_RedrawWindow($hLV) jedes Listview ordentlich neu gezeichnet.
    Mit meinem Minimalskript kann ich deinen Fehler nicht abbilden.

    Spoiler anzeigen
    AutoIt
    #include <GuiListView.au3>
    _Test()
    
    
    Func _Test()
    	Local $hGui = GUICreate('Test')
    	Local $hLV = GuiCtrlCreateListView('A|B|C', 10, 10, 300, 100)
    	_GUICtrlListView_SetColumnWidth($hLV, 0, 100)
    	_GUICtrlListView_SetColumnWidth($hLV, 1, 100)
    	_GUICtrlListView_SetColumnWidth($hLV, 2, $LVSCW_AUTOSIZE_USEHEADER)
    	For $i = 1 To 50
    		GUICtrlCreateListViewItem(StringFormat('Zeile_%i - Spalte_A|Zeile_%i - Spalte_B|Zeile_%i - Spalte_C', $i, $i, $i), $hLV)
    	Next
    	GUISetState()
    	Do
    	Until GUIGetMsg() = -3
    EndFunc
    Alles anzeigen
  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 17. Juni 2015 um 15:07
    Zitat von AutoTim

    _GUICtrlListView_AddColumn hinzu, weil ich deren Breite dann gleich mit angeben kann.

    Was ist das für eine Logik?
    Das erledigt man doch beim Erstellen mit:

    AutoIt
    $hLV = GuiCtrlCreateListView('Spalte_1|Spalte_2', 5, 50, 495, 500)
    _GUICtrlListView_SetColumnWidth($hLV, 0, 240)
    _GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER)  ; Restbreite
  • Details .mkv auslesen

    • BugFix
    • 17. Juni 2015 um 13:20

    Die technischen Spezifikationen dieses Containers findest du hier. Also leg los.

  • SciTE - eigene Properties-Dateien update-sicher speichern.

    • BugFix
    • 17. Juni 2015 um 12:06

    Wenn man für seine PlugIns oder auch generell für seine Änderungen die Properties in einer eigenen Datei speichern möchte muß man einiges beachten.

    • Der Speicherort der Datei muss im selben Ordner (oder rekursiv) gespeichert sein, wie die Datei, aus der der import-Befehl ausgelöst wird.
    • Standardmäßig speichert SciTE im Pfad: ..\SciTE\Properties\
    • Etwa seit AutoIt v3.10 werden zusätzliche Properties (Abbrevs etc.) im Pfad ..\AppData\Local\AutoIt v3\SciTE\ abgelegt.
    • Bei einem Update wird der Inhalt von ..\SciTE\Properties\ kpl. überschrieben.

    Daraus resultiert, man sollte eigene Properties im AppData-Pfad speichern. Dadurch kann ich dann auch den Aufruf in der SciTEUser.properties unterbringen. Diese wird bei einem Update glücklicherweise nicht angefasst.
    Da der AppData-Pfad von Windows etwas versteckt wird, empfehle ich die eigenen Propertie-Dateien in einem Ordner des USER-Verzeichnisses abzulegen und von dort in das AppData-Verzeichnis per Hardlink zu verlinken.

    AutoIt
    ; -- *.properties Datei im Userpfad, Properties-Ordner erstellen
    ; -- z.B.
    $sPathPropsUser = @UserProfileDir & '\Properties.User\sample.properties'
    
    
    ; -- Die Datei per Hardlink in den Ordner mit der "SciTEUser.properties" verlinken
    $sPathAppDataLocal = @UserProfileDir & '\AppData\Local\AutoIt v3\SciTE'
    FileCreateNTFSLink($sPathPropsUser, $sPathAppDataLocal & '\sample.properties')
    
    
    ; -- das Laden der *.properties kann jetzt innerhalb der "SciTEUser.properties" erfolgen
    ; -- da aus demselben Ordner geladen wird, ist keine weitere Pfadangabe erforderlich
    ; -- die Endung (.properties) wird beim Import nicht angegeben
    import sample
    Alles anzeigen

    Nun kann man problemlos updaten und sofort mit all den eigenen Änderungen wieder loslegen.

    Vorteilhaft ist dies auch um etwas Ordnung in die SciTEUser.properties zu bekommen. Ich habe dort z.B. User-Settings für Lua, Python, SQL etc.. Die habe ich jetzt jeweils ausgelagert in eine eigene Datei (lua_user.properties, python_user.properties ...) und lade diese Dateien mit import am Beginn der SciTEUser.properties. Somit haben sie auch die gleiche Priorität wie diese.

  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 17. Juni 2015 um 09:25

    Du mußt das Listview erzeugen bevor du die GUI auf SHOW setzt. Andere Variante wäre, nach dem Erstellen des LV ein Neuzeichnen zu erzwingen (_WinAPI_RedrawWindow).
    Dein GUICtrlCreateListView("", 2, 2, 796, 300) ist beim besten Willen noch kein LV, das entsteht erst duch das Hinzufügen der Spalten (warum erstellst du diese nicht sofort?).

  • in .xml Datei Werte ändern

    • BugFix
    • 17. Juni 2015 um 09:13
    Zitat von Harald654

    und zwar mit "StringRegExpReplace"

    Das wäre in dem Fall mit Kanonen auf Spatzen schießen. :P
    Hier reicht doch StringReplace völlig aus.

    AutoIt
    $sSearch = '<screenmode default="true">DESKTOP</screenmode>'
    $sReplace = '<screenmode>10192001080060.00000pstd</screenmode>'
    
    
    $sRead = FileRead('XML-Datei')
    If StringInStr($sRead, $sSearch) Then
    	$fH = FileOpen('XML-Datei', 2)
    	FileWrite($fH, StringReplace($sRead, $sSearch, $sReplace)) 
    	FileClose($fH)
    EndIf
  • Icondatei mit mehreren Icongrößen mit GDI+ laden

    • BugFix
    • 16. Juni 2015 um 19:10

    Ich habe die portable Version geladen - schon beim DL schlägt der Malware-Scanner an.

  • Icondatei mit mehreren Icongrößen mit GDI+ laden

    • BugFix
    • 16. Juni 2015 um 18:26
    Zitat von bernd670

    dem kann ich Greenfish Icon Editor Pro empfehlen.

    Was mich jetzt etwas verwundert, dass ein OpenSource-Programm Adware auf den PC schaufelt. <X
    Aus meiner Sicht nicht empfehlenswert.

  • Fragen zur Firefox UDF

    • BugFix
    • 16. Juni 2015 um 17:36
    Zitat von Fr34k.

    Naja, bin mir nicht sicher ob dies wirklich so gewollt ist, denn auf der Webseite sowie auch im Source-Code werden die Umlaute korrekt dargestellt.

    Die Website ist wahrscheinlich in UTF8 codiert und SciTE? - Genau: Win1252.
    Beide Codes können zwar Umlaute/Sonderzeichen darstellen, aber wenn du in UTF8 geschriebene Umlaute in einer Win1252-Umgebung ausgibst, siehst du nur noch Fragezeichen, weil die Zeichen nicht zugeordnet werden können.

    Das ist das leidige Problem, dass es zwar UTF8 schon eine gefühlte Ewigkeit gibt, aber es bis heute noch nicht Standard ist.
    Du kannst ja mal in SciTE über <Datei><Kodierung> auf UTF8 umschalten. Wenn du dann die Ausgaben lesen kannst, weißt du was zu tun ist.

  • Array - Eintrag entfernen bei Bedingung (RemoveIf)

    • BugFix
    • 16. Juni 2015 um 16:30

    Nach langem mal wieder was zum Thema Array. (Nur was Kleines)
    In manchen Sprachen gibt es RemoveIf als native Funktion, hier mal für AutoIt anzuwenden auf 1D-Arrays.

    AutoIt
    ;~ ============================================================ Bsp. ===
    #include <Array.au3>
    
    
    Func _NotEven($a)
    	Return Mod($a, 2)
    EndFunc
    
    
    $NotEven = _NotEven
    Local $a[] = [1,2,3,4,5,6,7,8,9,10]
    
    
    $aEven = _Array_RemoveIf($NotEven, $a)
    _ArrayDisplay($aEven)
    ;~ ====================================================================
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _Array_RemoveIf
    ; Description ...:
    ; Syntax ........: _Array_RemoveIf($_ConditionFunc, $_Array[, $_iStart = 0])
    ; Parameters ....: $_ConditionFunc      - Funktion die die Arrayelemente auf eine Bedingung prüft
    ;                  $_Array              - das Array mit allen zu prüfenden Elementen
    ;                  $_iStart             - [optional] Der Startindex. Standard ist 0.
    ; Return values .: Erfolg               - Array ohne die Elemente, auf die die Bedingung zutrifft
    ;                  Fehler               - das Ursprungsarray, @error 1
    ; Author ........: BugFix ( autoit@bug-fix.info )
    ; ===============================================================================================================================
    Func _Array_RemoveIf($_ConditionFunc, $_Array, $_iStart=0)
    	If Not IsFunc($_ConditionFunc) Then Return SetError(1,0,$_Array)
    	Local $aNew[UBound($_Array)], $n = $_iStart
    	If $_iStart > 0 Then
    		For $i = 0 To $_iStart -1
    			$aNew[$i] = $_Array[$i]
    		Next
    	EndIf
    	For $i = $_iStart To UBound($_Array) -1
    		If Not $_ConditionFunc($_Array[$i]) Then
    			$aNew[$n] = $_Array[$i]
    			$n += 1
    		EndIf
    	Next
    	ReDim $aNew[($_iStart = 0  ? ($n > $_iStart ? $n : 1) : ($n > $_iStart ? $n : $_iStart))]
    	Return $aNew
    EndFunc
    Alles anzeigen
  • Checkboxen auslesen und in MSG Box ausgeben

    • BugFix
    • 16. Juni 2015 um 16:27

    Wieso klatscht du ihm jetzt was Fertiges hin? Wie soll man dabei lernen?
    Meine Hinweise enthielten alles Wesentliche um den Code zu erstellen. Bedenkt bei eurer Hilfe, dass nur Hilfe zur Selbsthilfe was bringt.
    Das andere heißt "Arm-aus-der-Sonne-legen" und wird nicht gewünscht. X(

  • Checkboxen auslesen und in MSG Box ausgeben

    • BugFix
    • 16. Juni 2015 um 15:24
    AutoIt
    If BitAND(GUICtrlRead($ID_Checkbox), $GUI_CHECKED) Then ; -- Checkbox ist aktiviert
    
    
    $sCaption = ControlGetText($HandleGUI, '', $ID_Checkbox) ; -- so liest du den Checkbox Text

    Das ganze per Button zu starten schaffst du ja wohl.

  • Können Controls bei einem (nicht Autoit) Programm nach einem Neustart unterschiedliche Instance Nummern aufweisen

    • BugFix
    • 14. Juni 2015 um 22:28

    Ich kann mich erinnern, dass ich solch ein Szenario vor Jahren mit irgendeinem Verwaltungsprogramm hatte. Da war kein gescheiter Zugriff, ich konnte nur die Menüleiste referenzieren. Aber die Untermenüs wurden erst zur Laufzeit generiert. Dadurch hing die Instance davon ab, welches Menü in welcher Reihenfolge erstmalig geöffnet wurde.
    Somit ist es durchaus denkbar, dass der TE ein ähnliches Problem hat.
    Wie geht man damit um? - Nun, man sucht nach eindeutigen Identifizierungsmerkmalen (z.B. Fenstertitel + Fenstertext) um darüber zu adressieren. Wenn Fenster erkannt werden, was bei dir der Fall ist, dann gibt es auch immer eine Möglichkeit diese zweifelsfrei zu identifizieren, selbst wenn die Instance von Elementen wechselt. Wenn du mehrere gleichartige Controls hast, dann kannst du diese per Enumeration auflisten und prüfen ob bei jedem Start gleiche Eigenschaften vorhanden sind. Mußt du halt etwas probieren.

  • Gefilterte Eingabe: InputFilter.au3 (1.1)

    • BugFix
    • 13. Juni 2015 um 09:30
    Zitat von Friesel

    Entschuldigung für meine Off-Topic-Frage, aber kann man bei GUICtrlCreateDate auch einstellen, dass bei Benutzung der UpDown-Controls mit den Sekunden begonnen wird? Standardmässig gehts nämlich bei Stunden los.

    Wenn es per Flag nicht geht (kann es gerade nicht prüfen), bleibt die Variante die Up/Down Message abzufangen und die Werte selbst zu setzen.
    Eventuell kannst du auch den Fokus verschieben. Zwischen den Positionen kannst du mit Shift+Pfeil wechseln.

  • ConsoleWrite (Zeilennummer) und nach langem Pfad Zeilenumbruch einfügen in die Console

    • BugFix
    • 10. Juni 2015 um 17:31

    Dann solltest du schon genauer erklären, was du meinst. Ich hatte es so verstanden, dass du die Errorausgabe ändern willst, tatsächlich geht es dir aber darum, dass überlange Zeilen automatisch umgebrochen werden in der Konsole (Autowrap).
    Dazu öffne die SciTEUser.properties (Optionen - Benutzereinstellungen öffnen) und trage dort ein:
    output.wrap=1
    Dann SciTE neu starten und fertig.

  • Datum / Ostersonntag.

    • BugFix
    • 10. Juni 2015 um 15:52
    Zitat von AutoMit

    #include <Date.au3> ; Datum und Zeit - brauche ich das?

    Schau in die UDF - ausschliesslich native Funktionen. Somit sind keinerlei Includes erforderlich.

    Und du musst schon den Return der Funktion auffangen.

    AutoIt
    $EasterDate = _Easter(@YEAR)
    ConsoleWrite($EasterDate & @CRLF)
    
    
    ; oder:
    ConsoleWrite(_Easter(@YEAR) & @CRLF)
  • ConsoleWrite (Zeilennummer) und nach langem Pfad Zeilenumbruch einfügen in die Console

    • BugFix
    • 10. Juni 2015 um 13:16
    Zitat von AutoMit

    Wie heißt die Variable mit der Zeilennummer, wenn man eine .au3 Datei im SciTE-Editor ausführt?

    Habe ich schon mehrfach genannt: Makro @ScriptLineNumber

    Zitat von AutoMit

    hier geht es darum, ins Innere vom SciTE-Editor einzugreifen, da ja irgendwo die Ausgabe für die Console gescriptet sein muss .

    Das Errorhandling ist m.W. in der .exe verankert, somit kannst du da nicht eingreifen. Vielleicht solltest du dir deine Monsterpfade (bei mir ist keiner länger als 30-40 Zeichen) einfach auf kürzere Pfade linken.

  • „Koda Form Designer“ - Array, Hilfe und mehr

    • BugFix
    • 10. Juni 2015 um 12:19
    Zitat von Kanashius

    Was mich nervt ist, dass ohne speichern das F1 zum springen in die Hilfe nicht funzt...

    Du bist lustig, wenn SciTE nicht weiß, was für eine Datei du bearbeitest kann auch nicht die passende Hilfedatei aufgerufen werden. SciTE ist kein "ausschliesslich-AutoIt-Editor".

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™