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

  • GuiGetMsg(1)

    • Oscar
    • 3. Juni 2009 um 20:28

    OnEventMode benutzen!

  • GuiGetMsg(1)

    • Oscar
    • 3. Juni 2009 um 20:18

    Dieser Codeschnipsel sieht richtig aus und dürfte keinen Fehler produzieren (so es das $Fenster1 gibt).

  • Problem mit Script

    • Oscar
    • 3. Juni 2009 um 20:10

    [Thread closed]

  • FileRead-Write in der neuen Beta

    • Oscar
    • 3. Juni 2009 um 19:58

    So ganz stimmt da was aber nicht.
    Mit vorherigem Schreibzugriff funktioniert es:

    [autoit]


    $sFile = @ScriptDir & '\test.txt'

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

    $hFile = FileOpen($sFile, 2) ; zum Schreiben öffnen
    If $hFile <> -1 Then
    FileWriteLine($hFile, Random(1000, 9999, 1))
    FileSetPos($hFile, 0, 0)
    MsgBox(0, 0, FileRead($hFile))
    FileClose($hFile)
    EndIf

    [/autoit]


    Macht man aber zuerst den Lesezugriff, dann klappt das nicht (=Leerstring):

    [autoit]


    $hFile = FileOpen($sFile, 2) ; zum Schreiben öffnen
    If $hFile <> -1 Then
    ;~ FileSetPos($hFile, 0, 0)
    MsgBox(0, 0, FileRead($hFile))
    FileWriteLine($hFile, Random(1000, 9999, 1))
    FileClose($hFile)
    EndIf

    [/autoit]


    Egal, ob mit oder ohne FileSetPos.

    Edit: Achso, FileOpen(...,2) da wird die Datei ja neu angelegt. ^^
    Edit2: Nee, geht auch nicht mit ",1":

    [autoit]


    $sFile = @ScriptDir & '\test.txt'
    $hFile = FileOpen($sFile, 1) ; zum Anhängen öffnen
    If $hFile <> -1 Then
    MsgBox(0, 0, FileRead($hFile))
    FileWriteLine($hFile, Random(1000, 9999, 1))
    FileSetPos($hFile, 0, 0)
    MsgBox(0, 0, FileRead($hFile))
    FileClose($hFile)
    EndIf

    [/autoit]
  • FileRead-Write in der neuen Beta

    • Oscar
    • 3. Juni 2009 um 17:19

    Hmm...im AutoIt Changelog zur neuen Betaversion steht:

    Zitat

    - Changed: It is now possible to read from files opened for writing.


    Schön, dachte ich mir, braucht man nicht vorher einlesen. Also mal ein Testskript erstellt:

    [autoit]


    $sFile = @ScriptDir & '\test.txt'
    FileWrite($sFile, 'blablabla' & @CRLF) ; Datei erstellen

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

    $hFile = FileOpen($sFile, 2) ; zum Schreiben öffnen
    If $hFile <> -1 Then
    MsgBox(0, 0, FileRead($hFile)) ; Datei auslesen und anzeigen (erscheint aber nur ein Leerstring)
    FileWriteLine($hFile, Random(1000, 9999, 1))
    FileClose($hFile)
    EndIf

    [/autoit]


    In der Msgbox müsste doch eigentlich der Inhalt der Datei angezeigt werden, oder habe ich das falsch verstanden?

  • Laufwerke ansteuern

    • Oscar
    • 3. Juni 2009 um 16:53

    Mal schnell 'ne Funktion gescriptet:

    [autoit]


    _CDTrayAll()

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

    Func _CDTrayAll($iFlag = 1)
    Local $aStatus[2] =['CLOSE', 'OPEN']
    Local $aCDROM = DriveGetDrive('CDROM')
    If @error Then Return SetError(1, 0, 0)
    For $i = 1 To $aCDROM[0]
    CDTray($aCDROM[$i], $aStatus[$iFlag])
    Next
    EndFunc

    [/autoit]
  • Desktopsperre per USB-Stick

    • Oscar
    • 3. Juni 2009 um 16:27

    Huch, hier war ja noch das alte Skript online.
    Die Version 1.2 gibt's doch schon länger. :rolleyes:

  • Bei welchem Provider seit Ihr?

    • Oscar
    • 3. Juni 2009 um 16:10

    Bin schon seit Jahren bei 1&1 und habe jetzt (seit letztem Monat) auch einen Komplett-Anschluss "INet und Telefon" (VoIP-Telefonie).
    Kann bisher nicht klagen. Läuft alles tadellos, auch die Umstellung hat problemlos geklappt (man liest da ja immer schlimme Sachen, aber bei mir hat alles geklappt).
    Geschwindigkeitsmäßig habe ich 14000/1000 kBit (Down-/Upload).

    Was das angeht, bin ich sehr zufrieden. :)

  • Vista ist Müll

    • Oscar
    • 3. Juni 2009 um 15:58

    Naja...mit der Stabilität von Windows XP bin ich eigentlich ganz zufrieden. An den letzten Komplettabsturz kann ich mich gar nicht mehr erinnern (Nein, ich habe kein Alzheimer ;) ).
    Die Boot-Zeit könnte etwas kürzer sein. Aber ansonsten läuft XP sehr gut. Das ist wohl auch (mit) der Grund, warum sich Vista so schlecht verkauft.

  • Random Senden

    • Oscar
    • 2. Juni 2009 um 20:26

    Der Verbindungs-Check-Thread wurde bereits geschlossen. Bei dem anderen erwarten wir noch eine Erklärung.

  • Buchstaben in ASCII umwandeln

    • Oscar
    • 2. Juni 2009 um 20:21

    StringSplit macht aus einem String ein Array.

  • Remote-Zugriff, Neustart, Auflösung ablesen

    • Oscar
    • 2. Juni 2009 um 20:20

    Oh, das weiß ich jetzt nicht, ob ein AutoIt-Skript bereits zu diesem Zeitpunkt ausgeführt werden kann.
    Und Shutdown fährt natürlich den Rechner runter, auf dem es läuft. Du müsstest es also zum Remote-Rechner übertragen und dort starten.

    Dabei fällt mir noch ein: Ist die Anmeldemaske bereits in der hohen Auflösung?

  • Problem mit DriveMapAdd

    • Oscar
    • 2. Juni 2009 um 18:24

    Teste mal hiermit und schreib, welche Fehlermeldung kommt:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>

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

    Dim Const $Titel = "Verbindung zum HOME_Laufwerk"
    Dim Const $Laufwerk = "h:"
    $Freigabe = "\\192.168.0.10\home_sh$\"

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

    $d = DriveMapGet($Laufwerk)
    If $d <> "" Then
    $text = "Soll die Verbindung " & $d & " (" & $Laufwerk & ") getrennt werden?"
    $ret = MsgBox(1, $Titel, $text)
    If $ret = 1 Then
    $d1 = DriveMapDel($Laufwerk)
    If $d1 = 1 Then
    MsgBox(0, $Titel, "Verbindung wurde getrennt")
    Else
    MsgBox(0, $Titel, "Verbindung konnte nicht getrennt werden.")
    EndIf
    EndIf
    EndIf

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

    GUICreate($Titel, 320, 120, @DesktopWidth / 2 - 160, @DesktopHeight / 2 - 45)

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

    GUICtrlCreateLabel("Benutzer: ", 10, 10)
    GUICtrlCreateLabel("Passwort: ", 10, 40)

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

    $i1 = GUICtrlCreateInput("", 70, 5, 240, 20)
    $i2 = GUICtrlCreateInput("", 70, 35, 240, 20, $ES_PASSWORD)
    $ok = GUICtrlCreateButton("Ok", 160, 75, 70, 20, 1)
    $esc = GUICtrlCreateButton("Abbrechen", 240, 75, 70, 20)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $ok
    $User = GUICtrlRead($i1)
    $Pw = GUICtrlRead($i2)
    $Freigabe = $Freigabe & $User
    $x1 = DriveMapAdd($Laufwerk, $Freigabe, 0, $User, $Pw)
    $err = @error
    If $x1 = 1 Then
    Run("explorer.exe /e," & $Laufwerk)
    ExitLoop
    Else
    Dim $aMeldung[7] = ['kein Fehler', 'Undefinierter/anderer Fehler', 'Der Zugriff wurde verweigert', 'Das Gerät ist bereits zugewiesen', 'Ungültiger Gerätename', 'Ungültige Remote-Freigabe', 'Ungültiges Passwort']
    MsgBox(0, "Fehler", $aMeldung[$err])
    EndIf
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $esc
    ExitLoop
    EndSelect
    WEnd

    [/autoit]
  • Vista ist Müll

    • Oscar
    • 2. Juni 2009 um 17:20

    Die Zählweise bei MS finde ich schon eigenartig.
    Andererseits...wenn man mal so überlegt:

    Windows 3.x
    Win98 wäre dann die 4
    Windows 2000 / NT bekommt die 5
    XP die 6
    Windows 7

    Also...alles dazwischen (95, ME, Vista) war Schrott und zählt nicht. :D

  • Array??

    • Oscar
    • 2. Juni 2009 um 16:45

    Bei meinem Beispiel fehlt aber noch die Fehlerbehandlung (wenn der Benutzer beim FileOpenDialog auf abbrechen klickt, wird ein leerer Eintrag erstellt).
    Aber das wollen wir ihm mal zur Übung allein machen lassen. ;)

  • Buchstaben in ASCII umwandeln

    • Oscar
    • 2. Juni 2009 um 16:37
    Zitat von seTTs

    Wahrscheinlich eine zu alte AutoIT Version.

    Warum updatest Du dann nicht?
    Die neuen AutoIt-Versionen besitzen mehr Funktionen und weniger Fehler. :D

  • Array??

    • Oscar
    • 2. Juni 2009 um 16:34

    So geht's:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <array.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 700, 510, 257, 323)
    $ListView1 = GUICtrlCreateListView("Listview1", 24, 48, 170, 342)
    GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 0, 160) ; setzt die 1. Spalte des Listviews auf 160 Pixel Breite

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

    $ListView2 = GUICtrlCreateListView("Listview2", 224, 48, 170, 342)
    $ListView3 = GUICtrlCreateListView("Listview3", 424, 48, 186, 342)
    $Button1 = GUICtrlCreateButton("PC`s Laden", 24, 400, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Check", 24, 432, 75, 25, 0)
    $Button3 = GUICtrlCreateButton("export1", 136, 400, 59, 25, 0)
    $Button4 = GUICtrlCreateButton("export2", 336, 400, 59, 25, 0)
    $Button5 = GUICtrlCreateButton("export3", 552, 400, 59, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _insert()
    EndSwitch
    WEnd

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

    Func _insert()
    $string = FileOpenDialog("Pc Liste Wählen", @ScriptDir & "\", "Pc Liste (*.txt;*.csv)", 1 + 4)
    $array = StringSplit($string, '|')
    For $i = 1 To $array[0]
    If $array[0] = 1 Then
    GUICtrlCreateListViewItem($array[$i], $ListView1)
    Else
    If $i > 1 Then GUICtrlCreateListViewItem($array[1] & $array[$i], $ListView1)
    EndIf
    Next
    EndFunc ;==>_insert

    [/autoit]
  • Wie optimierte man den Verbrauch an Arbeitsspeicher?

    • Oscar
    • 2. Juni 2009 um 16:17

    AutoIt ist keine Programmiersprache, die eine "echte" Kompilierung verwendet. Das Skript bleibt ein Skript und wird zur Laufzeit interpretiert.
    Einige grundsätzliche Resourcen (auf die Du gar keinen Einfluss hast) werden daher bereits für den Interpreter benötigt.

  • Buchstaben in ASCII umwandeln

    • Oscar
    • 2. Juni 2009 um 16:11

    Mit StringToASCIIArray bekommst Du ein Array mit den ASCII-Werten der Buchstaben.
    Beispiel:

    Spoiler anzeigen
    [autoit]


    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 162, 108, 193, 125)
    $Button1 = GUICtrlCreateButton("Erzeugen", 45, 75, 75, 25, 0)
    $Input1 = GUICtrlCreateInput("Dein Name:", 8, 8, 145, 21)
    $Input2 = GUICtrlCreateInput("", 8, 40, 145, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $aRead = StringToASCIIArray(GUICtrlRead($Input1))
    For $i = 0 To UBound($aRead) - 1
    GUICtrlSetData($Input2, Chr($aRead[$i]), 1)
    Sleep(200)
    Next
    EndSwitch
    WEnd

    [/autoit]
  • Remote-Zugriff, Neustart, Auflösung ablesen

    • Oscar
    • 2. Juni 2009 um 14:04

    Naja, das ist doch nur ein Einzeiler:

    [autoit]

    If @DesktopWidth <> 1600 Then Shutdown(2 + 4) ; Force a Reboot

    [/autoit]

    Aber bei dem Fehlerbild würde ich erstmal auf ein Hardware-Problem tippen. Oder die Grafikkarte verträgt sich nicht mit irgendeiner anderen Steckkarte (mal einen anderen PCI-Slot für die andere(n) Karte(n) ausprobieren).

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™