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

  • Drop in ein Image

    • Oscar
    • 28. Oktober 2009 um 04:36

    Bei nur einer "Drag"-Datei reichen auch die Standard-AutoIt-Funktionen (ohne GuiRegisterMsg):

    Spoiler anzeigen
    [autoit]


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

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

    Global $msg, $w, $h, $Input, $Radio1, $Radio2, $Radio3, $Button
    $w = 640
    $h = 480
    GUICreate("Test", $w, $h, -1, -1, $WS_SIZEBOX + $WS_SYSMENU, $WS_EX_ACCEPTFILES)

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

    GUICtrlCreatePic(@WindowsDir & "\Santa Fe-Stuck.bmp", 10, 10, 250, 250)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)

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

    $Input = GUICtrlCreateInput("", 8, 430, 517, 21, $ES_READONLY)
    $Radio1 = GUICtrlCreateRadio("C:\", 8, 360, 57, 17)
    $Radio2 = GUICtrlCreateRadio("D:\", 8, 380, 57, 17)
    $Radio3 = GUICtrlCreateRadio("E:\", 8, 400, 57, 17)
    $Button = GUICtrlCreateButton("OK", 560, 430, 57, 21)

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_DROPPED
    Switch StringLeft(@GUI_DragFile, 2)
    Case 'c:'
    GUICtrlSetState($Radio1, $GUI_CHECKED)
    Case 'd:'
    GUICtrlSetState($Radio2, $GUI_CHECKED)
    Case 'e:'
    GUICtrlSetState($Radio3, $GUI_CHECKED)
    EndSwitch
    GUICtrlSetData($Input, @GUI_DragFile)
    EndSwitch
    WEnd

    [/autoit]
  • Tutorial: Dateien eines Ordners in Listview anzeigen

    • Oscar
    • 27. Oktober 2009 um 21:48
    Zitat von simon

    welche werte bekommst du ( Oscar ) wenn $files[0] oben ist

    Wie ich bereits schrieb, spielt es keine Rolle welche der beiden For...Next-Schleifen oben steht. Die Werte sind immer in dem Bereich, wie ich sie schon gepostet habe.
    Oben 0.5 und unten 0.4 Millisekunden.

    Aber abgesehen davon sollte die For-Schleife bei "1" beginnen und nicht bei "0", weil in $files[0] die Anzahl der Array-Elemente enthalten ist.

  • Wie kann ich das umsetzen?

    • Oscar
    • 27. Oktober 2009 um 18:38

    Das gab's doch bereits als µIT: BigInt

  • tcp über Internet

    • Oscar
    • 27. Oktober 2009 um 16:53

    Wenn Du das Serverscript auf dem Rechner von Deinem Bruder laufen lässt, musst Du dort die IP von dem Rechner Deines Bruders eintragen.
    Es wäre vielleicht ganz hilfreich, wenn Du Dich erstmal mit ein paar Netzwerk-Grundlagen beschäftigst. Man sollte den zweiten Schritt nicht vor dem Ersten machen.
    Ein Baby fängt (meistens) auch erst an zu krabbeln und dann zu laufen. (Ging mir gerade so durch den Kopf. ^^ )

  • tcp über Internet

    • Oscar
    • 27. Oktober 2009 um 16:36

    Im Client muss natürlich die IP des Servers eingetragen sein. Du willst Dich doch mit dem Server verbinden.
    Und der Server muss seine eigene IP verwenden.

  • Tutorial: Dateien eines Ordners in Listview anzeigen

    • Oscar
    • 27. Oktober 2009 um 16:32

    Vermutlich Anzahl der Prozessoren oder unterschiedliches System (AMD/Intel)?! :S

    Bei mir sind die Werte auch deutlich niedriger: ;)
    0.512076255501747
    0.423796879212302

  • Tutorial: Dateien eines Ordners in Listview anzeigen

    • Oscar
    • 27. Oktober 2009 um 16:23

    "Wer misst, misst Mist!"
    Ein Sprichwort, was eine gewisse Berechtigung hat. Zum einen sind die Unterschiede hier so klein, dass man sie getrost vernachlässigen kann. Und zum anderen, sollte man (wenn man schon misst) immer auch die umgekehrte Messung vornehmen, um evtl. Nebeneffekte ausschliessen zu können. Bei mir ist die zweite For...Next-Schleife immer die Schnellere. Wenn ich also $files[0] nach unten packe, dann ist das schneller. Bei UBound unten ist UBound schneller.
    Also hat das Ganze wohl weniger mit dem Befehl zu tun, als viel mehr mit irgendwelchen Caches, die dabei benutzt werden.

  • Soundkartenaktivität abfragen

    • Oscar
    • 26. Oktober 2009 um 15:14

    Wenn die Verzögerung so groß ist, dann hast Du vielleicht den Mikrofon-Eingang ausgewählt. Versuch' mal einen anderen Wert.
    Vom Rechner her sollte das schnell genug sein. :)

  • Soundkartenaktivität abfragen

    • Oscar
    • 26. Oktober 2009 um 14:39

    igillan: Update mal Dein AutoIt auf die aktuelle Version. ;)

    SEuBo: Danke, für die Rückmeldung. "Träge"? Was für einen Rechner hast Du? Prozessor?

  • Soundkartenaktivität abfragen

    • Oscar
    • 26. Oktober 2009 um 13:56

    Ich habe eine Funktion geschrieben, zum auslesen und anzeigen der Sounddaten. Du brauchst die beiden Dateien aus dem Anhang.
    Bitte berichte mal, ob das bei Dir funktioniert und mit welchem Betriebssystem/welche Soundkarte. Es funktioniert nämlich nicht auf jedem Rechner und ich weiß noch nicht warum.

    Dateien

    GuiLevelMeter.au3 7,59 kB – 275 Downloads mci-test.au3 2,81 kB – 302 Downloads
  • SHA1 Hash funktion gesucht

    • Oscar
    • 26. Oktober 2009 um 04:00

    Schau Dir mal das Beispiel zu "_Crypt_HashFile" in der Beta-Version an.

  • Ordnerstruktur in datei schreiben

    • Oscar
    • 25. Oktober 2009 um 15:41

    Um mal auf die ursprüngliche Frage zurückzukommen: Das einlesen eines Verzeichnisses inkl. Unterverzeichnisse.
    Das geht am besten mit einer rekursiven Funktion:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $sPath = @ScriptDir
    $aDirs = _RecursiveFileListToArray($sPath, '', 2)
    _ArrayDisplay($aDirs)
    $hFile = FileOpen(@ScriptDir & '\DirList.txt', 2)
    If $hFile <> -1 Then
    For $i = 1 To $aDirs[0]
    FileWriteLine($hFile, $aDirs[$i])
    Next
    FileClose($hFile)
    EndIf

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

    ;===============================================================================
    ; Function Name: _RecursiveFileListToArray($sPath[, $sPattern][, $iFlag][, $iFormat][, $iRecursion][, $sDelim])
    ; Description:: gibt Verzeichnisse (rekursiv) und/oder Dateien zurück, die einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $iRecursion = Verzeichnisse rekursiv durchsuchen
    ; 0 = Nein
    ; 1 = Ja
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern = '', $iFlag = 0, $iFormat = 1, $iRecursion = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(1, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    If $iRecursion Then $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat And $sReturn = '' Then Return StringSplit($sReturn, '', $iFormat)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc

    [/autoit]
  • Ordnerstruktur in datei schreiben

    • Oscar
    • 25. Oktober 2009 um 12:48

    Achim89, theoretisch hättest Du recht, aber praktisch ist das bei AutoIt anders. Eine Variable, die Du nicht innerhalb einer Funktion deklarierst, ist bei AutoIt immer global, ganz gleich ob Du Dim, Local oder Global benutzt.
    Beispiel:

    Spoiler anzeigen
    [autoit]


    Global $global = 200

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

    Local $lokal = 100

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

    _wert()

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

    MsgBox(0, "", "Global: " & $global & " Lokal:" & $lokal)

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

    Func _wert()
    $lokal = 500
    EndFunc ;==>_wert

    [/autoit]

    Erst wenn Du das Hauptprogramm in eine Funktion (Main) packst, bleibt die lokale Variable nur innerhalb der Funktion gültig:

    Spoiler anzeigen
    [autoit]


    Global $global = 200
    Main()

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

    Func Main()
    Local $lokal = 100
    _wert()
    MsgBox(0, "", "Global: " & $global & " Lokal:" & $lokal)
    EndFunc

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

    Func _wert()
    $lokal = 500
    EndFunc ;==>_wert

    [/autoit]
  • Problem mit "Keybinder"

    • Oscar
    • 25. Oktober 2009 um 06:22

    Ich kenne das Game nicht, aber die Befehle, die Du sendest sehen schon danach aus, als hättest Du einen Vorteil dabei.
    Wenn der Hersteller/Betreiber des Spiels den Einsatz solcher Tools dulden sollte, warum baut er das nicht gleich ins Spiel ein?

  • Zwei entfernte Computer vernetzen

    • Oscar
    • 24. Oktober 2009 um 17:50

    Kostenlose Games sind mir zwar nicht bekannt, aber empfehlen kann ich "Herr der Ringe: Die Schlacht um Mittelerde 2" plus das AddOn "Der Herr der Ringe: Die Schlacht um Mittelerde 2 - Aufstieg des Hexenkönigs" (falls Du auf Echtzeitstrategiespiele stehst).
    Das Game gibt es mittlerweile im Low-Budget-Bereich, macht aber immer wieder Spass. Es lässt sich problemlos im lokalen Netzwerk sowie über Hamachi spielen. Habe das oft mit meiner Nichte gespielt.

  • Warum ist Local Scriptvariable durch eine Func(ohne ByRef) änderbar?

    • Oscar
    • 23. Oktober 2009 um 04:48

    In einer eigenen UDF solltest Du alle dort benutzten Variablen als Local deklarieren, damit evtl. vorhandene globale Variablen gleichen Namens nicht zu falschen Ergebnissen führen.

  • Einige Fragen...

    • Oscar
    • 22. Oktober 2009 um 15:14

    Mit der aktuellen Stable-Version geht nur einmal AdlibEnable. Ab der Version 3.3.1.0 Beta gibt es AdlibRegister, womit man auch mehrere Funktionen zeitgesteuert aufrufen kann.
    Als Alternative gibt es noch die _Timer-UDF (auch schon in der Stable), die ebenfalls mehrere zeitgesteuerte Funktionsaufrufe ermöglicht.

  • For hochzählen oder alternative?

    • Oscar
    • 21. Oktober 2009 um 18:07
    [autoit]


    If UBound($temp) < 18 Then ContinueLoop

    [/autoit]


    in Zeile 12 einfügen.

  • Listview Items durchblättern

    • Oscar
    • 21. Oktober 2009 um 18:02

    So:

    Spoiler anzeigen
    [autoit]


    #Include <GuiListView.au3>
    #include <GUIConstants.au3>
    #include <Array.au3>

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

    Dim $array[3][2]
    $array[0][0] = "a"
    $array[0][1] = "a2"
    $array[1][0] = "b"
    $array[1][1] = "b2"
    $array[2][0] = "c"
    $array[2][1] = "c2"
    ;~ _ArrayDisplay($array, "Whole array")

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

    $gui = GUICreate("bla", 700, 700)
    GUISetState(@SW_SHOW)
    $index = 0
    $listview = GUICtrlCreateListView("Spalte1|Spalte2", 20, 30, 200, 150)
    For $i = 0 To UBound($array) - 1
    GUICtrlCreateListViewItem($array[$i][0] & "|" & $array[$i][1], $listview)
    Next
    $button = GUICtrlCreateButton("next element", 75, 500, 90, 30)
    Do
    $msg = GUIGetMsg()
    Select
    Case $msg = $button
    $read = _GUICtrlListView_GetItemTextString($listview, $index)
    MsgBox(0, "ausgabe", $read)
    $index += 1
    If $index >= _GUICtrlListView_GetItemCount($listview) Then $index = 0
    EndSelect
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]
  • Txt-Datei -> Zeile löschen

    • Oscar
    • 21. Oktober 2009 um 13:14

    So:

    [autoit]


    #include <File.au3>
    _FileWriteToLine(@ScriptDir & '\test.txt', 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™