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

  • Dateien installieren+Status

    • BugFix
    • 12. April 2007 um 09:05

    Ich befürchte, mit AutoIt-Mitteln gar nicht.
    AutoIt kann nicht mehrere Prozesse parallel laufen lassen. Es wird alles nacheinander abgearbeitet. Also Kopiervorgang wird gestartet und erst wenn er vorbei ist, kannst du eine neue Aktion starten.
    Ich hatte es bisher nicht gefunden, aber vielleicht läßt sich doch irgendwie vorher die 'Eieruhr' starten und am Ende des Vorgangs wieder schließen.

  • DefragAll

    • BugFix
    • 11. April 2007 um 22:04

    [Blockierte Grafik: http://img-up.net/img/russisch8mC.PNG] :D

  • DefragAll

    • BugFix
    • 11. April 2007 um 19:09

    \off topic
    Dein Avatar gefällt mir: "Meister der idiotischen Kommentare" :D

  • Bundesländer

    • BugFix
    • 10. April 2007 um 14:57

    Hi,
    Feiertagsberechnung hatte ich schon mal gemacht. Findest du auch bei den Skripten. Hier nochmal die Funktion:

    Spoiler anzeigen
    [autoit]

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Funktion _Feiertage($Jahr)
    ;
    ; gibt die Feiertage des übergebenen Jahres
    ; als sortiertes Array[TT.MM.JJJJ \ Feiertag] zurück
    ; (Trennzeichen veränderbar über Variable: $Delimiter)
    ;
    ; Autor BugFix ([email='bugfix@autoit.de'][/email])
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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

    #include <math.au3>
    #include <Date.au3>
    #include <Array.au3>

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

    Func _Feiertage($year)
    Dim $4AdvDat, $3AdvDat, $2AdvDat, $1AdvDat, $TotSoDat, $BuBDat, $MutterDat, $ErnteDat, $tmp, $Delimiter = "\"
    Dim $HDays[32]

    ;fixe Feiertage
    $HDays[0] = $year & "/01/01" & $Delimiter & "Neujahr"
    $HDays[1] = $year & "/01/06" & $Delimiter & "Heilige Drei Könige"
    $HDays[2] = $year & "/02/14" & $Delimiter & "Valentinstag"
    $HDays[3] = $year & "/05/01" & $Delimiter & "Maifeiertag"
    $HDays[4] = $year & "/10/03" & $Delimiter & "Tag der Deutschen Einheit"
    $HDays[5] = $year & "/10/31" & $Delimiter & "Reformationstag"
    $HDays[6] = $year & "/11/01" & $Delimiter & "Allerheiligen"
    $HDays[7] = $year & "/12/24" & $Delimiter & "Heiligabend"
    $HDays[8] = $year & "/12/25" & $Delimiter & "1. Weihnachtsfeiertag"
    $HDays[9] = $year & "/12/26" & $Delimiter & "2. Weihnachtsfeiertag"
    $HDays[10] = $year & "/12/31" & $Delimiter & "Silvester"

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

    ;variable Feiertage
    $aa = Mod($year, 19)
    $bb = Mod($year, 4)
    $cc = Mod($year, 7)
    $H1 = Int($year / 100)
    $H2 = Int($year / 400)
    $N = 4 + $H1 - $H2
    $MM = 15 + $H1 - $H2 - _Floor (Int((8 * $H1 + 13) / 25))
    $dd = Mod((19 * $aa + $MM), 30)
    $ee = Mod((2 * $bb + 4 * $cc + 6 * $dd + $N), 7)
    If $dd + $ee = 35 Then
    $Easter = 50
    Else
    If $dd = 28 And $ee = 6 And $aa > 10 Then
    $Easter = 49
    Else
    $Easter = 22 + $dd + $ee
    EndIf
    EndIf
    If $Easter < 32 Then
    $EasterDay = $Easter
    $EasterMonth = "03"
    Else
    $EasterDay = $Easter - 31
    $EasterMonth = "04"
    EndIf
    If $EasterDay < 10 Then
    $EasterDay = "0" & $EasterDay
    EndIf

    If $year < 1900 Then ;Datumsoperationen nur mgl. wenn > 1900 , Jahr wird konvertiert
    $RestJahr = Mod($year, 100)
    If _DateIsLeapYear($year) Then
    If $RestJahr < 10 Then
    $RestJahr = "0" & $RestJahr
    EndIf
    $Tempyear = 20 & $RestJahr
    Else
    If $RestJahr < 10 Then
    $RestJahr = "0" & $RestJahr
    EndIf
    $Tempyear = 19 & $RestJahr
    EndIf
    $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
    If $maitag < 10 Then
    $maitag = "0" & $maitag
    EndIf
    $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
    $oktobertag = "0" & $oktobertag
    $ErnteDat = $year & "/10/" & $oktobertag
    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[11] = $WFastDate & $Delimiter & "Weiberfastnacht"
    $HDays[12] = $RosDat & $Delimiter & "Rosenmontag"
    $HDays[13] = $FastDat & $Delimiter & "Fastnacht"
    $HDays[14] = $AschDat & $Delimiter & "Aschermittwoch"
    $HDays[15] = $GrDoDat & $Delimiter & "Gründonnerstag"
    $HDays[16] = $KarDat & $Delimiter & "Karfreitag"
    $HDays[17] = $OSaDat & $Delimiter & "Ostersamstag"
    $HDays[18] = $OSoDat & $Delimiter & "Ostersonntag"
    $HDays[19] = $OMoDat & $Delimiter & "Ostermontag"
    $HDays[20] = $HiFaDat & $Delimiter & "Christi Himmelfahrt"
    $HDays[21] = $PfSoDat & $Delimiter & "Pfingstsonntag"
    $HDays[22] = $PfMoDat & $Delimiter & "Pfingstmontag"
    $HDays[23] = $MutterDat & $Delimiter & "Muttertag"
    $HDays[24] = $FroDat & $Delimiter & "Fronleichnam"
    $HDays[25] = $ErnteDat & $Delimiter & "Erntedankfest"
    $HDays[26] = $BuBDat & $Delimiter & "Buß- und Bettag"
    $HDays[27] = $TotSoDat & $Delimiter & "Totensonntag"
    $HDays[28] = $1AdvDat & $Delimiter & "1. Advent"
    $HDays[29] = $2AdvDat & $Delimiter & "2. Advent"
    $HDays[30] = $3AdvDat & $Delimiter & "3. Advent"
    $HDays[31] = $4AdvDat & $Delimiter & "4. Advent"
    _ArraySort($HDays)
    ;Datum konvertieren zu TT.MM.JJJJ
    For $i = 0 To 31
    $tmp = StringSplit($HDays[$i], $Delimiter)
    $HDays[$i] = StringMid($tmp[1], 9) & "." & StringMid($tmp[1], 6, 2) & "." & StringMid($tmp[1], 1, 4) & $Delimiter & $tmp[2]
    Next
    Return $HDays
    EndFunc ;==>_Feiertage

    [/autoit]

    Dateien

    _Feiertage(Jahr).au3 5,75 kB – 362 Downloads
  • Daten (TXT File) in einem Excel Sheet speichern

    • BugFix
    • 10. April 2007 um 14:47

    Als erstes empfehle ich dir, nicht den Umweg über die TXT-Datei zu gehen, sondern beim Zusammenstellen der Daten im Überwachungsscript die Daten gleich in ein Array zu speichern um sie dann von dort in Excel zu übertragen.

    Erstelle zuerst (kannst du per Hand machen) ein Exceldokument mit einem Sheet für jeden Server. Falls die Servernamen wechseln, solltest du das automatisieren.

    Wenn deine Daten zusammengestellt sind:
    - Exceldokument öffnen ( _ExcelBookOpen($sFilePath, $fVisible = 1, $fReadOnly = False) )
    - benötigten Sheet aktivieren ( _ExcelSheetActivate($oExcel, $vSheet) )
    - Daten eintragen ( _ExcelWriteCell($oExcel, $sValue, $sRangeOrRow, $iColumn = 1) )
    du kannst ja, z.B. in A1 hinterlegen, welche Zelle zuletzt beschrieben wurde und dies vor dem neuen Schreibvorgang auslesen ( _ExcelReadCell($oExcel, $sRangeOrRow, $iColumn = 1) ) um die Addressierung vorzunehmen
    - Exceldokument speichern ( _ExcelBookSave($oExcel, $fAlerts = 0) )
    - Exceldokument schließen ( _ExcelBookClose($oExcel, $fSave = 1, $fAlerts = 0) )

  • Daten (TXT File) in einem Excel Sheet speichern

    • BugFix
    • 10. April 2007 um 13:01

    Benutze Excel-UDF hier im EN-Forum.

  • AutoIt Window Info zeigt nicht genug Infos an

    • BugFix
    • 10. April 2007 um 12:03

    Prüf doch mal mit WinGetHandle( ) ob es wirklich nur ein Fenster ist, das umgabaut wird oder nicht doch unterschiedliche Fenster gleichen Titels.

  • Automatisch ein Tab ?

    • BugFix
    • 9. April 2007 um 21:28

    Schau dir mal die Funktion Assign( ) an.
    Oder deklariere ein ausreichend großes Array für die Controls.

  • was iss das? LAND_WIW_FILE_JGSDB

    • BugFix
    • 8. April 2007 um 09:44

    Geraten: Wer ist wo? - Datenbankdatei

  • Problem mit Eval und Array's

    • BugFix
    • 8. April 2007 um 09:34

    Oder um die Funktion Eval zu verdeutlichen:

    Eval() baut aus einem String den Variablennamen auf und zwar aus jedem einzelnen Zeichen:

    [autoit]

    $Variable = 10
    $outEval = Eval("V"&"a"&"r"&"i"&"a"&"b"&"l"&"e")
    MsgBox(0,"",$outEval) ; zeigt 10

    [/autoit]

    Geht nicht mit Arraynamen!

  • RTF Edit multi?

    • BugFix
    • 8. April 2007 um 07:55

    Wenn du mit Funktionen arbeitest, die weder in der Prod noch in der Beta enthalten sind, dann solltest du sie in deinem Code anführen oder zumindest drauf verlinken (was ich hiermit tue: Lazycat's RTF Plugin).
    Eine Kristallkugel haben schließlich die wenigsten von uns. :D
    Zum Problem selber, da schau ich nochmal.

    Kurze Antwort:
    Dieses Control kannst du nicht in ein Tab einbetten.

  • Dateien installieren+Status

    • BugFix
    • 7. April 2007 um 13:57
    Zitat

    Ich denke, dass die Funktion (die sich übrigends FileInstall() nennt) für deine Verwendungszwecke besser geeignet ist.....


    Und falls es mal ein paar Dateien mehr sind, kannst du dir das Script auch automatisch mit dem Install-Script-Generator erstellen lassen.

  • Dateien installieren+Status

    • BugFix
    • 7. April 2007 um 13:09

    Guckst du hier auch: Dateien / Ordner rekursiv lesen
    ;)

  • Zielordner Auswahlmöglichkeit

    • BugFix
    • 6. April 2007 um 19:04

    Als grundsätzlichen Tipp mal überlegen, generell 'OnEventMode' zu verwenden. Da treten solche Probleme nicht auf.

  • Dateien installieren+Status

    • BugFix
    • 6. April 2007 um 18:25

    Oder, wenn du das Kopier-Avi dabei haben möchtest:

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    Dim $arFiles[100] ; zu kopierende Dateien
    For $i = 0 To 99
    $arFiles[$i] = "Datei " & $i ; nur als Muster
    Next
    $Form1 = GUICreate("Kopieren von Dateien . . .", 343, 194, -1, -1, $WS_CAPTION, $WS_EX_TOPMOST)
    $n1=GUICtrlCreateAvi (@SystemDir & "\shell32.dll",160, 40,20)
    GUICtrlSetState ($n1, 1)
    $Label = GUICtrlCreateLabel("", 70, 93, 203, 17, $SS_CENTER)
    $status = GUICtrlCreateProgress(20, 120, 303, 17 ,$PBS_SMOOTH)
    GUISetState()

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

    While 1
    Sleep(100)
    For $i = 0 To UBound($arFiles)-1
    ;Kopieren.. FileCopy( )
    GUICtrlSetData($Label, $arFiles[$i])
    GUICtrlSetData($status, Round(100/UBound($arFiles)*$i))
    Sleep(50)
    Next
    Exit
    WEnd

    [/autoit]


    Kannst du natürlich noch um die Anzeige der Prozentzahl erweitern.

  • Router - Internet trennen/verbinden

    • BugFix
    • 6. April 2007 um 08:22

    Eh du selbst was schreibst, probier doch mal ob der Router mit dem Barricade-Monitor von FRIFA (Barricade-Monitor 6.2.0.4) zusammenarbeitet. Da hast du schon alle Optionen dabei. Ist mit vielen Routern kompatibel.

  • Msgbox solange kopiert wird

    • BugFix
    • 5. April 2007 um 19:59

    Erstelle eine kleine GUI: 'bin beschäftigt'
    setze sie auf @GUI_SHOW während des Sicherungsvorgangs und danach auf @GUI_HIDE

    [autoit]

    $Busy = GUICreate("",160,110,-1,-1,$WS_POPUP)
    GUISetBkColor(0x708090)
    $label_busy = GUICtrlCreateLabel("Einen Moment bitte." & @LF & @LF & "Die Sicherung läuft...", 20, 15, 120, 100, $SS_CENTER)
    GUICtrlSetFont(-1, 10, Default,2)
    GUICtrlSetColor(-1, 0xF0E68C)

    [/autoit]
  • Hilfe brauche ein script

    • BugFix
    • 4. April 2007 um 23:21
    Zitat

    wenn der mehrere tasten trücken soll in bestimmten zeit abständen


    Gib mal Bsp.
    Verstehe nicht genau, was du möchtest.
    - mehrere Tasten nacheinander?
    - oder gleichzeitig?
    - zur gleichen Farge?
    - oder zu anderer Farbe?

  • Hilfe brauche ein script

    • BugFix
    • 4. April 2007 um 22:28
    [autoit]

    HotKeySet("^e", "Ende") ; Beenden mit STRG+e
    While 1
    If PixelGetColor(475,24) <> 0xFFFFFF Then
    Sleep(100)
    Send("8")
    Sleep(5000)
    Send("2")
    EndIf
    WEnd
    Func Ende()
    Exit
    EndFunc

    [/autoit]
  • Variablen aufsplitten!?

    • BugFix
    • 4. April 2007 um 15:17

    So, nun brauchst du nur noch für die User-Nummern anpassen:

    EDIT
    Ich hab den Code nochmal etwas 'gesäubert'. Einiges war ja nur zur Demo:

    Spoiler anzeigen
    [autoit]

    #include <string.au3>
    Dim $arUser, $string = "admin:99:*user:1:*user:12:*user:3:*user:4:*user:5:*"

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

    $arUser = StringSplit($string, "*")
    If Not IsArray($arUser) Then
    MsgBox(16, "Fehler", "Userlist ist leer")
    Else
    Dim $arUserList[$arUser[0]-1]
    MsgBox(0, '', $arUser[0]-1 & " User sind online")
    For $i = 1 To $arUser[0]-1 ; da auch am Ende des Strings ein Trennzeichen ist, folgt noch ein leerer String
    $var = StringTrimRight($arUser[$i], 1) & ")"
    $arUserList[$i-1] = StringReplace($var, ":", "(")
    Next
    For $i = 0 To UBound($arUserList)-1
    $var = _StringBetween($arUserList[$i], "(", ")")
    Switch $var[0]
    Case 4
    ; code für User 4
    Case 12
    ; code für User 12
    ; etc.
    EndSwitch
    Next
    EndIf

    [/autoit]

    Wenn du die Bezeichnungen (admin, user) gar nicht auswertest, sondern nur die Werte zwischen den ":" kannst du das noch mehr schrumpfen:

    Spoiler anzeigen
    [autoit]

    #include <string.au3>
    Dim $arUser, $string = "admin:99:*user:1:*user:12:*user:3:*user:4:*user:5:*"

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

    $arUser = StringSplit($string, "*")
    If Not IsArray($arUser) Then
    MsgBox(16, "Fehler", "Userlist ist leer")
    Else
    MsgBox(0, '', $arUser[0]-1 & " User sind online")
    For $i = 1 To $arUser[0]-1
    $var = _StringBetween($arUser[$i], ":", ":")
    Switch $var[0]
    Case 4
    ; code für User 4
    Case 12
    ; code für User 12
    ; etc.
    EndSwitch
    Next
    EndIf

    [/autoit]

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™