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

Beiträge von Oscar

  • Inhalt eines Ordner (Dateien und Ordner) löschen.

    • Oscar
    • 20. September 2009 um 15:01

    Ursprungposting wiederhergestellt!

    Bitte nicht das Ursprungsposting löschen, sondern nur auf "bearbeiten" klicken und den Thread auf "gelöst" stellen!

  • Inhalt eines Ordner (Dateien und Ordner) löschen.

    • Oscar
    • 20. September 2009 um 12:01

    DirRemove sollte helfen.

  • List-Eintrag löschen

    • Oscar
    • 20. September 2009 um 09:33

    Raupi, für's einlesen kann man auch einen Einzeiler nehmen (SCNR):

    [autoit]

    If FileExists(@ScriptDir & '\Test.txt') Then GUICtrlSetData($List1, StringReplace(FileRead($sFilename), ',', '|'))

    [/autoit]


    und beim speichern solltest Du prüfen, ob überhaupt Einträge in der Liste sind ($iCount = positiv?).

  • Geeeeeeeeeeeeeeeeeeeeeeeeburtstag

    • Oscar
    • 19. September 2009 um 20:38

    Auch von mir alles Gute und feier noch schön!

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Mausmeter

    • Oscar
    • 19. September 2009 um 13:49

    Ich hatte gerade etwas Langeweile und da habe ich mal schnell ein Mausmeter geschrieben. :D
    Die beiden Werte für die Breite eures Monitors müsst ihr noch anpassen.

    Spoiler anzeigen
    [autoit]


    #NoTrayIcon
    #include <Misc.au3>
    #include <String.au3>

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

    ; Die zwei folgenden Werte werden für die DPI-Berechnung benötigt
    Global $iMonPixel = 1920 ; Monitorbreite in Pixel (Wert anpassen!)
    Global $iMonWidth = 517 ; Monitorbreite in mm (Wert anpassen!)

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

    Global $sTitle = 'Mausmeter v1.0'
    _Singleton($sTitle)
    Global $a, $b, $msg, $sTime, $nSpeed, $iPixel = 0, $nMeter = 0
    Global $nDPI = $iMonPixel / $iMonWidth * 25.4
    Global $bShowTooltip = True
    Global $aOld = MouseGetPos(), $aPos
    Global $iTimer = TimerInit()
    AdlibEnable('_RefreshDisplay', 500)
    HotKeySet('!q', '_End') ; [ALT] + [q] zum beenden des Programms
    HotKeySet('!s', '_HideShowTooltip') ; [ALT] + [s] zum anzeigen/verstecken des Tooltips

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

    While 1
    $aPos = MouseGetPos()
    If $aPos[0] <> $aOld[0] Or $aPos[1] <> $aOld[1] Then
    $a = Abs($aOld[0] - $aPos[0])
    $b = Abs($aOld[1] - $aPos[1])
    $iPixel += Int(Sqrt(($a ^ 2) + ($b ^ 2)))
    $nMeter = StringFormat('%0.3f', $iPixel * (.0254 / $nDPI))
    $sTime = _NewTicksToTime(TimerDiff($iTimer))
    $nSpeed = StringFormat('%0.3f', $nMeter / (TimerDiff($iTimer) / 1000) * 3600 / 1000)
    $aOld = $aPos
    $msg = 'Laufzeit (hh:mm:ss) = ' & $sTime & @CR & @CR & 'Zurückgelegte Strecke:' & @CR & 'in Pixel: ' & _StringAddThousandsSep($iPixel, '.', ',')
    $msg &= @CR & 'in Meter: ' & _StringAddThousandsSep($nMeter, '.', ',')
    $msg &= @CR & @CR & 'Durchschnittl. Geschwindigkeit:' & @CR & 'in km/h: ' & _StringAddThousandsSep($nSpeed, '.', ',')
    If $bShowTooltip Then ToolTip($msg, @DesktopWidth / 2 - 100, 0, $sTitle, 1, 1)
    EndIf
    Sleep(10)
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    Func _HideShowTooltip()
    $bShowTooltip = Not $bShowTooltip
    If Not $bShowTooltip Then ToolTip('')
    EndFunc

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

    Func _RefreshDisplay()
    $sTime = _NewTicksToTime(TimerDiff($iTimer))
    $nSpeed = StringFormat('%0.3f', $nMeter / (TimerDiff($iTimer) / 1000) * 3600 / 1000)
    $msg = 'Laufzeit (hh:mm:ss) = ' & $sTime & @CR & @CR & 'Zurückgelegte Strecke:' & @CR & 'in Pixel: ' & _StringAddThousandsSep($iPixel, '.', ',')
    $msg &= @CR & 'in Meter: ' & _StringAddThousandsSep($nMeter, '.', ',')
    $msg &= @CR & @CR & 'Durchschnittl. Geschwindigkeit:' & @CR & 'in km/h: ' & _StringAddThousandsSep($nSpeed, '.', ',')
    If $bShowTooltip Then ToolTip($msg, @DesktopWidth / 2 - 100, 0, $sTitle, 1, 1)
    EndFunc ;==>_RefreshDisplay

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

    Func _NewTicksToTime($iTicks)
    Local $iHours, $iMins, $iSecs = Int($iTicks / 1000)
    $iHours = Int($iSecs / 3600)
    $iSecs = Mod($iSecs, 3600)
    $iMins = Int($iSecs / 60)
    $iSecs = Mod($iSecs, 60)
    Return StringFormat('%02i:%02i:%02i', $iHours, $iMins, $iSecs)
    EndFunc ;==>_NewTicksToTime

    [/autoit]
  • _GetGlobalResolution

    • Oscar
    • 18. September 2009 um 19:52

    Ich habe eine ATI-Grafikkarte und im "Catalyst Control Center" kann man bei "Display Properties", "Rotation" den Drehwinkel angeben.

  • _GetGlobalResolution

    • Oscar
    • 18. September 2009 um 19:16

    Wenn man mehrere Monitore am Rechner hat und den Desktop auf diese erweitert, dann hat man logischerweise eine größere Gesamtauflösung.
    @DesktopWidth und @DesktopHeight geben einem aber nur die Auflösung vom ersten Monitor zurück. Ich habe mir mal die _WinApi-Funktionen genauer angesehen und dabei entdeckt, dass man damit auch die Gesamtauflösung auslesen kann. Rausgekommen ist eine kleine Funktion:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <WinAPI.au3>
    $aRes = _GetGlobalResolution()
    _ArrayDisplay($aRes)

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

    Func _GetGlobalResolution()
    Local $aRes[4], $hWindow, $stRET
    $hWindow = _WinAPI_GetDesktopWindow()
    $stRET = _WinAPI_GetWindowPlacement($hWindow)
    If Not @error Then
    $aRes[0] = DllStructGetData($stRET, 'rcNormalPosition', 1) ; left
    $aRes[1] = DllStructGetData($stRET, 'rcNormalPosition', 2) ; top
    $aRes[2] = DllStructGetData($stRET, 'rcNormalPosition', 3) ; right
    $aRes[3] = DllStructGetData($stRET, 'rcNormalPosition', 4) ; bottom
    Return $aRes
    Else
    Return SetError(1, 0, 0)
    EndIf
    EndFunc ;==>_GetGlobalResolution

    [/autoit]


    Ich habe das bei mir mit zwei Monitoren getestet. Der erste Monitor hat eine Auflösung von 1920x1200 und der Zweite 1600x1200, wobei ich den hochkant (um 90 Grad gedreht) betreibe, also 1200x1600.
    Ergebnisse:
    Zweiter Monitor links neben dem Ersten: -1200, 0, 1920, 1600 (left, top, right, bottom)
    Zweiten Monitor rechts neben dem Ersten: 0, 0, 3120, 1600 (left, top, right, bottom)
    Zweiter Monitor über dem Ersten: 0, -1600, 1920, 1200 (left, top, right, bottom)
    Zweiter Monitor unter dem Ersten: 0, 0, 1920, 2800 (left, top, right, bottom)

    Das sieht für mich sehr gut aus und ich hoffe mal, dass das bei euch auch funktioniert. :)

  • [beta] Clippy 0.1

    • Oscar
    • 18. September 2009 um 18:25

    Hab sie gefunden! Ist von AspirinJunkie: Auflösung des 2ten Monitors

    Edit: Ah, verdammt! Es wird aber nicht angezeigt, ob der Desktop geklont oder erweitert ist und wenn erweitert, in welche Richtung. Schade!

    Edit2: Ich habe jetzt mal eine eigene Funktion dazu geschrieben: _GetGlobalResolution

  • GUICtrlSetState - während der Laufzeit Control disablen / enablen

    • Oscar
    • 18. September 2009 um 12:33

    Jein! GuiCtrlRead($CheckboxSame) liefert entweder 1 oder 4 (ok, es gibt Ausnahmen, aber hier egal) und das entspricht immer "True". Du hast aber zusätzlich "==" benutzt, was hier dazu geführt hat, dass das Ergebnis immer "False" war.
    Eine CheckBox prüft man aber immer auf $GUI_CHECKED und das am besten mit BitAnd.

  • GUICtrlSetState - während der Laufzeit Control disablen / enablen

    • Oscar
    • 18. September 2009 um 12:14

    Diese Zeile:

    [autoit]

    If GUICtrlRead( $CheckboxSame) == True Then

    [/autoit]


    gegen diese austauschen:

    [autoit]

    If BitAnd(GuiCtrlRead($CheckboxSame), $GUI_CHECKED) Then

    [/autoit]
  • Listview nach deutschen Datum sortieren

    • Oscar
    • 18. September 2009 um 11:13

    Wenn Du vor dem sortieren ein "_GUICtrlListView_BeginUpdate" und hinterher ein "_GUICtrlListView_EndUpdate" setzt, bekommt der Anwender auch nichts davon mit, auch wenn sehr viele Einträge im Listview sind.

  • Ordner / Eigenschaften

    • Oscar
    • 18. September 2009 um 11:09

    [Werbung on]MP3-Double-Finder[Werbung off]
    Mit meinem Programm findet man die Doppelten recht schnell. :)

  • Listview nach deutschen Datum sortieren

    • Oscar
    • 18. September 2009 um 10:54

    Naja, sowas habe ich mal gemacht und dabei etwas getrickst:
    - vor dem sortieren die Spalte mit dem Datum ins _NowCalcDate-Format umwandeln
    - dann sortieren
    - und hinterher die Spalte wieder ins deutsche Format umwandeln.

  • Syntax, ich seh den fehhler nicht 0_o - einzeiler

    • Oscar
    • 18. September 2009 um 10:27

    So auf die Schnelle und ungetestet, würde ich sagen, da fehlt eine schließende Klammer nach "Chr (34":

    [autoit]

    RunWait(@COMSPEC & ' /c secedit /configure /db ' & Chr (34) & @ProgramFilesDir & '\Symantec\Config4T\FolderOnly.sdb' & Chr (34) & ' /cfg ' & Chr (34) & @ProgramFilesDir & '\Symantec\Config4T\FolderOnly.inf' & Chr (34) & ' /quiet')

    [/autoit]
  • GUI Zeit Programm läuft seit ddd | hh:mm:ss

    • Oscar
    • 17. September 2009 um 09:28

    Andere Möglichkeit: Die Laufzeit im Titel anzeigen:

    Spoiler anzeigen
    [autoit]


    Opt('WinTitleMatchMode', 2)
    $sTitle = 'Solitär'
    ShellExecute('sol.exe')
    WinWait($sTitle)
    $handle = WinGetHandle($sTitle)
    $iTimer = TimerInit()
    AdlibEnable('_TimeUpdate', 10)
    While WinExists($handle)
    Sleep(100)
    WEnd

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

    Func _TimeUpdate()
    WinSetTitle($handle, '', StringRegExpReplace(WinGetTitle($handle), ' \d{2}:\d{2}:\d{2}.\d{3}', '') & ' ' & _NewTicksToTime(TimerDiff($iTimer)))
    EndFunc ;==>_TimeUpdate

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

    Func _NewTicksToTime($iTicks)
    Local $iHours, $iMins, $iSecs = Int($iTicks / 1000), $iMSecs = $iTicks - $iSecs * 1000
    $iHours = Int($iSecs / 3600)
    $iSecs = Mod($iSecs, 3600)
    $iMins = Int($iSecs / 60)
    $iSecs = Mod($iSecs, 60)
    Return StringFormat('%02i:%02i:%02i.%03i', $iHours, $iMins, $iSecs, $iMSecs)
    EndFunc ;==>_NewTicksToTime

    [/autoit]
  • problem mit _ArrayMinIndex

    • Oscar
    • 17. September 2009 um 00:46

    Kannst Du mal oben im Script nach der Zeile 38 folgende Zeile einfügen:

    [autoit]

    ConsoleWrite(@error & @CRLF)

    [/autoit]


    und posten, was da ausgegeben wird.

  • (FileRead count Problem) Diesmal will ich wissen ob kb/s rechnung stimmt

    • Oscar
    • 16. September 2009 um 22:06

    So:

    [autoit]

    $kb = ($size / $ms) * 1000 / 1024

    [/autoit]


    Wenn $size Bytes übertragen werden und dafür die Zeit $ms in Millisekunden benötigt wird, dann muss man die Anzahl der Bytes durch die Anzahl der Millisekunden teilen, um auf Bytes je Millisekunde zu kommen. Danach mit 1000 malnehmen, um auf eine Sekunde zu kommen und dann durch 1024 teilen für KB.

  • (FileRead count Problem) Diesmal will ich wissen ob kb/s rechnung stimmt

    • Oscar
    • 16. September 2009 um 20:36

    Binärdateien musst Du mit Parameter "16" öffnen. Das gilt auch für das speichern.
    Habe Dein Script mal etwas abgeändert:

    Spoiler anzeigen
    [autoit]


    $File = FileOpenDialog("Wähle die Datei aus", @DesktopDir, "Alle Dateien (*.*)")
    $Save = FileSaveDialog("Wo soll die Datei gespeichert werden?", @DesktopDir, "(*." & StringTrimLeft($File, StringInStr($File, ".", 0, -1)) & ")")
    If StringInStr($File, "." & StringTrimLeft($File, StringInStr($File, ".", 0, -1))) Then $Save &= "." & StringTrimLeft($File, StringInStr($File, ".", 0, -1))
    $Open = FileOpen($File, 16)
    $OpenSave = FileOpen($Save, 16 + 2)
    $Size = FileGetSize($File)
    While True
    $Buffer = FileRead($Open, 1024)
    If @error Then ExitLoop
    FileWrite($OpenSave, $Buffer)
    WEnd
    FileClose($OpenSave)
    FileClose($Open)

    [/autoit]
  • problem mit _ArrayMinIndex

    • Oscar
    • 16. September 2009 um 20:08

    Oh mann, Forenregeln lesen!
    Hier gibt's kein Botsupport!

    Edit: Oh, moment, Evolution ist gar kein Game, richtig? Da war ich etwas vorschnell. Sorry!

    Edit2: Lass Dir mal mit:

    [autoit]

    _ArrayDisplay($wert)

    [/autoit]


    nach der "For $q = 1 To $anzahl"...Next-Schleife die Werte im Array anzeigen.
    Und _ArrayMinIndex solltest Du in dem Fall mit Parameter "1" aufrufen:

    [autoit]

    $lowy = _ArrayMinIndex($wert, 1)

    [/autoit]


    sonst würde nicht numerisch verglichen, sondern alphanumerisch.

  • (FileRead count Problem) Diesmal will ich wissen ob kb/s rechnung stimmt

    • Oscar
    • 16. September 2009 um 18:49

    Alina, das kommt darauf an, wie das andere Programm die Logdatei schreibt.
    Wenn die Datei während des gesamten Ablaufs gelockt ist, dann geht das nicht. Andernfalls kannst Du die Datei auslesen. Wenn Du allerdings vorhast die Datei häppchenweise auszulesen, solltest Du vorher ein Kopie davon anlegen und diese dann auslesen.

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™