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

Beiträge von BugFix

  • Shellexecute und _FileListToArray Problem

    • BugFix
    • 18. Oktober 2007 um 21:43

    teh_hahn:

    Zitat

    1. GUI Message-Loop Modus (OnEvent ist völlig unangebracht bei den paar Controls!)


    Völlig unangebracht kann ich nicht behaupten.
    Selbst bei einem einzigen Control verwende ich z.B.auch OnEvent-Mode.
    Hintergrund:
    Wer z.B. Programmiererfahrungen im Bereich VB hat fühlt sich im OnEvent-Mode sofort heimisch.;)
    Ich finde die Übersicht im Code wesentlich besser, wenn alles sauber in Funktionen gegliedert ist.

    Aber letztlich bleibt:
    Da beide Variante möglich sind, sollte es auch dem jeweiligen freigestellt bleiben, was ihm denn mehr zusagt.
    Spätestens bei komplexen Skripten wird eh die Tendenz zum OnEvent-Mode steigen.

  • Popup speichern

    • BugFix
    • 18. Oktober 2007 um 21:34

    Versuch doch mal, ob dir das AutoIt-Window-InfoTool etwas zum Popup sagen kann, evtl. nen Titel oder Ctrl-namen.

  • Shellexecute und _FileListToArray Problem

    • BugFix
    • 18. Oktober 2007 um 08:27

    Nö :), Der Rückgabewert von _FilelistToArray gibt nur Auskunft über Erfolg/Fehler.
    Syntax:

    [autoit]

    Dim $Array
    $ret = _FileListToArray($Path, $Array)

    [/autoit]
  • Input auf Eingabe prüfen

    • BugFix
    • 18. Oktober 2007 um 08:21

    MIt GUICtrlRead() prüfen funktioniert manchmal nicht. Hier mal mit BitAnd().
    Habe deine Funktion noch etwas optimiert. ;)

    [autoit]

    Func checkbox_check($array)
    For $i = 1 To UBound($array) - 1
    If BitAND(GUICtrlRead($array[$i]),$GUI_CHECKED) Then Return True
    Next
    Return False
    EndFunc

    [/autoit]
  • _Array2DAdd( )

    • BugFix
    • 17. Oktober 2007 um 22:35

    Zur Vervollständigung der Arrayfunktionen hier noch ein ArrayAdd-Funktion auch für 2D-Arrays.
    _Array2DAdd(ByRef $avArray, $sValue)
    Für 2D-Arrays müssen die Werte getrennt durch '|' eingegeben werden.

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    Dim $ar1[4] = [1,2,3,4]
    Dim $ar[3][2]
    $ar[0][0] = 1
    $ar[1][0] = 2
    $ar[2][0] = 3
    $ar[0][1] = 4
    $ar[1][1] = 5
    $ar[2][1] = 6

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

    _ArrayDisplay($ar1)
    _Array2DAdd($ar1, '5')
    _ArrayDisplay($ar1)
    _ArrayDisplay($ar)
    _Array2DAdd($ar, '7|8')
    _ArrayDisplay($ar)

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

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;
    ; Function _Array2DAdd(ByRef $avArray, $sValue='')
    ;
    ; Description Redim Array Size and add an Array element at last position
    ; Works with any occurences in 2nd Dimension
    ; Works also with 1D-Array
    ;
    ; Parameter $avArray Given Array
    ; optional $sValue Value of new Element, parts must be seperate with '|'
    ;
    ; Return Succes -1
    ; Failure 0 and set @error
    ; @error = 1 given array is not array
    ; @error = 2 given parts of Element too less/much
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func _Array2DAdd(ByRef $avArray, $sValue='')
    If ( Not IsArray($avArray) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($avArray,2)
    If @error = 2 Then
    ReDim $avArray[UBound($avArray)+1]
    $avArray[UBound($avArray)-1] = $sValue
    Else
    Local $arValue
    ReDim $avArray[UBound($avArray)+1][$UBound2nd]
    If $sValue = '' Then
    For $i = 0 To $UBound2nd-2
    $sValue &= '|'
    Next
    EndIf
    $arValue = StringSplit($sValue, '|')
    If $arValue[0] <> $UBound2nd Then
    SetError(2)
    Return 0
    EndIf
    For $i = 0 To $UBound2nd-1
    $avArray[UBound($avArray)-1][$i] = $arValue[$i+1]
    Next
    EndIf
    Return -1
    EndFunc ;==>_Array2DAdd

    [/autoit]

    Dateien

    _Array2DAdd.au3 1,4 kB – 346 Downloads
  • Mehrdiminsionales _Arrayadd ?

    • BugFix
    • 17. Oktober 2007 um 21:39

    Erfinde nicht das Fahrrad neu - frag den King :rofl:

    Diese Funktion von mir kannst du dazu verwenden:
    _Array2DAdd( )

  • Daten mit in *.exe reinpacken (z.B. bilder, ...)

    • BugFix
    • 17. Oktober 2007 um 19:47

    Dann zeig doch mal die Codezeile, die nicht funktioniert.

  • Unnötige Infos

    • BugFix
    • 17. Oktober 2007 um 17:53

    @spinne

    Zitat

    Jetzt bin ich wider 0,003% schlauer


    Mal überlegen..... Wenn dein Schlauzustand 100% sind hast du jetzt 100,003%.
    Aber..... 100,003% von Nix bleibt doch Nix. :rofl:

    :keks: (war nur ein Scherz)

  • Nummerierte Ordnernamen

    • BugFix
    • 17. Oktober 2007 um 11:14

    So sollte es gehen:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    Dim $arFolder[1] = [0]
    Dim $Name2Search = 'Ordner-' ; Bestandteil des Ordnernamens der immer identisch ist
    Dim $SearchPath = 'C:\Daten\' ; Root Pfad in dem deine Ordner stecken
    Dim $search = FileFindFirstFile($SearchPath & "*.*")

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

    If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

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

    While 1
    $file = FileFindNextFile($search)
    If FileGetAttrib($file) = 'D' Then
    If StringInStr($file, $Name2Search, 1) Then
    ReDim $arFolder[UBound($arFolder)+1]
    $arFolder[UBound($arFolder)-1] = Number(StringTrimLeft($file, StringLen($Name2Search))) ; Der gleichnamige Bestandteil wird abgeschnitten
    $arFolder[0] += 1
    EndIf
    EndIf
    If @error Then ExitLoop
    WEnd
    FileClose($search)

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

    MsgBox(0, 'Datei mit größtem Zahlenwert', $Name2Search & _ArrayMax($arFolder,1,1))

    [/autoit]
  • Unnötige Infos

    • BugFix
    • 17. Oktober 2007 um 08:30

    Physikalisch begrenzt.
    Nach 7-mal Falten liegen 128 Lagen Papier dort. Auf der Innenseite der Falzkante entsteht somit ein Wulst, der nicht mehr überwunden werden kann.
    Du könntest das Papier gewissermaßen 'umformen', es sieht dann von der Seite aus wie ein liegendes 'U'. Damit liegen die Seiten aber nicht mehr direkt aufeinander und somit ist die Grundbedingung nicht mehr erfüllt.

  • Unnötige Infos

    • BugFix
    • 17. Oktober 2007 um 00:04

    @huggy: Es geht definitiv nicht. Und da es nicht von der Größe des Papiers abhängt kannst du das mit nem DINA4-Blatt oder nem fußballfeldgroßen Blatt probieren.
    Entscheidend sind die Falzkanten. 128 Lagen Papier (64 Pfalzkanten) aus einem einzigen Stück Papier sind das Maximum.

  • Daten mit in *.exe reinpacken (z.B. bilder, ...)

    • BugFix
    • 16. Oktober 2007 um 23:59
    Zitat

    Und Zwar wenn ich die dateien mit dem befehl FileInstall schreibe, und es dann komplimiere, und es dann auf einem anderem pc ausführe, merke ich das die dateien nicht mir drinen in der .exe sind.


    Dann hast du etwas falsch gemacht.
    FileInstall() includet die angegebenen Dateien und sie werden mit compiliert und stehen dann zur Installation auf dem Zielrechner zur Verfügung.

  • Spieleprogrammierung

    • BugFix
    • 16. Oktober 2007 um 20:49

    Spiele, die via Internet gespielt werden sollen, müssen plattformunabhängig sein.
    Insofern ist es sinnvoll auf OpenSource zurückzugreifen. Dort gibt es: XPCOM (Cross Platform Component Object Model)
    Dieses Objektmodell ist in etwa vergleichbar mit ActiveX bei $MS.
    Programmieren kannst du z.B.mit XUL, auf XML basierend.
    Hier findest du Spiele, die darauf basieren.

  • Text Datei schreiben

    • BugFix
    • 15. Oktober 2007 um 19:23
    [autoit]

    Dim $arFile
    _FileReadToArray('Dateipfad', $arFile)
    If IsArray($arFile) Then
    For $i = 24 To $arFile[0]
    ; Daten aus Zeile selektieren,Tipp:_StringBetween()
    Next
    EndIf

    [/autoit]

    Und den Rest wirst du schon selber schaffen, probier mal.

  • in autostart kopieren

    • BugFix
    • 15. Oktober 2007 um 18:28

    Schau dir in der Hilfe diese Funktion an: FileCreateShortcut()

  • AutoIt-Anfänger Guide / Wie poste ich richtig?

    • BugFix
    • 15. Oktober 2007 um 18:20

    Da die Zahl der unformatierten Posts inflationär ansteigt, möchte ich hier nur ganz kurz zeigen, mit welchen Button aus einem Schwarz/Weiß-Geschreibsel ein lesbarer Post wird. ;)

    Alle zur Formatierung notwendigen Befehle stecken hinter den Button über dem Editfeld.

    Was sollte wie formatiert werden?
    - AutoIt-Code immer als solcher, vorm Einfügen von Code immer in den Quellcodemodus schalten
    - Text mit Einrückungen als Code, dann bleiben die Tabulatorsprünge erhalten
    - Besser als Großbuchstaben (pfui: Geschrei) ist es einen Text fett zu formatieren um ihn besonders hervorzuheben. Wahlweise auch kursiv oder unterstrichen, ist Geschmackssache.
    - Auch das farbige Markieren von Worten oder Sätzen ist OK. Nur nicht kunterbunt werden - sonst siehts aus wie Fasching. :D
    Ausnahme: Geburtstagswünsche - je bunter desto besser :P

    Wie wird formatiert?
    Am einfachsten:
    - Text schreiben/reinkopieren
    - zu formatierenden Bereich markieren
    - Button mit gewünschtem Format klicken

    Und bitte immer vor dem Posten: die Vorschau ansehen.
    Im Editfenster sieht vieles völlig anders aus und nur wenn es gepostet ist sieht man evtl. Fehler.

    Für alle, die die entsprechenden Button noch nicht entdeckt haben:
    AutoIT Installer.zip

    bernd670: Ergänzungen für neuen Editor!

    Dateien

    Editor.png 47,91 kB – 0 Downloads
  • Geiz ist geil.

    • BugFix
    • 15. Oktober 2007 um 17:39
    Zitat

    Erstelle Dir einfach bei freemail.web.de nen Account, dann kannste Faxe
    empfangen...


    Das ist ein Trugschluß ;)
    Dieses FreeFaxProgramm läßt keine Faxe zu Sondernummern zu. Und die von Web.de vergebene Nummer ist eine Sondernummer.

  • _IEGetObjectByName

    • BugFix
    • 15. Oktober 2007 um 16:05
    [autoit]

    _IENavigate ( ByRef $o_object, $s_url [, $f_wait = 1] )

    [/autoit]
  • Teile eines Arrays auslesen

    • BugFix
    • 15. Oktober 2007 um 15:56
    Zitat

    if _StringBetween($aArray[$i], '<td>', '</td>', 1) = $aSuche Then


    Da fängt der Käse schon an. :)

    Liebe Fragesteller: Bitte LEST DIE ANTWORTEN!!
    Wozu bringe ich ein Bsp. mit korrekter Syntax, wenn du dir nicht mal die Mühe machst die Funktion anzuschauen.
    _StringBetween() liefert ein Array zurück!! Deine obige Abrage ist somit total fürn .... !
    Die Verwendung von Arrays solltest du dir dringend etwas genauer anschauen.

    Nochwas: Wir können den Code hier mit Tags versehen. Das verbessert die Lesbarkeit eines Posts enorm.
    Was habt hier gegen einen gut lesbaren Post einzuwenden, dass ihr euch strikt weigert Tags zu setzen?

  • Problem mit Traymenu

    • BugFix
    • 15. Oktober 2007 um 15:46

    So kannst du durch Klick auf das Item selber checken/unchecken:

    Spoiler anzeigen
    [autoit]

    #Include <Constants.au3>
    #NoTrayIcon

    Opt("TrayMenuMode",1+2) ; Default tray menu items (Script Paused/Exit) will not be shown.
    ; usercreated checked items will not automatically unchecked if you click it

    $checkeditem = TrayCreateItem("Checked")
    $shape = TrayCreateItem("")
    $exititem = TrayCreateItem("Exit")

    TraySetState()

    While 1
    $msg = TrayGetMsg()
    Switch $msg
    Case 0
    ContinueLoop
    Case $checkeditem
    $state = TrayItemGetState($checkeditem)
    Switch $state
    Case 68 ; unchecked
    TrayItemSetState($checkeditem,$TRAY_CHECKED)
    Case 65 ; checked
    TrayItemSetState($checkeditem,$TRAY_UNCHECKED)
    EndSwitch
    Case $exititem
    ExitLoop
    EndSwitch
    WEnd

    Exit

    [/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™