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

  • Funktion auslösen wenn ein Input-Feld den Fokus erhält

    • BugFix
    • 18. Juli 2011 um 13:06
    Zitat von zapp

    Ich bin leider zu doof um das per DLL-Calls selbst lösen zu können und eine Lösung mittels Postionsermittlung kommt hier nicht in Frage.


    Weder das Eine noch das Andere brauchst du dazu, sondern: GuiRegisterMsg

    Guckst du:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Form1")
    GUISetOnEvent($GUI_EVENT_CLOSE, '_ende')
    $b = GUICtrlCreateButton('Button', 10, 10, 60, 20)
    $in0 = GUICtrlCreateInput('', 100, 60, 60)
    $in1 = GUICtrlCreateInput('', 100, 90, 60)
    $in2 = GUICtrlCreateInput('', 100, 120, 60)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

    [/autoit] [autoit][/autoit] [autoit]

    While True
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _ende()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Switch $iCode
    Case $EN_SETFOCUS ; Sent when an edit control receives the keyboard focus
    Switch $hWndFrom
    Case GUICtrlGetHandle($in0)
    ConsoleWrite('Fokus erhalten: Input 0' & @CRLF)
    Case GUICtrlGetHandle($in1)
    ConsoleWrite('Fokus erhalten: Input 1' & @CRLF)
    Case GUICtrlGetHandle($in2)
    ConsoleWrite('Fokus erhalten: Input 2' & @CRLF)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • funktionen unterbrechen

    • BugFix
    • 18. Juli 2011 um 12:53
    Zitat von robertmaxity

    die schleife soll dann aber auch beendet werden und die funktion von vorne anfangen


    Na dann statt die Schleife verlassen, von vorn beginnen: ContinueLoop.

  • funktionen unterbrechen

    • BugFix
    • 18. Juli 2011 um 10:41
    Zitat von BigDaddy

    zum einen sollte aufjedenfall mal die IF-Anweisung auch wieder geschlossen werden


    Da liegst du falsch, nicht wenn es ein Ein-Zeilen-Statement ist. Nur wenn die Then-Anweisung in einer neuen Zeile steht muß auch ein EndIf gesetzt werden.

    @robertmaxity: Sag mal lieber, was du machen willst, aus deinem Code werde ich nicht ganz schlau.

  • icon aus exe

    • BugFix
    • 18. Juli 2011 um 10:30
    Zitat von gem

    ich möchte das symbol einer exe speichern


    Der einfachste Weg: Mit dem Ressource Editor das Icon exportieren.
    Aber der Einwand bzgl. Urheberrecht ist richtig. Daher weiche doch besser von vornherein auf freie Icons aus.
    Finden kannst du diese z.B. hier: Freebies, Iconspedia, Iconload

  • WinExists-Problem

    • BugFix
    • 18. Juli 2011 um 10:20

    Da du kein kpl. testbares Codebsp. eingestellt hast (hab keine Lust das erst zusammenzubasteln ;)) soviel:
    Du bekommst das Handle angezeigt, es ist also im Array - aber der Title stimmt nicht. Also solltest du mal vergleichen, welchen Titel du abgespeichert hast und welchen Titel das Fenster verwendet.
    WinTitleMatchMode Flag=2 könnt hilfreich sein.

  • (Notfalltaster) Progamm über "input pin" am Parallelport beenden

    • BugFix
    • 18. Juli 2011 um 10:06

    Guck mal hier.

  • mehrere ini Dateien in Combobox

    • BugFix
    • 18. Juli 2011 um 09:54

    Na klar geht das.
    - Beim Skriptstart mit IniReadSectionNames alle Sektionen ermitteln und in ein Array schreiben
    - Zur Laufzeit zwecks Auswahl durch den User die Sektionsnamen in einer Sektions-Combo auflisten
    - Je nach Auswahl mit IniReadSection die jeweilige Sektion einlesen (Rückgabe ist ein Array)
    - Inhalts-Combo jetzt aus dem Array befüllen (vorher alte Werte löschen)

  • WinExists-Problem

    • BugFix
    • 18. Juli 2011 um 09:42
    Zitat von sc4ry

    Das Window added kommt aus der besagten Funktion, in der das Handle zum Array zugefügt wird.


    Na dann zeig die Funktion mal her. Denn dort scheint ja der Hund begraben zu sein. Ohne zu wissen was im Array steht, kann man schlecht sagen ob deine Auswertungsfunktion funktionieren kann.

  • Wie sieht euer Desktop aus?

    • BugFix
    • 17. Juli 2011 um 19:21

    Ich sehe hier eine überdurchschnittliche Präsenz von nacktem Fleisch. 8o
    DAS sollte uns einiges sagen über die Interessen der User. :rofl:

  • [Frage] verdient ihr nebenbei geld??

    • BugFix
    • 15. Juli 2011 um 23:20

    Ich bin ja nun schon lange in Lohn und Brot. :D
    Aber während der Schulzeit vor ....zig Jahren habe ich nebenbei gekellnert, war richtig lukrativ und als Abiturient mit 250 Mark im Monat Nebenverdienst haben mich die paar Mücken Taschengeld von den Eltern kalt gelassen. :rofl:

  • Euer erstes Script

    • BugFix
    • 15. Juli 2011 um 22:43

    Und ich hab hiermit meinen Einstand gegeben. ;)

  • Tastaturanschläge modifiziert an ein aktives Fenster weiterleiten

    • BugFix
    • 14. Juli 2011 um 22:37
    Zitat von FizzeBu

    Kann das Fenster von Terraria nebenher aktiv bleiben und wird dabei nichts an das Fenster gesendet? Und: Kann ich das auf das Terraria Fenster beschränken?


    Ja, du kannst (und mußt) es auf das Fenster beschränken. Ansonsten hast du auch außerhalb des Fensters ein geändertes Tastaturverhalten.

  • Tastaturanschläge modifiziert an ein aktives Fenster weiterleiten

    • BugFix
    • 14. Juli 2011 um 22:13

    Nachdem ich es freigegeben habe antworte ich dir auch gleich.
    Das Problem: Die Lösung kann mißbraucht werden.
    Deshalb werde ich nur grob umreißen, wie es zu lösen ist.
    Du mußt das Tastaturereignis mit einem Hook auffangen, bearbeiten und dann weitersenden.
    Ich habe dazu verschiedene Beispiele erstellt. Bemühe die Forumssuche und arbeite dich in die Materie ein. Viel mehr Support werden wir wohl nicht geben können.

  • Auto login bei Amazon

    • BugFix
    • 14. Juli 2011 um 20:13
    Zitat von Kuchen

    Es hat Funktioniert


    Dann bitte auf "gelöst" setzen (Startpost bearbeiten, Status).

  • "Or" - Syntax kürzbar?

    • BugFix
    • 13. Juli 2011 um 20:35
    Zitat von Dietmar

    Dann müssen aber alle 3 (Hallo Huhu Hejo) vorhanden sein
    oder reicht auch das einzelne Auftreten von Huhu?


    Das ist ja der Sinn, dass ein einzelnes Auftreten (Substring) geprüft wird. Schau dir doch die Syntaxbeschreibung in der Hilfe an. ;)

    Deines ist nur falsch herum, so gehts:

    [autoit]

    If StringInStr("\sqlsrv32.dll \oracle.dll", $s_dsn_driver, 1) Then $s_dsn_label &= $s_dsn_name & "|"

    [/autoit]
  • "Or" - Syntax kürzbar?

    • BugFix
    • 13. Juli 2011 um 20:22

    Wenn du exakte Übereinstimmung prüfst (Groß- /Kleinschreibung beachten), kannst du es auch in einem Einzeiler lösen:

    [autoit]

    If StringInStr("Hallo Huhu Hejo", $var, 1) Then

    [/autoit]
  • Unterschrift

    • BugFix
    • 11. Juli 2011 um 22:56
    Zitat von Jonathan

    Wofür brauchst du das denn? :) Hört sich etwas nach Bot an


    Ihr Schwarzseher - momentan sieht es eher nach Textbaustein aus. Think positiv :D

  • WLAN Reichweite durch mehr Stromzufuhr am Adapter erhöhen

    • BugFix
    • 11. Juli 2011 um 22:15

    Du kannst eine eigene Antenne mit stärkerer Sendeleistung für deinen Router basteln. Gibt es Bauanleitungen zur Genüge im Netz. MIt Kosten von ca. 10 EUR kannst du die Reichweite mal locker um 20 - 50 m erhöhen (je nach Umgebung u.U. auch mehr).
    Die erprobtesten Anleitungen findest du für Fritz-Box. Funktionalität garantiert. Wenn du nichts finden solltest (würde mich schwer wundern) kann ich ja meine alte Bauplan-Sammlung ausgraben, hab ich grad keine Lust zu. ;)

  • Arbeitstage in einem Datumsbereich ermitteln (Bundeslandspezifisch)

    • BugFix
    • 11. Juli 2011 um 17:05

    Auf Anregung durch Xeno habe ich auf der Basis meiner (leicht veränderten) Feiertagsfunktion die Funktion _GetWorkingDaysInRange( ) erstellt.
    Damit lassen sich für einen Datumsbereich (der auch mehrere Jahre umfassen kann - ist dann etwas lahm) die entsprechende Anzahl an Arbeitstagen ermitteln.
    Es können entweder ausschließlich Bundesweit gesetzliche Feiertage oder die Feiertage eines bestimmten Bundeslandes (inkl. der Bundesweit gesetzlichen) berücksichtigt werden. Für diesen Parameter kann ein Index oder das Bundeseinheitliche Landeskürzel übergeben werden.
    Die Anzahl der Wochenarbeitstage kann von 5 (Standard) bis 7 gesetzt werden. Heiligabend und Silvester gehen mit 0,5 Tagen in die Rechnung ein.

    Edit 26.08.2015
    Ich habe den Code in Teilen der aktuellen Syntax angepaßt (Verwendung ternärer Operatoren) und einen echten Bug gefixed. Der Parameter für die Anzahl der Arbeitstage pro Woche wurde gar nicht in die Berechnungsfunktion weitergeleitet, sondern nur mit 5 (Mo-Fr) gerechnet. 8|

    Hier nun die korrekte Version v0.2

    AutoIt: _GetWorkingDaysInRange.au3
    ;-- TIME_STAMP   2015-08-26 11:51:04   v 0.2
    
    
    #include-once
    #include <Math.au3>
    #include <Date.au3>
    #include <Array.au3>
    
    
    ;===============================================================================
    ; Function Name:   _GetWorkingDaysInRange
    ; Description::    Ermittelt die Anzahl an Arbeitstagen in einem übergebenen Datumsbereich, auch spezifisch nach Bundesland,
    ;                  auch Jahresübergreifend;
    ;                  Heiligabend und Silvester werden mit 0,5 Arbeitstagen berechnet;
    ;                  Anzahl der Wochenarbeitstage variabel (5-7)
    ; Parameter(s):    $sFromDate         Startdatum
    ;                  $sToDate           Enddatum
    ;                  $vFederalState     Index oder Kürzel des BundesLandes
    ;                                     0  BG  nur Bundesweit gesetzlich
    ;                                     1  SH  Schleswig-Holstein
    ;                                     2  HH  Freie und Hansestadt Hamburg
    ;                                     3  NI  Niedersachsen
    ;                                     4  HB  Freie Hansestadt Bremen
    ;                                     5  NW  Nordrhein-Westfalen
    ;                                     6  HE  Hessen
    ;                                     7  RP  Rheinland-Pfalz
    ;                                     8  BW  Baden-Württemberg
    ;                                     9  BY  Bayern
    ;                                    10  SL  Saarland
    ;                                    11  BE  Berlin
    ;                                    12  BB  Brandenburg
    ;                                    13  MV  Mecklenburg-Vorpommern
    ;                                    14  SN  Freistaat Sachsen|Sachsen
    ;                                    15  ST  Sachsen-Anhalt
    ;                                    16  TH  Thüringen
    ;                  $iCountWorkDays   Anzahl Arbeitstage pro Woche (5=Mo-Fr Standard; 6=Mo-Sa; 7=Mo-So)
    ; Requirement(s):  Funktionen: _Feiertage(), __IsWorkingDay()
    ; Return Value(s): Anzahl der Arbeitstage
    ; Author(s):       BugFix
    ;===============================================================================
    Func _GetWorkingDaysInRange($sFromDate, $sToDate, $vFederalState=0, $iCountWorkDays=5)
    	Local $aSplitFrom = StringSplit($sFromDate, '.', 2)
    	Local $aSplitTo = StringSplit($sToDate, '.', 2)
    	Local $aYears[1] = [$aSplitFrom[2]] ; für jahresübergreifende Daten
    	If $aSplitTo[2] <> $aSplitFrom[2] Then
    		ReDim $aYears[$aSplitTo[2]-$aSplitFrom[2]+1]
    		For $i = 1 To UBound($aYears) -1
    			$aYears[$i] = $aYears[$i-1] +1
    		Next
    	EndIf
    	Local $aHolidays, $iWorkingDayCounter = 0, $n = 0, $sTmpDate
    	Switch UBound($aYears)
    		Case 1    ; Datumswerte in einem Jahr
    			$aHolidays = _Feiertage($aYears[0],$vFederalState, 0, 0, 1)
    			Do
    				$sTmpDate = _DateAdd('D', $n, $aSplitFrom[2] & '/' & $aSplitFrom[1] & '/' & $aSplitFrom[0])
    				$iWorkingDayCounter += __IsWorkingDay($aHolidays, $sTmpDate, $iCountWorkDays)
    				$n += 1
    			Until $aSplitTo[2] & '/' & $aSplitTo[1] & '/' & $aSplitTo[0] = $sTmpDate
    		Case 2    ; Datumswerte in zwei Jahren
    			$aHolidays = _Feiertage($aYears[0],$vFederalState, 0, 0, 1)
    			Do
    				$sTmpDate = _DateAdd('D', $n, $aSplitFrom[2] & '/' & $aSplitFrom[1] & '/' & $aSplitFrom[0])
    				$iWorkingDayCounter += __IsWorkingDay($aHolidays, $sTmpDate, $iCountWorkDays)
    				$n += 1
    				If $aSplitFrom[2] & '/12/31' = $sTmpDate Then $aHolidays = _Feiertage($aYears[1],$vFederalState, 0, 0, 1)
    			Until $aSplitTo[2] & '/' & $aSplitTo[1] & '/' & $aSplitTo[0] = $sTmpDate
    		Case Else ; Datumswerte über mehr als 2 Jahre
    			Local $tmpYear, $index = 0, $sDateEnd = $aSplitTo[2] & '/' & $aSplitTo[1] & '/' & $aSplitTo[0]
    			$aHolidays = _Feiertage($aYears[$index],$vFederalState, 0, 0, 1)
    			Do
    				$sTmpDate = _DateAdd('D', $n, $aSplitFrom[2] & '/' & $aSplitFrom[1] & '/' & $aSplitFrom[0])
    				$iWorkingDayCounter += __IsWorkingDay($aHolidays, $sTmpDate, $iCountWorkDays)
    				$n += 1
    				$tmpYear = StringLeft($sTmpDate, 4)
    				If $tmpYear & '/12/31' = $sTmpDate And $tmpYear & '/12/31' <> $sDateEnd Then
    					$index += 1
    					$aHolidays = _Feiertage($aYears[$index],$vFederalState, 0, 0, 1)
    				EndIf
    			Until $sDateEnd = $sTmpDate
    	EndSwitch
    	Return $iWorkingDayCounter
    EndFunc  ;==>_GetWorkingDaysInRange
    
    
    Func __IsWorkingDay(ByRef $aHolidays, $sDate, $iCountWorkDays)
    	; 5 Werktage, Sa/So frei; 6 Werktage, So frei; 7 Werktage, ./. frei
    	Local $sFreeDay = $iCountWorkDays < 6 ? '6 7' : ($iCountWorkDays = 6 ? '7' : 'N')
    	Local $aSplitDate = StringSplit($sDate, '/', 2)
    	Local $iWeekday = _DateToDayOfWeekISO($aSplitDate[0], $aSplitDate[1], $aSplitDate[2])
    	If @error Then Return 0
    	If StringInStr($sFreeDay, $iWeekday) Then Return 0 ; ist Sa./So. = kein WorkingDay
    	Local $index = _ArraySearch($aHolidays, $sDate, 0, 0, 1)
    	If $index = -1 Then Return 1 ; nicht in Feiertagen (u. kein Sa./So.) = WorkingDay
    	Local $sDay = StringRight($sDate, 5)
    	If $sDay = '12/24' Or $sDay = '12/31' Then Return 0.5 ; Halber Feiertag (24./31. Dez.)
    	Return 0 ; in Feiertagen = kein WorkingDay
    EndFunc  ;==>__IsWorkingDay
    
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;	Funktion _Feiertage($Jahr)
    ;
    ;	gibt die Feiertage des übergebenen Jahres
    ;	als sortiertes Array[TT.MM.JJJJ od. JJJJ/MM/TT][Feiertag][Geltungsbereich][opt. Wochentag] zurück
    ;   Geltungsbereich  Leerstring - kein offizieller Feiertag
    ;                    BG - Bundesweit Gesetzlich
    ;                    Regionalkennzeichen: BB-Brandenburg  BE-Berlin  BW-Baden-Württemberg  BY-Bayern
    ;                                         HB-Bremen  HE-Hessen  HH-Hamburg  MV-Mecklenburg-Vorpommern
    ;                                         NI-Niedersachsen  NW-Nordrhein-Westfalen  RP-Rheinland-Pfalz
    ;                                         SH-Schleswig-Holstein  SL-Saarland  SN-Sachsen
    ;                                         ST-Sachsen-Anhalt  TH-Thüringen
    ;   $vBundesland -1  alle Feiertage mit Geltungsbereich (Bundesländer), (Standard)
    ;                 0  BG  nur Bundesweit gesetzlich
    ;
    ;                Bundesland (inkl. BG)
    ;                 1  SH  Schleswig-Holstein
    ;                 2  HH  Freie und Hansestadt Hamburg
    ;                 3  NI  Niedersachsen
    ;                 4  HB  Freie Hansestadt Bremen
    ;                 5  NW  Nordrhein-Westfalen
    ;                 6  HE  Hessen
    ;                 7  RP  Rheinland-Pfalz
    ;                 8  BW  Baden-Württemberg
    ;                 9  BY  Bayern
    ;                10  SL  Saarland
    ;                11  BE  Berlin
    ;                12  BB  Brandenburg
    ;                13  MV  Mecklenburg-Vorpommern
    ;                14  SN  Freistaat Sachsen|Sachsen
    ;                15  ST  Sachsen-Anhalt
    ;                16  TH  Thüringen
    ;	$DateTyp	 1 - Datum als TT.MM.JJJJ (Standard)
    ;                0 - Datum als JJJJ/MM/TT
    ;   $wDay        0 - Rückabe Wochentag numerisch  1-7 / Sonntag-Samstag
    ;                1 - Rückgabe Wochentag ($array[n][3])
    ;   $sort        0 - gegliedert fix/variabel (Standard), innerhalb sortiert
    ;                1 - komplett sortiert
    ;	Autor	BugFix (bugfix@autoit.de)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func _Feiertage($year, $vBundesland=-1, $DateTyp=1, $wDay=0, $sort=0)
    	Local $4AdvDat, $3AdvDat, $2AdvDat, $1AdvDat, $TotSoDat, $BuBDat, $MutterDat, $ErnteDat, $tmp
    	Local $HDays[33][4], $a, $b, $c, $d, $e, $H1, $H2, $N, $M, $Tempyear, $RestJahr
    	Local $aWDays[8] = [7,'Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Sonnabend']
    	Local $aBuLand[17] = ['BG','SH','HH','NI','HB','NW','HE','RP','BW','BY','SL','BE','BB','MV','SN','ST','TH']
    	If IsString($vBundesland) Then $vBundesland = _ArraySearch($aBuLand, $vBundesland)
    ;fixe Feiertage
    	$HDays[0][0] = $year & "/01/01\Neujahr\BG"
    	$HDays[1][0] = $year & "/01/06\Heilige Drei Könige\BW BY ST"
    	$HDays[2][0] = $year & "/02/14\Valentinstag\"
    	$HDays[3][0] = $year & "/05/01\Maifeiertag\BG"
    	$HDays[4][0] = $year & "/08/15\Mariä Himmelfahrt\BY SL"
    	$HDays[5][0] = $year & "/10/03\Tag der Deutschen Einheit\BG"
    	$HDays[6][0] = $year & "/10/31\Reformationstag\BB MV SN ST TH"
    	$HDays[7][0] = $year & "/11/01\Allerheiligen\BW BY NW RP SL"
    	$HDays[8][0] = $year & "/12/24\Heiligabend\BG"
    	$HDays[9][0] = $year & "/12/25\1. Weihnachtsfeiertag\BG"
    	$HDays[10][0] = $year & "/12/26\2. Weihnachtsfeiertag\BG"
    	$HDays[11][0] = $year & "/12/31\Silvester\BG"
    ;variable Feiertage
    	$a = Mod($year, 19)
    	$b = Mod($year, 4)
    	$c = Mod($year, 7)
    	$H1 = Int($year / 100)
    	$H2 = Int($year / 400)
    	$N = 4 + $H1 - $H2
    	$M = 15 + $H1 - $H2 - Floor (Int((8 * $H1 + 13) / 25))
    	$d = Mod((19 * $a + $M), 30)
    	$e = Mod((2 * $b + 4 * $c + 6 * $d + $N), 7)
    	$EasterDay = ($d + $e = 35) ? 50 : (($d = 28 And $e = 6 And $a > 10) ? 49 : 22 + $d + $e)
    	$EasterMonth = '03'
    	If $EasterDay > 31 Then
    		$EasterDay -= 31
    		$EasterMonth = '04'
    	EndIf
    	$EasterDay = StringRight("0" & $EasterDay, 2)
    	If $year < 1900 Then ; Datumsoperationen nur mgl. wenn > 1900 , Jahr wird konvertiert
    		$RestJahr = StringRight("0" & Mod($year, 100), 2)
    		$Tempyear = _DateIsLeapYear($year) ? 20 & $RestJahr : 19 & $RestJahr
    		$EasterDate = $Tempyear & "/" & $EasterMonth & "/" & $EasterDay
    	Else
    		$EasterDate = $year & "/" & $EasterMonth & "/" & $EasterDay
    	EndIf
    	$WFastDate = _DateAdd( 'd', -52, $EasterDate)
    	$RosDat = _DateAdd( 'd', -48, $EasterDate)
    	$FastDat = _DateAdd( 'd', -47, $EasterDate)
    	$AschDat = _DateAdd( 'd', -46, $EasterDate)
    	$GrDoDat = _DateAdd( 'd', -3, $EasterDate)
    	$KarDat = _DateAdd( 'd', -2, $EasterDate)
    	$OSaDat = _DateAdd( 'd', -1, $EasterDate)
    	$OSoDat = $EasterDate
    	$OMoDat = _DateAdd( 'd', 1, $EasterDate)
    	$HiFaDat = _DateAdd( 'd', 39, $EasterDate)
    	$PfSoDat = _DateAdd( 'd', 49, $EasterDate)
    	$PfMoDat = _DateAdd( 'd', 50, $EasterDate)
    	$FroDat = _DateAdd( 'd', 60, $EasterDate)
    	; Ermitteln nicht von Ostern abhängiger, veränderlicher Feiertage
    	; Muttertag = 2. Sonntag im Mai ABER wenn Pfingsten = 2.Sonntag im Mai dann ist Muttertag am 1. Sonntag
    	; Der 2. Sonntag kann nur zw. dem 8. u. 14.5. liegen
    	For $maitag = 8 To 14
    		If _DateToDayOfWeek($year, 5, $maitag) = 1 Then
    			$maitag = StringRight("0" & $maitag, 2)
    			$MutterDat = $year & "/05/" & $maitag
    			If $MutterDat = $PfSoDat Then
    				$MutterDat = _DateAdd( 'd', -7, $year & "/05/" & $maitag)
    			EndIf
    			ExitLoop
    		EndIf
    	Next
    	; Erntedankfest 1. Sonntag im Oktober (zw. 1. u. 7.10.)
    	For $oktobertag = 1 To 7
    		If _DateToDayOfWeek($year, 10, $oktobertag) = 1 Then
    			$ErnteDat = $year & "/10/" & StringRight("0" & $oktobertag, 2)
    			ExitLoop
    		EndIf
    	Next
    	; 4.Advent = Sonntag vor 25.12. (zw. 18. u. 24.12.)
    	For $deztag = 18 To 24
    		If _DateToDayOfWeek($year, 12, $deztag) = 1 Then
    			$4AdvDat = $year & "/12/" & $deztag
    			$3AdvDat = _DateAdd( 'd', -7, $4AdvDat)
    			$2AdvDat = _DateAdd( 'd', -14, $4AdvDat)
    			$1AdvDat = _DateAdd( 'd', -21, $4AdvDat)
    			$TotSoDat = _DateAdd( 'd', -28, $4AdvDat)
    			$BuBDat = _DateAdd( 'd', -32, $4AdvDat)
    			ExitLoop
    		EndIf
    	Next
    	$HDays[12][0] = $WFastDate & "\Weiberfastnacht\"
    	$HDays[13][0] = $RosDat & "\Rosenmontag\"
    	$HDays[14][0] = $FastDat & "\Fastnacht\"
    	$HDays[15][0] = $AschDat & "\Aschermittwoch\"
    	$HDays[16][0] = $GrDoDat & "\Gründonnerstag\"
    	$HDays[17][0] = $KarDat & "\Karfreitag\BG"
    	$HDays[18][0] = $OSaDat & "\Ostersamstag\"
    	$HDays[19][0] = $OSoDat & "\Ostersonntag\"
    	$HDays[20][0] = $OMoDat & "\Ostermontag\BG"
    	$HDays[21][0] = $HiFaDat & "\Christi Himmelfahrt\BG"
    	$HDays[22][0] = $PfSoDat & "\Pfingstsonntag\"
    	$HDays[23][0] = $PfMoDat & "\Pfingstmontag\BG"
    	$HDays[24][0] = $MutterDat & "\Muttertag\"
    	$HDays[25][0] = $FroDat & "\Fronleichnam\BW BY HE NW RP SL SN TH"
    	$HDays[26][0] = $ErnteDat & "\Erntedankfest\"
    	$HDays[27][0] = $BuBDat & "\Buß- und Bettag\SN"
    	$HDays[28][0] = $TotSoDat & "\Totensonntag\"
    	$HDays[29][0] = $1AdvDat & "\1. Advent\"
    	$HDays[30][0] = $2AdvDat & "\2. Advent\"
    	$HDays[31][0] = $3AdvDat & "\3. Advent\"
    	$HDays[32][0] = $4AdvDat & "\4. Advent\"
    	If $sort Then
    		_ArraySort($HDays)
    	Else
    		_ArraySort($HDays, 0, 0, 11)
    		_ArraySort($HDays, 0, 12)
    	EndIf
    	For $i = 0 To 32
    		$tmp = StringSplit($HDays[$i][0], "\", 2)
    		If $DateTyp Then ; Datum konvertieren zu TT.MM.JJJJ
    			$HDays[$i][0] = StringRight($tmp[0],2) & "." & StringMid($tmp[0],6,2) & "." & StringLeft($tmp[0],4)
    		Else
    			$HDays[$i][0] = $tmp[0]
    		EndIf
    		$HDays[$i][1] = $tmp[1]
    		$HDays[$i][2] = $tmp[2]
    		If $wDay = 1 Then
    			$HDays[$i][3] = $aWDays[_DateToDayOfWeek(StringLeft($tmp[0],4), StringMid($tmp[0],6,2), StringRight($tmp[0],2))]
    		Else
    			$HDays[$i][3] = _DateToDayOfWeek(StringLeft($tmp[0],4), StringMid($tmp[0],6,2), StringRight($tmp[0],2))
    		EndIf
    	Next
    	If $vBundesland > -1 Then
    		Local $aTmp[1][4]
    		For $i = 0 To 32
    			If StringInStr($HDays[$i][2], $aBuLand[$vBundesland], 1) Or StringInStr($HDays[$i][2], 'BG', 1) Then
    				If $aTmp[UBound($aTmp)-1][0] <> '' Then ReDim $aTmp[UBound($aTmp)+1][4]
    				$aTmp[UBound($aTmp)-1][0] = $HDays[$i][0]
    				$aTmp[UBound($aTmp)-1][1] = $HDays[$i][1]
    				$aTmp[UBound($aTmp)-1][2] = $HDays[$i][2]
    				$aTmp[UBound($aTmp)-1][3] = $HDays[$i][3]
    			EndIf
    		Next
    		Return $aTmp
    	EndIf
    	Return $HDays
    EndFunc   ;==>_Feiertage
    Alles anzeigen

    Dateien

    _GetWorkingDaysInRange[0.2].au3 13,35 kB – 328 Downloads
  • Auto-Installation

    • BugFix
    • 11. Juli 2011 um 09:58
    Zitat von Jonathan

    Wer kennt das nicht... Man installiert seinen PC neu, und danach muss man alles neu installieren.


    Ich kenn das nicht. :whistling:
    Image zurückspielen und nach (max.) 10 min ist der PC neu mit allen Standardprogrammen, die im Image sind. :thumbup:

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™