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. TheLuBu

Beiträge von TheLuBu

  • Ordner auf Server

    • TheLuBu
    • 18. August 2011 um 09:37

    BugFix , ich denke mal das es ein FTP Ordner bzw. ein anderer PC ist, und die Sternchen die IP ;)

    @Rev, in welcher Zeile kommt denn der Fehler?

  • Problem bei Login mit WinHTTP

    • TheLuBu
    • 18. August 2011 um 08:25

    Wenn du in Live HTTP Headers nicht auf Header, sondern auf Generator gehst, kriegst du eine einfache POST Abfrage geliefert. Die kannst du dann so einbauen:

    Live HTTP Headers

    POST /powerq1/login.php loginName=Benutzer&loginPwd=Passwort&btnLogin=Anmelden

    _WinHttp Befehle
    [autoit]

    $hOpen = _WinHttpOpen()
    $hConnect = _WinHttpConnect($hOpen, "192.168.1.233")
    $hRequest = _WinHttpOpenRequest($hConnect, "GET", "/powerq1/login.php")
    _WinHttpSendRequest($hRequest)
    _WinHttpReceiveResponse($hRequest)
    _WinHttpCloseHandle($hRequest)
    $hRequest = _WinHttpOpenRequest($hConnect, "POST", "/powerq1/login.php", "HTTP/1.1")
    _WinHttpSendRequest($hRequest, "Content-Type: application/x-www-form-urlencoded" & @CRLF, "loginName=Benutzer&loginPwd=Passwort&btnLogin=Anmelden")
    _WinHttpReceiveResponse($hRequest)
    _WinHttpCloseHandle($hRequest)

    [/autoit]
  • ShellExecute mit Kommandozeilenparameter?

    • TheLuBu
    • 18. August 2011 um 08:18

    Wenn du deinen Run Befehl debugst, kommt das hier bei raus:

    Code
    C:\Wo auch immer dein Script liegt\pdftk.exeea.pdf burst

    Es fehlt ein leerzeichen hinter dem Dateinamen

    [autoit]

    Run(@ScriptDir & '\pdftk.exe ' & $pdfdatei&' burst')

    [/autoit]
  • Feiertagsrechner

    • TheLuBu
    • 17. August 2011 um 13:01

    Bei meiner Funktion muss jetzt kein Filter mehr rein ;)
    Ich weiß das deine Funktion ebenso die Feiertage enthält, aber ich wollte halt meine eigene basteln, und die liefert halt ein etwas anderes Array zurück ;)

  • Feiertagsrechner

    • TheLuBu
    • 17. August 2011 um 12:02

    Ich habe einen Feiertagskalender geschrieben, vielleicht kann den jemand von euch brauchen.
    Ich weiß, das BugFix einen ähnlichen geschrieben hat, aber meiner gibt wirklich nur die gesetzlichen Feiertage zurück und lässt Tage wie Muttertag, Vatertag, Valentinstag etc. außen vor. Weiterhin kann nach Bundesländern sortiert werden.
    Ich habe es für ein Programm gebraucht, das an Feiertagen nicht laufen soll, sonst aber rund um die Uhr.
    Hier dann das Script:

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name.....: _DateLegalHolidays($sState = "All", $iYear = @Year)
    ; Description.......: Gibt alle deutschen gesetzlichen Feiertage mit Datum in einem Array aus
    ; Parameter(s)......: $sState = Bundesland (Standard = All)
    ; ALL = Alle Feiertage
    ;~ BW = Baden-Württemberg
    ;~ NI = Niedersachsen
    ;~ BY = Bayern
    ;~ NW = Nordrhein-Westfalen
    ;~ BE = Berlin
    ;~ RP = Rheinland-Pfalz
    ;~ BB = Brandenburg
    ;~ SL = Saarland
    ;~ HB = Bremen
    ;~ SN = Sachsen
    ;~ HH = Hamburg
    ;~ ST = Sachsen-Anhalt
    ;~ HE = Hessen
    ;~ SH = Schleswig-Holstein
    ;~ MV = Mecklenburg-Vorpommern
    ;~ TH = Thüringen
    ; Return Value(s)...: Erfolg - Gibt Ein Array aus, in der ersten Dimension stehen die Daten, in der zweiten der Namen des Feiertages.
    ; $avHolidayReturn[0][0] gibt die Anzahl an Feiertagen für das Bundesland an
    ; Fehler
    ; Author(s).........: TheLuBu ([email='LuBu@veytal.com'][/email])
    ; Remarks...........: Using Gauss algorithm for Computus
    ; Copyright.........: TheLuBu ([email='LuBu@veytal.com'][/email])
    ;===============================================================================
    Func _DateLegalHolidays($sState = "All")
    Local $iYear, $avHolidayDate[12][3], $iModStart, $iModDiv, $iModLast, $iHolidayDay, $iHolidayMonth, $iFirstAdvent, $avHolidayReturn[16][2], $iRow = 0
    For $i = 24 To 1 Step -1
    If _DateToDayOfWeek($iYear, 12, $i) = 1 Then
    If StringLen($i) = 1 Then
    $i = "0" & $i
    EndIf
    $iFirstAdvent = $iYear & "/12/" & $i
    ExitLoop
    EndIf
    Next
    $iDivYear = Int($iYear / 100)
    $iModStart = Mod(19 * Mod($iYear, 19) + $iDivYear - Int($iDivYear / 4) - Int(($iDivYear - Int(($iDivYear + 8) / 25) + 1) / 3) + 15, 30)
    $iModDiv = Mod(32 + 2 * Mod($iDivYear, 4) + 2 * Int(Mod($iYear, 100) / 4) - $iModStart - Mod(Mod($iYear, 100), 4), 7)
    $iModLast = $iModStart + $iModDiv - 7 * Int((Mod($iYear, 19) + 11 * $iModStart + 22 * $iModDiv) / 451) + 22
    If $iModLast - 31 < 1 Then
    $iHolidayDay = $iModLast
    Else
    $iHolidayDay = $iModLast - 31
    EndIf
    If $iModLast > 31 Then
    $iHolidayMonth = "04"
    Else
    $iHolidayMonth = "03"
    EndIf
    $avHolidayDate[0][0] = $iYear & "/" & $iHolidayMonth & "/" & $iHolidayDay
    $avHolidayDate[0][1] = "Ostersonntag"
    $avHolidayDate[0][2] = "All"
    $avHolidayDate[1][0] = _DateAdd("D", -2, $avHolidayDate[0][0])
    $avHolidayDate[1][1] = "Karfreitag"
    $avHolidayDate[1][2] = "All"
    $avHolidayDate[2][0] = _DateAdd("D", 1, $avHolidayDate[0][0])
    $avHolidayDate[2][1] = "Ostermontag"
    $avHolidayDate[2][2] = "All"
    $avHolidayDate[3][0] = _DateAdd("D", 39, $avHolidayDate[0][0])
    $avHolidayDate[3][1] = "Christi Himmelfahrt"
    $avHolidayDate[3][2] = "All"
    $avHolidayDate[4][0] = _DateAdd("D", 50, $avHolidayDate[0][0])
    $avHolidayDate[4][1] = "Pfingstmontag"
    $avHolidayDate[4][2] = "All"
    $avHolidayDate[5][0] = _DateAdd("D", 60, $avHolidayDate[0][0])
    $avHolidayDate[5][1] = "Fronleichnam"
    $avHolidayDate[5][2] = "BW,BY,HE,NW,RP,SL"
    $avHolidayDate[6][0] = @YEAR & "/10/03"
    $avHolidayDate[6][1] = "Tag der Deutschen Einheit"
    $avHolidayDate[6][2] = "All"
    $avHolidayDate[7][0] = @YEAR & "/01/01"
    $avHolidayDate[7][1] = "Neujahr"
    $avHolidayDate[7][2] = "All"
    $avHolidayDate[8][0] = @YEAR & "/05/01"
    $avHolidayDate[8][1] = "Maifeiertag"
    $avHolidayDate[8][2] = "All"
    $avHolidayDate[9][0] = @YEAR & "/11/01"
    $avHolidayDate[9][1] = "Allerheiligen"
    $avHolidayDate[9][2] = "BW,BY,NW,RP,SL"
    $avHolidayDate[10][0] = @YEAR & "/12/25"
    $avHolidayDate[10][1] = "1. Weihnachtstag"
    $avHolidayDate[10][2] = "All"
    $avHolidayDate[11][0] = @YEAR & "/12/26"
    $avHolidayDate[11][1] = "2. Weihnachtstag"
    $avHolidayDate[11][2] = "All"
    $avHolidayDate[12][0] = @YEAR & "/01/06"
    $avHolidayDate[12][1] = "Heilige Drei Könige"
    $avHolidayDate[12][2] = "BW,BY,ST"
    $avHolidayDate[13][0] = @YEAR & "/08/15"
    $avHolidayDate[13][1] = "Maria Himmelfahrt"
    $avHolidayDate[13][2] = "SL"
    $avHolidayDate[14][0] = @YEAR & "/10/31"
    $avHolidayDate[14][1] = "Reformationstag"
    $avHolidayDate[14][2] = "BB,MV,SN,ST,TH"
    $avHolidayDate[15][0] = _DateAdd("D", -11, $iFirstAdvent)
    $avHolidayDate[15][1] = "Buß und Bettag"
    $avHolidayDate[15][2] = "SA"
    If $sState <> "All" Then
    For $i = 0 To UBound($avHolidayDate) - 1
    If $avHolidayDate[$i][2] = "All" Or $avHolidayDate[$i][2] = $sState Then
    $iRow += 1
    $avHolidayReturn[$iRow][0] = $avHolidayDate[$i][0]
    $avHolidayReturn[$iRow][1] = $avHolidayDate[$i][1]
    EndIf
    Next
    ReDim $avHolidayReturn[$iRow + 1][2]
    $avHolidayReturn[0][0] = $iRow
    Return $avHolidayReturn
    Else
    Return $avHolidayDate
    EndIf
    EndFunc ;==>_DateLegalHolidays

    [/autoit]
  • _ExcelSaveAsEX (Excel 2007-2010)

    • TheLuBu
    • 16. August 2011 um 12:01

    Da die Standardfunktion von AutoIt für die neuen Excelversionen nicht mehr funktioniert, hab ich eine neue Funktion dafür geschrieben.
    Derzeit kann man als xlsx, xlsb, xlsm, csv, txt, prn und xls Speichern, andere Dateiendungen such ich noch raus und editier sie dann hier rein

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name: _ExcelSaveAsEX($oExcel, $Fileformat, $NewFilepath, $Close = True)
    ; Description: Speichert eine Exceldatei in einem bestimmten Format ab
    ; Parameter(s): $oExcel Ein Excelobject, wie es von _ExcelbookOpen oder _ExcelbookNew zurückgegeben wird
    ; $Fileformat Der Dateityp, in dem gespeichert werden soll (xlsx, xlsb, xlsm, xls, csv, txt, prn)
    ; $NewFilepath Speicherort und Dateiname der neuen Datei
    ; $Close = True Soll nach dem Speichern das Objekt geschlossen werden? (Standard = True)
    ; Return Value(s): Erfolg Gibt 1 zurück
    ; Fehler @error 1 - $oExcel ist kein Objekt
    ; 2 - $Fileformat ist keine bekannte Dateiendung oder Formatnummer
    ; Author(s): TheLuBu ([email='LuBu@veytal.com'][/email])
    ; Copyright: TheLuBu ([email='LuBu@veytal.com'][/email])
    ;===============================================================================
    Func _ExcelSaveAsEX($oExcel, $Fileformat, $NewFilepath, $Close = True)
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    Switch $Fileformat
    Case 51, "xlsx", ".xlsx"
    $Fileformat = 51
    Case 50, "xlsb", ".xlsb"
    $Fileformat = 50
    Case 52, "xlsm", ".xlsm"
    $Fileformat = 52
    Case 6, "csv", ".csv"
    $Fileformat = 6
    Case -4158, "txt", ".txt"
    $Fileformat = -4158
    Case 36, "prn", ".prn"
    $Fileformat = 36
    Case 56, "xls", ".xls"
    $Fileformat = 56
    Case Else
    Return SetError(2, 0, 0)
    EndSwitch
    With $oExcel
    .Application.DisplayAlerts = False ; Schaltet Fehlermeldungen bei Excel aus
    .ActiveWorkBook.SaveAs($NewFilepath, $Fileformat)
    If $Close Then
    .ActiveWorkbook.Close ; Schließt die Tabelle
    .Quit ; Schließt das Workbook
    EndIf
    EndWith
    Return 1
    EndFunc ;==>_ExcelSaveAsEX

    [/autoit]
  • Array variable has incorrect number of subscripts

    • TheLuBu
    • 16. August 2011 um 10:31
    [autoit]

    for $i = 0 to UBound($a) - 1
    GUICtrlCreateListViewItem($a[$i],$lv)
    Next

    [/autoit]

    $a[0] von _Stringbetween ist keine Anzahl

  • copy job

    • TheLuBu
    • 25. Juli 2011 um 15:01

    du hast nichts von Unterordnern gesagt ^^
    Wenn du mit Unterordnern durchsuchen und kopieren arbeiten willst, dann schau dir mal Rekursive Filesuche von Bugfix an, die bezieht auch Unterordner mit ein.

    Zu beachten wäre noch, das du die Deklaration von $Path mit änderst, also bei einem weiteren Ordner wäre es

    [autoit]

    Local $Path[3][3]

    [/autoit]
  • copy job

    • TheLuBu
    • 25. Juli 2011 um 12:56
    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #Include <Array.au3>

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

    Local $Path[2][3]
    $Path[0][0] = "C:\Users\" & @UserName & "\AppData\Local\test"
    $Path[0][1] = "D:\Backup\test"
    $Path[0][2] = "*.pdf"
    $Path[1][0] = "C:\Users\" & @UserName & "\Favorites"
    $Path[1][1] = "D:\Backup\Favorites"
    $Path[1][2] = "*"

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

    For $i = 0 To UBound($Path) - 1
    $List = _FileListToArray($Path[$i][0], $Path[$i][2])
    If @error = 4 Then
    ConsoleWrite("Im Ordner " & $Path[$i][0] & " wurden keine Dateien gefunden")
    ElseIf @error = 1 Then
    ConsoleWrite("Ordner " & $Path[$i][0] & " wurden nicht gefunden")
    Else
    For $k = 1 To $List[0]
    FileCopy($Path[$i][0] & "\" & $List[$k], $Path[$i][1] & "\" & $List[$k], 8)
    Next
    EndIf
    Next

    [/autoit]

    Hatte doch geschrieben ERSETZEN, nicht drüber schreiben ^^

    -EDIT- Hab grade gemerkt, das 2mal auf den Ordner geprüft wird, hier jetzt das angepasste

  • DirectShow EventLog überwachen

    • TheLuBu
    • 25. Juli 2011 um 12:50

    Geh mal auf "Ereigniseigenschaften" auf der rechten Seite, da dann auf Details, XML Ansicht und dann such den Wert zwischen
    <Channel>WERT</Channel>
    Ist das "DirectShow" ?

  • copy job

    • TheLuBu
    • 25. Juli 2011 um 12:33

    Poste bitte deinen gesamten Code, in meinem Code hab ich das nicht ^^

  • copy job

    • TheLuBu
    • 25. Juli 2011 um 11:40

    ach mist ^^ hab zweimal $I genutzt, dann kommt der mit den Indexen durcheinander ^^
    Ersetz mal bitte die Zeilen 17-19 hiermit

    [autoit]


    For $k = 1 To $List[0]
    FileCopy($Path[$i][0] & "\" & $List[$k], $Path[$i][1] & "\" & $List[$k], 8)
    Next

    [/autoit]
  • copy job

    • TheLuBu
    • 25. Juli 2011 um 11:13

    Wenn Du es so stehen lässt, und der Ordner nicht existiert dann beendet er das ganze Script.
    Ich habe dir jetzt mal ein Array gebastelt und alles in eine Schleife gesetzt. Der Code wird dadurch kürzer und du musst nur einmal auf Fehler abfragen, das gilt dann für alle durchsuchten Ordner.

    Spoiler anzeigen
    [autoit]

    Local $Path[2][3]
    $Path[0][0] = "C:\Users\" & @UserName & "\AppData\Local\test"
    $Path[0][1] = "D:\Backup\test"
    $Path[0][2] = "*.pdf"
    $Path[1][0] = "C:\Users\" & @UserName & "\Favorites"
    $Path[1][1] = "D:\Backup\Favorites"
    $Path[1][2] = "*"

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

    For $i = 0 To UBound($Path) - 1
    $List = _FileListToArray($Path[$i][0], $Path[$i][2])
    If Not @error = 4 Then
    $exist = DirGetSize($Path[$i][0])
    If $exist = -1 Then
    ConsoleWrite($Path[$i][0] & " wurde nicht gefunden")
    ContinueLoop
    EndIf
    For $i = 1 To $List[0]
    FileCopy($Path[$i][0] & "\" & $List[$i], $Path[$i][1] & "\" & $List[$i], 8)
    Next
    Else
    ConsoleWrite("Im Ordner " & $Path[$i][0] & " wurden keine Dateien gefunden")
    EndIf
    Next

    [/autoit]
  • copy job

    • TheLuBu
    • 25. Juli 2011 um 10:50

    ich habe da ein

    [autoit]

    Exit

    [/autoit]

    eingebaut, du könntest aber auch nur entweder ( bei einer Funktion) Return oder bei einer Schleife Exitloop bzw. Continueloop nutzen. Ich seh deinen restlichen Code aber leider nicht, den müsstest du auch posten, damit ich weiter helfen kann ;)

  • Paralleles arbeiten

    • TheLuBu
    • 25. Juli 2011 um 10:47

    richtig

  • Paralleles arbeiten

    • TheLuBu
    • 25. Juli 2011 um 10:22

    Das hier hatte ich mal rausgesucht für einen Debugger:

    Spoiler anzeigen
    [autoit]

    If @Compiled Then
    If StringInStr($cmdlineraw, "*") = 0 Then ; Wenn kein Sternchen in der Kommandozeile steht
    If StringInStr($cmdlineraw, "-admin") = 0 Then ; Wenn nicht im Adminmodus gestartet wurde
    Opt("TrayIconHide", 1) ; Versteckt das Icon
    If @Compiled Then ; Wenn das Script compiliert ist
    $x = Run(@ScriptName & " *") ; Startet die kompilierte Exe normal
    Else ;Wenn das Script nicht compiliert ist
    $x = Run('"Autoit3.exe" "' & @ScriptFullPath & '" *') ; Startet das Script normal
    EndIf
    ProcessWait($x, 5) ; wartet auf das neu gestartete Script
    While ProcessExists($x) ; Während das neue Script läuft
    If WinActive("AutoIt Error") Then
    Sleep(100)
    _FileWriteLog(@ScriptDir & "\MIS Server\server.log", "Fehler im Programm")
    _OnAutoItError(WinGetText("AutoIt Error")) ; wartet auf das AutoIT Fehlerfenster
    EndIf
    Sleep(20) ;Schläft 20 Milisekunden
    WEnd
    Exit
    Else ; Wenn das Programm im Adminmodus gestartet wird, dann
    Opt("TrayIconHide", 1)
    If @Compiled Then
    $x = Run(@ScriptName & " * -admin") ;Startet die kompilierte mit Adminrechten
    Else
    $x = Run('"Autoit3.exe" "' & @ScriptFullPath & '" * -admin'); Startet das Script mit Adminrechten
    EndIf
    ProcessWait($x, 5)
    While ProcessExists($x) ; Während das neue Script läuft
    If WinActive("AutoIt Error") Then
    Sleep(100)
    _FileWriteLog(@ScriptDir & "\MIS Server\server.log", "Fehler im Programm")
    _OnAutoItError(WinGetText("AutoIt Error")) ; wartet auf das AutoIT Fehlerfenster
    EndIf
    Sleep(20) ;Schläft 20 Milisekunden
    WEnd
    Exit
    EndIf
    EndIf
    EndIf

    [/autoit]

    Wenn du dir es anschaust, siehst du, das du auch 2 Programme in einer Datei haben kannst, jeweils über Parameter beim starten ( Ich hatte einen Adminmodus eingebaut, um generelle Einstellungen zu ändern, die der normale Benutzer nicht ändern dürfen sollte ;) )

  • copy job

    • TheLuBu
    • 25. Juli 2011 um 10:18

    Benutz doch bitte die AutoitCode Buttons, um den Text richtig darzustellen.
    Du musst noch eine Abfrage machen, wenn keine Dateien gefunden werden.

    [autoit]

    $Path = "C:\Users\"&@UserName&"\AppData\Local\test"
    $Newpath = "D:\Backup\test"
    $sFilter = "*.pdf"
    $List = _Filelisttoarray($Path, $sFilter)
    If NOT @error = 4 Then
    $exist = dirgetsize($path)
    If $exist = -1 then
    MsgBox(16, "Fehler", "Verzeichnis wurde nicht gefunden")
    Exit
    EndIF
    For $i = 1 To $List[0]
    FileCopy($Path&"\"&$List[$i], $newpath&"\"&$List[$i], 8)
    Next
    Else
    Msgbox(16, "Fehler", "Es wurden keine Dateien gefunden")
    EndIf

    [/autoit]
  • SoftCreator - 2tes Problem

    • TheLuBu
    • 25. Juli 2011 um 10:15

    was du machen könntest, wäre noch ein weiteres Feld (Falls-Schleife ENDE) in der Linken Listview, die das ganze beendet.
    Wenn du das nicht machst, wären keine verschachtelten If´s möglich.

  • copy job

    • TheLuBu
    • 25. Juli 2011 um 09:37

    Return geht nur in einer Funktion, dachte der Ausschnitt wäre aus einer.
    Dann mach mal folgendes statt

    [autoit]

    $exist = dirgetsize($path)
    If $exist = -1 then Return SetError(1, 1, '')

    [/autoit][autoit]

    $exist = dirgetsize($path)
    If $exist = -1 then
    MsgBox(16, "Fehler", "Verzeichnis wurde nicht gefunden")
    Exit
    EndIF

    [/autoit]
  • copy job

    • TheLuBu
    • 25. Juli 2011 um 09:03

    Statt

    [autoit]

    If Not FileExists($Path) Then Return SetError(1, 1, '')
    If $sFilter = -1 Or $sFilter = Default Then $sFilter = "*.*"

    [/autoit]


    Setz mal das hier ein

    [autoit]

    $exist = dirgetsize($path)
    If $exist = -1 then Return SetError(1, 1, '')

    [/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™