Beiträge von bobekos

    Habe Heute dieses Angebot gesehen:
    https://www.cyberport.de/cybersale?APID=20


    Ansonsten benutze ich persönlich einen RaspberryPi (ca.30€) als NAS (ext.USB Festplatte). Hier ist aber die Geschwindigkeit eher langsam weil der Raspi keinen s-ata Controller besitzt. Das Backup funktioniert aber trotzdem da mein Raspi 24h läuft. Über Funksteckdosen kann ich die Platte dann nach Bedarf ein - und ausschalten. Für reines Backup reicht mir das aus.

    Keine Ahnung sowas? :D

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


    Global $aData[0][2]
    Global $sStart = @ScriptDir ;Dein Startverzeichnis


    Global $aFiles = _FileListToArrayRec($sStart,"*",2,0,0,2)
    If IsArray($aFiles) Then
    ReDim $aData[$aFiles[0] + 1][2]


    For $i = 1 To $aFiles[0]
    $aData[$i][1] = FileGetTime($aFiles[$i],1,1)
    $aData[$i][0] = $aFiles[$i]
    Next
    EndIf


    _ArraySort($aData,1,1,0,1)


    For $i = 2 To UBound($aData) -1
    DirRemove($aData[$i][0],1)
    Next

    Hi,


    ich habe sowas gemacht, allerdings mit JAVA und einer Infromix Datenbank. Dort hatte ich BYTE als Datentyp für die DB. Über JAVA habe ich dann einfach den Binären Datensatz der Datei ausgelesen und es in die Datenbank gespeichert. Eventuell hilft dir das ein bisschen.

    Diese Funktion hier:



    ;===============================================================================
    ; Function Name: _ProcessListProperties()
    ; Description: Get various properties of a process, or all processes
    ; Call With: _ProcessListProperties( [$Process [, $sComputer]] )
    ; Parameter(s): (optional) $Process - PID or name of a process, default is "" (all)
    ; (optional) $sComputer - remote computer to get list from, default is local
    ; Requirement(s): AutoIt v3.2.4.9+
    ; Return Value(s): On Success - Returns a 2D array of processes, as in ProcessList()
    ; with additional columns added:
    ; [0][0] - Number of processes listed (can be 0 if no matches found)
    ; [1][0] - 1st process name
    ; [1][1] - 1st process PID
    ; [1][2] - 1st process Parent PID
    ; [1][3] - 1st process owner
    ; [1][4] - 1st process priority (0 = low, 31 = high)
    ; [1][5] - 1st process executable path
    ; [1][6] - 1st process CPU usage
    ; [1][7] - 1st process memory usage
    ; [1][8] - 1st process creation date/time = "MM/DD/YYY hh:mm:ss" (hh = 00 to 23)
    ; [1][9] - 1st process command line string
    ; ...
    ; [n][0] thru [n][9] - last process properties
    ; On Failure: Returns array with [0][0] = 0 and sets @Error to non-zero (see code below)
    ; Author(s): PsaltyDS at http://www.autoitscript.com/forum
    ; Date/Version: 12/01/2009 -- v2.0.4
    ; Notes: If an integer PID or string process name is provided and no match is found,
    ; then [0][0] = 0 and @error = 0 (not treated as an error, same as ProcessList)
    ; This function requires admin permissions to the target computer.
    ; All properties come from the Win32_Process class in WMI.
    ; To get time-base properties (CPU and Memory usage), a 100ms SWbemRefresher is used.
    ;===============================================================================
    Func _ProcessListProperties($Process = "", $sComputer = ".")
    Local $sUserName, $sMsg, $sUserDomain, $avProcs, $dtmDate
    Local $avProcs[1][2] = [[0, ""]], $n = 1


    ; Convert PID if passed as string
    If StringIsInt($Process) Then $Process = Int($Process)


    ; Connect to WMI and get process objects
    $oWMI = ObjGet("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy, (Debug)}!\\" & $sComputer & "\root\cimv2")
    If IsObj($oWMI) Then
    ; Get collection processes from Win32_Process
    If $Process == "" Then
    ; Get all
    $colProcs = $oWMI.ExecQuery("select * from win32_process")
    ElseIf IsInt($Process) Then
    ; Get by PID
    $colProcs = $oWMI.ExecQuery("select * from win32_process where ProcessId = " & $Process)
    Else
    ; Get by Name
    $colProcs = $oWMI.ExecQuery("select * from win32_process where Name = '" & $Process & "'")
    EndIf


    If IsObj($colProcs) Then
    ; Return for no matches
    If $colProcs.count = 0 Then Return $avProcs


    ; Size the array
    ReDim $avProcs[$colProcs.count + 1][10]
    $avProcs[0][0] = UBound($avProcs) - 1


    ; For each process...
    For $oProc In $colProcs
    ; [n][0] = Process name
    $avProcs[$n][0] = $oProc.name
    ; [n][1] = Process PID
    $avProcs[$n][1] = $oProc.ProcessId
    ; [n][2] = Parent PID
    $avProcs[$n][2] = $oProc.ParentProcessId
    ; [n][3] = Owner
    If $oProc.GetOwner($sUserName, $sUserDomain) = 0 Then $avProcs[$n][3] = $sUserDomain & "\" & $sUserName
    ; [n][4] = Priority
    $avProcs[$n][4] = $oProc.Priority
    ; [n][5] = Executable path
    $avProcs[$n][5] = $oProc.ExecutablePath
    ; [n][8] = Creation date/time
    $dtmDate = $oProc.CreationDate
    If $dtmDate <> "" Then
    ; Back referencing RegExp pattern from weaponx
    Local $sRegExpPatt = "\A(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(?:.*)"
    $dtmDate = StringRegExpReplace($dtmDate, $sRegExpPatt, "$2/$3/$1 $4:$5:$6")
    EndIf
    $avProcs[$n][8] = $dtmDate
    ; [n][9] = Command line string
    $avProcs[$n][9] = $oProc.CommandLine


    ; increment index
    $n += 1
    Next
    Else
    SetError(2); Error getting process collection from WMI
    EndIf
    ; release the collection object
    $colProcs = 0


    ; Get collection of all processes from Win32_PerfFormattedData_PerfProc_Process
    ; Have to use an SWbemRefresher to pull the collection, or all Perf data will be zeros
    Local $oRefresher = ObjCreate("WbemScripting.SWbemRefresher")
    $colProcs = $oRefresher.AddEnum($oWMI, "Win32_PerfFormattedData_PerfProc_Process" ).objectSet
    $oRefresher.Refresh


    ; Time delay before calling refresher
    Local $iTime = TimerInit()
    Do
    Sleep(20)
    Until TimerDiff($iTime) >= 100
    $oRefresher.Refresh


    ; Get PerfProc data
    For $oProc In $colProcs
    ; Find it in the array
    For $n = 1 To $avProcs[0][0]
    If $avProcs[$n][1] = $oProc.IDProcess Then
    ; [n][6] = CPU usage
    $avProcs[$n][6] = $oProc.PercentProcessorTime
    ; [n][7] = memory usage
    $avProcs[$n][7] = $oProc.WorkingSet
    ExitLoop
    EndIf
    Next
    Next
    Else
    SetError(1); Error connecting to WMI
    EndIf


    ; Return array
    Return $avProcs
    EndFunc ;==>_ProcessListProperties


    Rückgabe ist ein Array mit entsprechenden Parametern und den dazugehörigen Benutzer.

    Hallo Leute,


    bin letztens auf diese Internetseite gestoßen: http://www.mathematische-basteleien.de/gameoflife.htm
    und dachte mir ich würde das gerne in AutoIt nachprogrammieren.


    Nun das hier ist das Ergebnis:

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <Array.au3>


    Global $iGUIw = 500, $iGUIh = 600, $iWidth = 10, $iHeight = 10, $iBlack = 0x000000, $iWhite = 0xffffff, $iZeit = 1,$iAlleTod
    Global $iYSize = 50, $iXSize = 50, $aControlID[$iYSize][$iXSize], $aKolonie[$iYSize][$iXSize]
    $hGUI = GUICreate("SpielDesLebens", $iGUIw, $iGUIh)
    $hBtnStop = GUICtrlCreateButton("Stop",310,550,50,50)
    $hBtnStart = GUICtrlCreateButton("Start", 200, 550, 100, 50)
    $hLabel = GUICtrlCreateLabel("Zyklen:", 10, 550, 50, 50)
    $hZeit = GUICtrlCreateLabel($iZeit, 60, 550, 100, 50)


    For $y = 0 To UBound($aControlID) - 1
    For $x = 0 To UBound($aControlID) - 1
    $aKolonie[$y][$x] = 0
    $aControlID[$y][$x] = GUICtrlCreateGraphic($x * $iWidth, $y * $iHeight, $iWidth, $iHeight)
    GUICtrlSetBkColor(-1, $iWhite)
    Next
    Next
    GUISetState(@SW_SHOW)


    _Start()


    Func _Start()
    While 1
    Sleep(10)
    Global $hMsg = GUIGetMsg()
    If $hMsg = $GUI_EVENT_CLOSE Then Exit
    For $y = 0 To UBound($aControlID) - 1
    For $x = 0 To UBound($aControlID) - 1
    If $hMsg = $aControlID[$y][$x] Then
    If $aKolonie[$y][$x] = 1 Then
    GUICtrlSetBkColor($aControlID[$y][$x], $iWhite)
    $aKolonie[$y][$x] = 0
    Else
    GUICtrlSetBkColor($aControlID[$y][$x], $iBlack)
    $aKolonie[$y][$x] = 1
    EndIf
    EndIf
    Next
    Next
    If $hMsg = $hBtnStart Then
    $iStop = 1
    Do
    _Leben()
    $iZeit += 1
    GUICtrlSetData($hZeit, $iZeit)
    _Zeichen()
    $hMsg = GUIGetMsg()
    Until $iAlleTod = 0 Or $hMsg = $hBtnStop
    EndIf
    WEnd
    EndFunc


    Func _Zeichen()
    GUISetState(@SW_LOCK)
    For $y = 0 To UBound($aKolonie) - 1
    For $x = 0 To UBound($aKolonie) - 1
    If $aKolonie[$y][$x] = 1 Then
    GUICtrlSetBkColor($aControlID[$y][$x], $iBlack)
    EndIf
    If $aKolonie[$y][$x] = 2 Then
    GUICtrlSetBkColor($aControlID[$y][$x], $iWhite)
    EndIf
    Next
    Next
    GUISetState(@SW_UNLOCK)
    EndFunc


    Func _Leben()
    Local $aNeueKolonie[$iYSize][$iXSize]
    $iAlleTod = 0
    For $y = 0 To $iYSize - 1
    For $x = 0 To $iXSize - 1
    Local $iNachbarn = 0


    If $x - 1 <> -1 Then
    If $aKolonie[$y][$x - 1] = 1 Then $iNachbarn += 1
    EndIf;Links
    If $x + 1 <> UBound($aKolonie) Then
    If $aKolonie[$y][$x + 1] = 1 Then $iNachbarn += 1
    EndIf;Rechts
    If $y - 1 <> -1 Then
    If $aKolonie[$y - 1][$x] = 1 Then $iNachbarn += 1
    EndIf;Oben
    If $y + 1 <> UBound($aKolonie) Then
    If $aKolonie[$y + 1][$x] = 1 Then $iNachbarn += 1
    EndIf;Unten
    If $y - 1 <> -1 And $x - 1 <> -1 Then
    If $aKolonie[$y - 1][$x - 1] = 1 Then $iNachbarn += 1
    EndIf;Links Oben
    If $y + 1 <> UBound($aKolonie) And $x - 1 <> -1 Then
    If $aKolonie[$y + 1][$x - 1] = 1 Then $iNachbarn += 1
    EndIf;Links Unten
    If $y - 1 <> -1 And $x + 1 <> UBound($aKolonie) Then
    If $aKolonie[$y - 1][$x + 1] = 1 Then $iNachbarn += 1
    EndIf;Rechts Oben
    If $y + 1 <> UBound($aKolonie) And $x + 1 <> UBound($aKolonie) Then
    If $aKolonie[$y + 1][$x + 1] = 1 Then $iNachbarn += 1
    EndIf;Rechts Unten
    If $aKolonie[$y][$x] = 2 Or $aKolonie[$y][$x] = 0 Then
    If $iNachbarn = 3 Then
    $aNeueKolonie[$y][$x] = 1
    $iAlleTod = 1
    EndIf
    EndIf
    If $aKolonie[$y][$x] = 1 Then
    If $iNachbarn = 2 Or $iNachbarn = 3 Then
    $aNeueKolonie[$y][$x] = 1
    $iAlleTod = 1
    Else
    $aNeueKolonie[$y][$x] = 2
    EndIf
    EndIf
    Next
    Next
    $aKolonie = $aNeueKolonie
    EndFunc


    Die Geschwindigkeit lässt natürlich zu wünschen übrig, eventuell wäre hier der Einsatz von GDIPlus deutlich besser. Auch die Berechnung der nächsten "Kolonie" ist aus dem Kindergarten aber Hej! was soll's es funktioniert :D


    Ich empfehle euch besonders die verschiedenen Gleiter auszuprobieren. Bis dahin viel Spaß =O

    Also kurze Info zum Thema "keine Taskleiste"


    Hiermit wird die Taskleiste bei mir durch die GUI verdeckt, egal ob sie rechts unten oder sonst wo ist. Auch die Größe der Leiste selbst ist egal. (Windows 7)



    #include <WindowsConstants.au3>


    GUICreate("GUI ohne Taskleiste",@DesktopWidth,@DesktopHeight,0,0,$WS_POPUP)
    GUISetState(@SW_SHOW)


    While 1
    Sleep(10)
    WEnd

    Das Beispiel von BugFix funktioniert zu 100% mit deinen Zahlen von oben weil, die Datensätze im Array dort Integer sind egal welche Zahlen du da rein schreibst.
    Deshalb zeige uns bitte , wie AspirinJunkie schon gesagt hat, wo die du die Daten für das Array herholst und wie du die in das Array reinpackst.

    Von wo kommen die Daten her?

    #include <Array.au3>


    Local $sOutput = @ScriptDir & "\Output.txt"
    Local $aData[4] = [45,2,9,413];Hier deine Daten Quelle (in diesem Fall habe ich einfach ein Beispiel Array erstellt)


    _ArraySort($aData)


    For $i = 0 To UBound($aData) -1
    FileWriteLine($sOutput,$aData[$i])
    Next
    Exit

    Hi wie Techmix bereits sagte unterstützt AutoIt kein Mulithreading. Sollten aber die Aufgaben der Funktionen nicht besonders Aufwendig sein empfehle ich in solchen Fällen :



    Adlibregister("Funktion",250)


    Hier können mehrere Funktionen registriert werden die dann auch Gleichzeitig ausgeführt werden. Bin mir aber was das gleichzeitige Ausführen angeht, auch nicht zu 100% sicher.

    Dann willst du wissen welche Dateien da sind und welche nicht? Oder was genau willst du als Ergebnis haben?
    Sollte einfach nur geguckt werden ob die Datei da ist oder nicht dann würde ich hier mit _FTP_ListToArray arbeiten damit ich überhaupt weiß wie viele Dateien da sind. Ansonsten kannst du ja meine Lösung (die neue Version) benutzen und die Schleife abbrechen wenn du keine Lust mehr hast. Ansonsten kannst du dir nie sicher sein ob nicht die nächste Datei da ist.

    #include <ColorConstants.au3>


    Local $iEnde = 0,$sUrl1 = "test",$sUrl2 = "test"
    $gInput = InputBox("Dieselwiesel","Anfangszahl eingeben:",Default,"",100,150)
    If $gInput = "" Or @error Then Exit


    GUICreate("Dieselwiesel",150,100,-1,-1)
    GUISetState(@SW_SHOW)
    $gLabel = GUICtrlCreateLabel($gInput,10,10,100,20)
    $gButton = GUICtrlCreateButton("Stopp",10,40,130,50)


    Do
    $iMsg = GUIGetMsg()
    Switch $iMsg
    Case -3
    $iEnde = 1
    Case $gButton
    MsgBox(0,"Ende","Abgebrochen",2)
    $iEnde = 1
    EndSwitch
    $gInput = $gInput + 1
    $sFilename = StringFormat("%03i",$gInput)
    $iGetInfo = InetGetSize($sUrl1 & $sFilename & $sUrl2)
    GUICtrlSetData($gLabel,$sFilename)
    Sleep(150)
    If $iGetInfo = 0 Then
    GUICtrlSetColor($gLabel,$COLOR_RED)
    GUICtrlSetData($gLabel,$gInput)
    Else
    GUICtrlSetColor($gLabel,$COLOR_GREEN)
    GUICtrlSetData($gLabel,$gInput)
    EndIf
    Until $iEnde = 1

    Eventuell sowas:



    Local $iEnde = 0,$sUrl1 = "test",$sUrl2 = "test"
    $gInput = InputBox("Dieselwiesel","Anfangszahl eingeben:",Default,"",100,150)
    If $gInput = "" Or @error Then Exit


    GUICreate("Dieselwiesel",150,100,-1,-1)
    GUISetState(@SW_SHOW)
    $gLabel = GUICtrlCreateLabel($gInput,10,10,100,20)
    $gButton = GUICtrlCreateButton("Stopp",10,40,130,50)


    Do
    $iMsg = GUIGetMsg()
    Switch $iMsg
    Case -3
    $iEnde = 1
    Case $gButton
    MsgBox(0,"Ende","Abgebrochen",2)
    $iEnde = 1
    EndSwitch
    $gInput = $gInput + 1
    $sFilename = StringFormat("%03i",$gInput)
    $iGetInfo = InetGetSize($sUrl1 & $sFilename & $sUrl2)
    GUICtrlSetData($gLabel,$sFilename)
    Sleep(100)
    If $iGetInfo = 0 Then
    MsgBox(0,"Ende","Letzte Datei: " & $gInput - 1)
    $iEnde = 1
    EndIf
    Until $iEnde = 1

    Schon mal versucht die Datei mit FileMove umzubennen? Sollte diese im Zugriff sein sollte die Funktion dann 0 als Return liefern. Das alles in einer Schleife bis FileMove eine 1 liefert.
    Sollte der Dateiname für dich wichtig sein könnte man nachdem das erste FileMove erfolgreich der Datei den Originalen Namen zurück geben.

    Also unter Windows XP hatte man immer Zugriff auf die Registry eines entfernten Rechnerns. Zumindest für den HKEY_LOCAL_MASCHINE Baum. Unter Windows 7 (8?) muss entsprechend ein Dienst laufen (Hab den Namen jetzt nicht) der solchen Zugriff erlaubt. Eventuell lässt sich in Registry etwas finden was dir weiter helfen könnte.

    Wenn es um BOTS geht bitte einmal die Forenregel durchlesen. Hier ist meine dreckige Lösung:

    GUICreate("",200,100,-1,-1)
    $gInput = GUICtrlCreateInput("",5,25,100,50)
    GUISetState(@SW_SHOW)
    while 1
    If GUIGetMsg() = -3 Then Exit
    $sInput = GUICtrlRead($gInput)
    If StringInStr($sInput," ") <> 0 Then
    $sOutput = StringReplace($sInput," ","")
    GUICtrlSetData($gInput,$sOutput)
    EndIf
    WEnd

    StringReplace statt StringTrimRight -> Mein Fehler!