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

  • 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 – 262 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:

  • WinSec

    • BugFix
    • 11. Juli 2011 um 09:25

    Als Beschreibung für dein Skript wäre "Grafische Oberfläche für _StringEncrypt" aussagekräftiger.
    Einiges an deinem Stil solltest du überdenken.

    [autoit]

    If @error Then
    Else
    GUICtrlSetData($Input_Entpacken_Dateipfad,$Pfad)
    EndIf

    [/autoit]

    Warum nicht:

    [autoit]

    If Not @error Then GUICtrlSetData($Input_Entpacken_Dateipfad,$Pfad)

    [/autoit]

    An anderer Stelle verwendest du dann völlig unnütz den Bool Operator Not:

    [autoit]

    If Not $ReadPfad = "" Then

    [/autoit]

    Hier ist sinnvoller:

    [autoit]

    If $ReadPfad <> "" Then

    [/autoit]

    Man sollte es vermeiden Globale Variablen innerhalb von Funktionen zu deklarieren, das gehört an den Skriptanfang.
    Und Einrücken von Code (s. deine If-Statements) sollte eigentlich selbstverständlich sein. Falls du dadrauf keinen Bock hast, laß es von Tidy erledigen.

    Was reitet euch bloß, immer irgendwo ein " © " unterbringen zu wollen? :wacko:

  • AutoIt Showroom - Präsentiere deine Programme ohne Source

    • BugFix
    • 9. Juli 2011 um 11:54

    Betrachte es doch mal ganz nüchtern: (Person A arbeitet 2 jahre an einem Programm).
    Wenn du ein derartiges 2 Mannjahre Projekt erarbeitet hast, dient das mit Sicherheit einem konkreten Ziel (Einsatz im Job z.B.).
    Wenn es für den Job gemacht wurde, darfst du es sowieso nicht veröffentlichen, da es Eigentum deines Arbeitgebers ist. (Selbst wenn diese Klausel nicht im Arbeitsvertrag enthalten ist, gilt sie i.A. als vereinbart)
    Ist es ein rein privates Projekt, ist der beste Schutz die Veröffentlichung mit Quellcode bei einem großen Hoster (z.B. Heise). Dann hast du nämlich einen online dokumentierten Eigentumsnachweis! Wenn es dann von Anderen genutzt wird ohne Angabe der Quelle, kannst du (falls du unbedingt willst) mit Verweis auf deine Erstveröffentlichung dagegen vorgehen. Wobei mir das persönlich nicht sooo wichtig wäre. Falls jemand das Produkt als seines ausgibt, sieht das natürlich anders aus. Und dann hast du, wie schon erwähnt, aufgrund der Erstveröffentlichung keine Probleme einen Eigentumsnachweis zu führen.

    Fazit:
    Es gibt keinen sinnvollen Grund in einem Support-Forum, welches die Veröffentlichung von Dateien ohne Quellcode bereits zuläßt, eine zusätzliche Plattform zu schaffen, auf der ausschließlich Dateien ohne Quellcode veröffentlicht werden.
    Dieses widerspricht dem Geist unseres Forums, dazu gibt es bereits ausreichend Online-Portale.

  • Selbstanpassende GUI / Sidebar

    • BugFix
    • 9. Juli 2011 um 11:02

    Ich hatte dazu mal folgende Lösung erstellt:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

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

    Global Const $AW_SLIDE = 0x40000
    Global Const $AW_HOR_POSITIVE = 0x1 ; left to right
    Global Const $AW_HOR_NEGATIVE = 0x2 ; right to left
    Global Const $AW_ACTIVATE = 0x20000 ; Activates the window
    Global Const $AW_HIDE = 0x10000
    Global Const $iPI = 3.1415926535897932384626433832795
    Global $aChild[3], $aLbl[3], $aGraphics[3], $hWnd, $guiMain, $edit, $closehWnd = 0
    Local $iHTitel = _WinAPI_GetSystemMetrics(4), $iWBorder = _WinAPI_GetSystemMetrics(32)+_WinAPI_GetSystemMetrics(5)
    Local $iWMain = 800, $iHMain = 600, $iWChild = 200, $iHChild = $iHMain-$iHTitel

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

    _GDIPlus_Startup()

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

    Global $guiMain = GUICreate('Main', $iWMain, $iHMain, -1, -1, Default, $GUI_WS_EX_PARENTDRAG)
    $hWnd = WinGetHandle($guiMain)
    GUISetOnEvent(-3, '_ende')
    $edit = GUICtrlCreateEdit('', 15, 15, $iWMain-50, $iHMain-30)
    $aLbl[0] = GUICtrlCreateLabel('', $iWMain-20, 0, 18, 70)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_show")
    $aLbl[1] = GUICtrlCreateLabel('', $iWMain-20, 72, 18, 70)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_show")
    $aLbl[2] = GUICtrlCreateLabel('', $iWMain-20, 144, 18, 70)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "_show")
    $lblBlank = GUICtrlCreateLabel('', $iWMain-20, 216, 18, $iHMain-216)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($guiMain)

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

    $aChild[0] = GUICreate("Child 1", $iWChild, $iHChild-$iWBorder, $iWMain-$iWChild-$iWBorder-21, -21, _
    $WS_CAPTION, $WS_EX_MDICHILD, $guiMain)

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

    $aChild[1] = GUICreate("Child 2", $iWChild, $iHChild-$iWBorder, $iWMain-$iWChild-$iWBorder-21, -21, _
    $WS_CAPTION, $WS_EX_MDICHILD, $guiMain)

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

    $aChild[2] = GUICreate("Child 3", $iWChild, $iHChild-$iWBorder, $iWMain-$iWChild-$iWBorder-21, -21, _
    $WS_CAPTION, $WS_EX_MDICHILD, $guiMain)

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

    GUISetState(@SW_SHOW, $GUImain)
    GUIRegisterMsg($WM_MOVE, '_WM_MOVE')

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

    _ReDrawAngledText()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _ende()
    Exit
    EndFunc

    [/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]))
    Next
    EndFunc

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

    Func _hide()
    Local $hWnd = @GUI_WinHandle
    If $closehWnd Then
    $hWnd = $closehWnd
    $closehWnd = 0
    EndIf
    Return _slideOut($hWnd)
    EndFunc

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

    Func _slideIn($hWnd)
    Local $width = $iWMain-30-$iWChild-$iWBorder-21
    ControlMove($guiMain, '', $edit, 15, 15, $width, $iHMain-30)
    AnimateWindow($hWnd, BitOR($AW_SLIDE, $AW_ACTIVATE, $AW_HOR_NEGATIVE))
    EndFunc

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

    Func _slideOut($hWnd)
    AnimateWindow($hWnd, BitOR($AW_SLIDE, $AW_HIDE, $AW_HOR_POSITIVE))
    Local $width = $iWMain-50
    ControlMove($guiMain, '', $edit, 15, 15, $width, $iHMain-30)
    EndFunc

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

    Func AnimateWindow($hWnd, $dwFlags, $dwTime=100)
    DllCall("user32", 'long', 'AnimateWindow', 'hwnd', $hWnd, 'long', $dwTime, 'long', $dwFlags)
    EndFunc

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

    ; #FUNCTION# ================================================================
    ; Name...........: GDIPlus_SetAngledText
    ; Description ...: Adds text to a graphic object at any angle.
    ; Syntax.........: GDIPlus_SetAngledText($hGraphic, $nText, [$iCentreX, [$iCentreY, [$iAngle , [$nFontName , _
    ; [$nFontSize, [$iARGB, [$iAnchor]]]]]]] )
    ; Parameters ....: $hGraphic - The Graphics object to receive the added text.
    ; $nText - Text string to be displayed
    ; $iCentreX - Horizontal coordinate of horixontal centre of the text rectangle (default = 0 )
    ; $iCentreY - Vertical coordinate of vertical centre of the text rectangle (default = 0 )
    ; $iAngle - The angle which the text will be place in degrees. (default = "" or blank = 0 )
    ; $nFontName - The name of the font to be used (default = "" or Blank = "Arial" )
    ; $nFontSize - The font size to be used (default = "" or Blank = 12 )
    ; $iARGB - Alpha(Transparency), Red, Green and Blue color (0xAARRGGBB) (Default= "" = random color
    ; or Default = Blank = 0xFFFF00FF )
    ; $iAnchor - If zero (default) positioning $iCentreX, $iCentreY values refer to centre of text string.
    ; If not zero positioning $iCentreX, $iCentreY values refer to top left corner of text string.
    ; Return values .: 1
    ; Author ........: Malkey
    ; Modified.......:
    ; Remarks .......: Call _GDIPlus_Startup() before starting this function, and call _GDIPlus_Shutdown()after function ends.
    ; Can enter calculation for Angle Eg. For incline, -ATan($iVDist / $iHDist) * 180 / $iPI , where
    ; $iVDist is Vertical Distance, $iHDist is Horizontal Distance, and, $iPI is Pi, (an added Global Const).
    ; When used with other graphics, call this function last. The MatrixRotate() may affect following graphics.
    ; Related .......: _GDIPlus_Startup(), _GDIPlus_Shutdown(), _GDIPlus_GraphicsDispose($hGraphic)
    ; Link ..........;
    ; Example .......; Yes
    ; ========================================================================================
    Func GDIPlus_SetAngledText($hGraphic, $nText, $iCentreX = 0, $iCentreY = 0, $iAngle = 0, $nFontName = "Arial", _
    $nFontSize = 12, $iARGB = 0xFFFF00FF, $iAnchor = 0)
    Local $x, $y, $iX, $iY, $iWidth, $iHeight
    Local $hMatrix, $iXt, $iYt, $hBrush, $hFormat, $hFamily, $hFont, $tLayout

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

    ; Default values
    If $iAngle = "" Then $iAngle = 0
    If $nFontName = "" Or $nFontName = -1 Then $nFontName = "Arial" ; "Microsoft Sans Serif"
    If $nFontSize = "" Then $nFontSize = 12
    If $iARGB = "" Then ; Randomize ARGB color
    $iARGB = "0xFF" & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2)
    EndIf

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

    $hFormat = _GDIPlus_StringFormatCreate(0)
    $hFamily = _GDIPlus_FontFamilyCreate($nFontName)
    $hFont = _GDIPlus_FontCreate($hFamily, $nFontSize, 1, 3)
    $tLayout = _GDIPlus_RectFCreate($iCentreX, $iCentreY, 0, 0)
    $aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $nText, $hFont, $tLayout, $hFormat)
    $iWidth = Ceiling(DllStructGetData($aInfo[0], "Width"))
    $iHeight = Ceiling(DllStructGetData($aInfo[0], "Height"))

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

    ;Later calculations based on centre of Text rectangle.
    If $iAnchor = 0 Then ; Reference to middle of Text rectangle
    $iX = $iCentreX
    $iY = $iCentreY
    Else ; Referenced centre point moved to top left corner of text string.
    $iX = $iCentreX + (($iWidth - Abs($iHeight * Sin($iAngle * $iPI / 180))) / 2)
    $iY = $iCentreY + (($iHeight + Abs($iWidth * Sin($iAngle * $iPI / 180))) / 2)
    EndIf

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

    ;Rotation Matrix
    $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixRotate($hMatrix, $iAngle, 1)
    _GDIPlus_GraphicsSetTransform($hGraphic, $hMatrix)

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

    ;x, y are display coordinates of center of width and height of the rectanglular text box.
    ;Top left corner coordinates rotate in a circular path with radius = (width of text box)/2.
    ;Parametric equations for a circle, and adjustments for centre of text box
    $x = ($iWidth / 2) * Cos($iAngle * $iPI / 180) - ($iHeight / 2) * Sin($iAngle * $iPI / 180)
    $y = ($iWidth / 2) * Sin($iAngle * $iPI / 180) + ($iHeight / 2) * Cos($iAngle * $iPI / 180)

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

    ;Rotation of Coordinate Axes formulae - To display at x and y after rotation, we need to enter the
    ;x an y position values of where they rotated from. This is done by rotating the coordinate axes.
    ;Use $iXt, $iYt in _GDIPlus_RectFCreate. These x, y values is the position of the rectangular
    ;text box point before rotation. (before translation of the matrix)
    $iXt = ($iX - $x) * Cos($iAngle * $iPI / 180) + ($iY - $y) * Sin($iAngle * $iPI / 180)
    $iYt = -($iX - $x) * Sin($iAngle * $iPI / 180) + ($iY - $y) * Cos($iAngle * $iPI / 180)

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

    $hBrush = _GDIPlus_BrushCreateSolid($iARGB)
    $tLayout = _GDIPlus_RectFCreate($iXt, $iYt, $iWidth, $iHeight)
    _GDIPlus_GraphicsDrawStringEx($hGraphic, $nText, $hFont, $tLayout, $hFormat, $hBrush)

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

    ; Clean up resources
    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    $tLayout = ""
    Return 1
    EndFunc ;==>GDIPlus_SetAngledText

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

    Func _ReDrawAngledText()
    GDIPlus_SetAngledText($hGraphics, 'Pinn 1', 790, 35, 270, "Courier New", 12, 0xFF0000FF)
    GDIPlus_SetAngledText($hGraphics, 'Pinn 2', 790, 107, 270, "Courier New", 12, 0xFF0000FF)
    GDIPlus_SetAngledText($hGraphics, 'Pinn 3', 790, 179, 270, "Courier New", 12, 0xFF0000FF)
    EndFunc

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

    Func _WM_MOVE($hWnd)
    If $hWnd = $guiMain Then _ReDrawAngledText()
    EndFunc

    [/autoit]


    Kurze Erklärung: Mit Klick auf die senkrechten Label werden die Childs ein/ausgeschoben.

    Funktioniert unter XP tadellos, unter Win 7 gibt es Probleme mit _WinAPI_GetSystemMetrics, daher ist das Ergebnis dort nicht überzeugend. Habe bisher allerdings noch nicht nach einer Lösung für Win 7 gesucht.

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™