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

  • Seagate-Festplatten

    • Oscar
    • 3. Februar 2009 um 07:01

    progandy, ich hatte mir das Image schon gedownloadet, war dann aber zu "feige" das Firmwareupdate mit dieser "inoffiziellen" Version zu versuchen.

    Heute morgen habe ich dann aber gleich 2 EMails von Seagate bekommen, dass nun ein offizielles Firmwareupdate (für meine Platten) zum Download angeboten wird. Das Image habe ich mir gleich gedownloadet, gebrannt und damit dann das Update vorgenommen.
    Das hat auch (ohne Probleme!) geklappt! Ich habe nun die Version SN06, Festplatten wurden von der Windows-Hardware-Erkennung neu erkannt, aber die Daten darauf sind alle noch da. :thumbup:

    Somit ist die ganze Geschichte nun vorbei (hoffe ich ^^ ).

    Fazit: Gegen die Festplatten kann man nichts sagen, aber der Support ist eine Katastrophe!

  • ProcessClose geht nicht ganz

    • Oscar
    • 3. Februar 2009 um 06:48

    Evtl. mit #NoTrayIcon am Anfang des Scripts und dann als compilierte Exe starten (Ungetestet! Will jetzt nicht meinen Explorer killen)

    Aber sobald eine GUI oder TrayMenü vorhanden, wird AutoIt wohl den Explorer wieder starten.

  • Idee + kann man das überhaupt?? Delete Files

    • Oscar
    • 3. Februar 2009 um 06:42

    Reihenfolge ist bei mir auch:
    1. If...Then
    2. Switch
    3. If...Then...EndIf
    4. Select

    Wobei 3 und 4 noch weiter hinter Switch zurückfallen, wenn mehrere Vergleiche stattfinden:

    Spoiler anzeigen
    [autoit]


    Global $Timer, $X, $i, $Max = 1000000

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    If $i = 0 Then MsgBox(0, "", "")
    Next
    ConsoleWrite("IF THEN " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    If $i = 0 Then
    MsgBox(0, "", "")
    EndIf
    Next
    ConsoleWrite("IF THEN ENDIF " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Switch $i
    Case 0
    MsgBox(0, "", "")
    EndSwitch
    Next
    ConsoleWrite("SWITCH " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Select
    Case $i = 0
    MsgBox(0, "", "")
    EndSelect
    Next
    ConsoleWrite("SELECT " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    If $i = 0 Then
    MsgBox(0, "", "")
    ElseIf $i = 1 Then
    MsgBox(0, "", "")
    EndIf
    Next
    ConsoleWrite("IF THEN ENDIF 2 " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Switch $i
    Case 0
    MsgBox(0, "", "")
    Case 1
    MsgBox(0, "", "")
    EndSwitch
    Next
    ConsoleWrite("SWITCH 2 " & TimerDiff($Timer) & @LF)

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

    $Timer = TimerInit()
    For $i = 2 To $Max
    Select
    Case $i = 0
    MsgBox(0, "", "")
    Case $i = 1
    MsgBox(0, "", "")
    EndSelect
    Next
    ConsoleWrite("SELECT 2 " & TimerDiff($Timer) & @LF)

    [/autoit]
  • Eingabeauffordderung

    • Oscar
    • 2. Februar 2009 um 22:56

    Ok, in der Hilfe steht es nicht. ;)
    Ich weiß gar nicht mehr, wo ich das mal her habe. Glaube aus dem englischen Forum. :)

  • Eingabeauffordderung

    • Oscar
    • 2. Februar 2009 um 22:47

    Doch das geht. Habe ich mal für ein Programm gebraucht. Hier ein Beispielscript:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt('GUIOnEventMode', 1)

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

    If Not IsDeclared('WS_EX_COMPOSITED') Then Global Const $WS_EX_COMPOSITED = 0x02000000
    Global $hGUI = GUICreate('Test', 640, 480, -1, 0, BitOR($WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_COMPOSITED)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')

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

    GUISetState()
    GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")

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

    While True
    Sleep(100)
    WEnd

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

    Func _End()
    Exit
    EndFunc

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

    Func MY_WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
    If $hWnd = $hGUI Then
    Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
    DllStructSetData($minmaxinfo, 7, 640) ; min X
    DllStructSetData($minmaxinfo, 8, 480) ; min Y
    EndIf
    EndFunc

    [/autoit]
  • Listview-Datenbank-Beispiel

    • Oscar
    • 2. Februar 2009 um 22:34

    Kann ich nicht nachvollziehen. Bei mir klappt das auch mit leeren Einträgen.
    Bitte mal mehr Infos (Fehlermeldung von Scite, reproduzierbar?).

  • Dateien Per TCP verschiken

    • Oscar
    • 2. Februar 2009 um 13:25

    Ich predige ja immer: erstmal die Grundlagen lernen. ;)

    Ich denke, das hier wäre etwas für Dich: Basis-Standards im Internet
    und auch das nächste Kapitel (Dienste im Internet).

  • Umbenennen & StringLower()

    • Oscar
    • 2. Februar 2009 um 04:24

    "ä in ae usw." geht mit StringReplace einfacher und schneller.

  • Umbenennen & StringLower()

    • Oscar
    • 1. Februar 2009 um 22:32

    Suchst Du sowas:

    [autoit]


    $string = 'Das ist ein Beispieltext mit doppelten Buchstaben und ++ und --- und [[[[df]]]] (((gkhkt.tz))) {{ttjre}} (test)'
    $string = StringRegExpReplace($string, '\h+', '_')
    $string = StringRegExpReplace($string, '(\W){2,}', '$1')
    MsgBox(0,0,$string)

    [/autoit]
  • Problem mit dem Verwalten mehrerer "Datenbanken"

    • Oscar
    • 1. Februar 2009 um 16:04

    Die Region kannst Du so ändern:

    Spoiler anzeigen
    [autoit]


    #Region Fenster für neuen Eintrag

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

    Global $hGuiNew = GUICreate("Neuer Eintrag", 632, 140, -1, -1, $WS_SYSMENU) ; das Fenster "Neuer Eintrag" erstellen
    Global $aHeader = StringSplit($sHeader, '|') ; Überschriften-Array
    Global $aNew[$aHeader[0]] ; Array für die Input-IDs
    Global $aInputWidth[$aHeader[0]] = [120, 100, 60, 60, 260] ; hier die Länge (in Pixel) der Inputfelder eintragen
    Global $xPos = 2
    For $i = 1 To $aHeader[0]
    GUICtrlCreateLabel($aHeader[$i], $xPos + 2, 15, 110, 20) ; Überschriften-Label erstellen
    GUICtrlSetFont(-1, 8, 400, 0, 'Verdana') ; Schriftgröße und -art der Überschriften festlegen
    $aNew[$i - 1] = GUICtrlCreateInput("", $xPos, 30, $aInputWidth[$i-1], 20, Default, $WS_EX_STATICEDGE) ; Eingabefelder erstellen
    GUICtrlSetFont(-1, 10, 600, 0, 'Verdana') ; Schriftgröße und -art der Eingabefelder festlegen
    $xPos += $aInputWidth[$i-1] + 5
    Next
    GUICtrlSetData($aNew[1], @MDAY & "." & @MON & "." & @YEAR) ;Vorgabe für Column1
    GUICtrlSetData($anew[2], "ohne") ;Vorgabe für Column2
    GUICtrlSetData($anew[3], "offen") ;Vorgabe für Column3
    Global $hCreate = GUICtrlCreateButton("Eintrag speichern", 254, 65, 120, 25, $BS_DEFPUSHBUTTON)

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

    #EndRegion Fenster für neuen Eintrag

    [/autoit]
  • Umbenennen & StringLower()

    • Oscar
    • 1. Februar 2009 um 07:13

    Ja, mit StringRegExpReplace:

    [autoit]


    $string = 'bla bla bla bla.jpg'

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

    $string = StringRegExpReplace($string, '\h+', '_')

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

    MsgBox(0, 0, $string)

    [/autoit]
  • Skriptbeispiel Spielkarten

    • Oscar
    • 31. Januar 2009 um 21:06

    Bei mir funktioniert das (WindowsXP). Selbst wenn ich die Windows-Spiele deinstalliere.
    Ich bin mir aber nicht sicher, wie das ist, wenn man die Spiele gleich bei der Windows-Installation nicht mit installieren läßt. Vielleicht wird dann die "cards.dll" nicht installiert?! :huh:

  • Listview-Datenbank-Beispiel

    • Oscar
    • 31. Januar 2009 um 20:58

    Jo, Du hast recht. Dort war tatsächlich ein Bug drin.
    Das lag daran, dass _GUICtrlListView_GetSelectionMark() einen Nullbasierten Wert zurückliefert und ich auf einen Wert größer als Null getestet hatte. Deswegen trat der Fehler auch nur beim ersten Eintrag auf.
    Bug jetzt entfernt! Danke, nuts!

  • Seagate-Festplatten

    • Oscar
    • 31. Januar 2009 um 17:07
    Zitat von alfred

    Tja, Servicewüste live ;)
    Hast du eine Firmware <SN06?

    Ja, leider! Meine Festplatten haben beide die Firmware-Version: SN04 :wacko:

    @progandy: Mittlerweile gibt's die Seite immerhin (auch) schon auf deutsch. Vorher musste man rechts oben immer noch [english] auswählen, damit dort überhaupt etwas angezeigt wurde. Ich finde es echt traurig, dass ein Laden wie Seagate so einen miesen Support bietet. Vor allem waren die ES.2-Platten damals (als ich sie kaufte) etwas teurer als die normalen, weil diese speziell für den Serverbetrieb (24h-Betrieb) geeignet sein sollen und nun gibt es für die Normalen längst ein Update und die Besitzer der Serverplatten werden im Regen stehen gelassen.
    Ich glaube, Murphy hat was gegen mich persönlich. ;)

  • Seagate-Festplatten

    • Oscar
    • 31. Januar 2009 um 04:02

    Oh, Wahnsinn! Ich habe jetzt auch mal eine Antwort auf meine EMails erhalten:

    Zitat


    Dear Seagate Nearline Customer,

    This email is in response to a request that you placed with Seagate
    Support. We are informing you that a firmware update is available for
    affected Barracuda ES.2 SATA products. Please click here
    http://seagate.custkb.com/seagate/crm/se…sp?DocId=207963
    (or paste this URL into your web browser) to go to Seagate's Knowledge Base
    site to determine if it is necessary to upgrade to the new firmware.

    Thank You.
    Seagate Customer Support

    Alles anzeigen

    Aber diese EMail empfinde ich eher als Frechheit (klickt mal auf den Link). :cursing:

  • Problem mit GUI

    • Oscar
    • 30. Januar 2009 um 17:45

    Also IniReadSection liefert ein 2D-Array zurück. Das Beispiel aus der Hilfe zeigt das doch recht deutlich.

    Aber was viel interessanter ist, ist was Du von StringFormat erwartest? ^^

    Diese beiden Befehle solltest Du Dir mal genauer anschauen. Dann noch lernen, was ist ein Array und Du kannst Dein Script vollenden. :)

  • Problem mit dem Verwalten mehrerer "Datenbanken"

    • Oscar
    • 30. Januar 2009 um 17:36

    Wenn eine Datei zum lesen geöffnet wird, dann wird bei FileReadLine jeweils die nächste Zeile gelesen:

    [autoit]


    Func Load() ; Datenbank-Datei laden
    Local $sItem
    Local $hFile = FileOpen($sDBFile, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    $LabelInhalt = FileReadLine($hFile) ; 1. Zeile aus der Datei lesen
    $InputInhalt = FileReadLine($hFile) ; 2. Zeile aus der Datei lesen
    _GUICtrlListView_BeginUpdate($hLVHandle) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($sItem, $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($hLVHandle) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>Load

    [/autoit]

    Beim schreiben macht man es dann genau andersrum:

    [autoit]


    Func Save() ; Datenbank-Datei speichern
    Local $sItem
    Local $iCount = _GUICtrlListView_GetItemCount($hLVHandle) - 1 ; Anzahl der Listview-Einträge holen
    Local $hFile = FileOpen($sDBFile, 2) ; Datei zum speichern (überschreiben) öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    FileWriteLine($hFile, $LabelInhalt) ; 1. Zeile schreiben
    FileWriteLine($hFile, $InputInhalt) ; 2. Zeile schreiben
    For $i = 0 To $iCount ; Schleife, um alle Listview-Einträge durchzugehen
    $sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i) ; die Werte aus dem Listview-Eintrag holen
    FileWriteLine($hFile, $sItem) ; und in die Datei schreiben
    Next
    FileClose($hFile) ; Datei schließen
    EndIf
    EndFunc ;==>Save

    [/autoit]

    Zuerst die zusätzlichen Informationen verarbeiten und dann den Rest einlesen.

    Das mit Singleton weiß man, weil man nach einiger Zeit alle AutoIt-Befehle kennt (oder glaubt alle zu kennen ;) ).

  • Problem mit dem Verwalten mehrerer "Datenbanken"

    • Oscar
    • 30. Januar 2009 um 04:33

    Zu 1: Ich würde die zusätzlichen Informationen mit in die Datenbank packen. Einfach an den Anfang der Datei schreiben (mit FileWriteLine) und beim Lesen dann vor der While...WEnd-Schleife die Zeilen mit FileReadLine wieder auslesen.

    Zu 2: Du könntest Dir in einer Variablen merken, welche Datei gerade geöffnet ist und vergleichst diese dann mit der Eingabe (FileOpenDialog) des Benutzers.

    Zu 3: Schau Dir mal _Singleton() in der Hilfe an.

  • Kleiner Server-Rechner

    • Oscar
    • 28. Januar 2009 um 20:34

    ctec: Es kommt halt darauf an, was man damit machen will. Wenn der Speicherplatz einer 2,5" Festplatte ausreicht und das Notebook wirklich leise ist, kann das eine Alternative sein.

    Meine drei 3,5" Festplatten hätte ich dann aber als externe Platten betreiben müssen, was den Verbrauch (drei Netzteile) in die Höhe treibt oder den Preis (Spezialgehäuse). Und die Geschwindigkeit im LAN liegt bei meinem Server bei 40-45 MB/sek. bei großen Dateien. Wobei ich diese Geschwindigkeit mit Cat.5-Kabel (will ich noch gegen Cat.6-Kabel tauschen) erreiche. Mein Notebook (mit 2,5" Platte) kann von solchen Werten nur träumen (trotz Gigabit-Anschluss).
    Mir geht es also um einen schnellen lokalen Server, auf den ich meine Backups packen kann und auf den ich auch von unterwegs (per FTP) zugreifen kann.

    Aber mal abgesehen davon, wäre mein Notebook für mich keine Alternative, weil es zwischendurch immer mal wieder den Lüfter hochdreht, was doch recht nervt. Außerdem brauche ich ja mein Notebook für unterwegs. ;)

  • IE.au3 Object_id eines durch _IEImgClick aufgerufenen Fensters herausfinden

    • Oscar
    • 28. Januar 2009 um 04:29

    "Ganz allgemein": _IEAttach
    Da Du die IE-Funktionen bereits benutzt, wirst Du den Befehl vermutlich auch kennen. :huh:
    Keine Ahnung, wie man Dir da weiterhelfen kann, wenn man das Problem nicht nachvollziehen kann. Du kennst nicht zufällig eine Beispiel-Website, mit der man das rekonstruieren kann?

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™