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

Beiträge von misterspeed

  • Daten an email senden

    • misterspeed
    • 9. Juni 2012 um 09:07

    Sofern die UDF da oben vollständig ist sehe ich keine Verwendung der beiden $i_error_* Variablen. Vielleicht hatten die ja mal in einer früheren Version der UDF eine Funktion und wurden vergessen...

  • Webseiten in der Liste funktionieren nicht so wie sie sollen

    • misterspeed
    • 9. Juni 2012 um 01:53

    Genau zum besseren Verständnis und der Veranschaulichung der beiden Arrays war das arraydisplay ja noch drin. ;)
    Wie man das wieder rausbekommt haste ja gottseidank selbst rausgefunden, sonst würde ich jetzt etwas an dir zweifeln. :P

  • Webseiten in der Liste funktionieren nicht so wie sie sollen

    • misterspeed
    • 8. Juni 2012 um 23:53

    Naja was erwartest du? Das Script funktioniert ansich ja und macht das was du programmiert hast. Beim go Button überprüfst du den Inhalt von list1 und nicht von list2, also kann auch nur das geöffnet werden was zur list1 passt, also entweder die Suchmaschine google oder das Videoportal youtube. Mehr ist auch nicht in deinem Array gespeichert.

    Wenn du also eine der Suchmaschinen auswählen willst musst du erstmal dein Array ändern und hier die urls für jede suchmaschine speichern, das selbe für die Videoportale. Im zweiten Schritt musst du natürlich liste2 statt liste1 prüfen.

    Nebenbei bemerkt rate ich davon ab direkt nach einem exitloop oder continueloop statement einen Funktionsaufruf zu platzieren. Dies funktioniert im Falle von shellexecute zwar zufälligerweise, ist aber bei anderen Funktionen riskant. Lies am besten die Hilfe zu den beiden statements, dann wird dir auch klar warum.

    Zu guter letzt eine lauffähige Version:

    Spoiler anzeigen
    [autoit]


    #include <array.au3>

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

    Global $a_VideoPortals[5][2] = [ _
    ["Name","URL"], _
    ["Youtube","www.youtube.com"], _
    ["Vimeo","www.vimeo.com"], _
    ["Clipfish","www.clipfish.de"], _
    ["MyVideo","www.myvideo.de"] _
    ]

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

    Global $a_SearchMachines[5][2] = [ _
    ["Name","URL"], _
    ["Google","www.google.de"], _
    ["Lycos","www.lycos.de"], _
    ["Yahoo","www.yahoo.de"], _
    ["Alta Vista","www.altavista.com"] _
    ]

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

    Global $a_Find

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

    _ArrayDisplay($a_VideoPortals)
    _ArrayDisplay($a_SearchMachines)

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

    $h_Gui = GUICreate ("", 350, 250)
    $h_List1 = GUICtrlCreateList ("", 10, 10, 160, 160)
    $h_List2 = GUICtrlCreateList ("", 180, 10, 160, 160)
    $h_Go = GUICtrlCreateButton("Go", 10, 200, 50, 26)

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

    GUICtrlSetData ($h_List1, "Die Besten Videoportale|Die Besten Suchmaschinen")

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

    GUISetState (@SW_SHOW, $h_Gui)

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

    While True
    Switch GUIGetMsg ()
    Case -3
    Exit
    Case $h_List1
    $s_Read = GUICtrlRead ($h_List1)
    Switch $s_Read
    Case "Die Besten Videoportale"
    $a_Find = $a_VideoPortals
    Case "Die Besten Suchmaschinen"
    $a_Find = $a_SearchMachines
    Case Else
    $a_Find = -1
    EndSwitch
    if $a_Find <> -1 Then
    $newString=""
    GUICtrlSetData ($h_List2, $newString)
    For $i = 1 To UBound ($a_Find) - 1
    $newString &= $a_Find[$i][0] & "|"
    Next
    GUICtrlSetData ($h_List2, StringTrimRight($newString,1))
    EndIf
    Case $h_Go
    $s_Read = GUICtrlRead ($h_List1)
    Switch $s_Read
    Case "Die Besten Videoportale"
    $a_Find = $a_VideoPortals
    Case "Die Besten Suchmaschinen"
    $a_Find = $a_SearchMachines
    Case Else
    $a_Find = -1
    EndSwitch
    if $a_Find <> -1 Then
    $s_Read = GUICtrlRead ($h_List2)
    For $i = 1 To UBound ($a_Find) - 1
    If $s_Read = $a_Find[$i][0] Then
    ShellExecute ($a_Find[$i][1])
    ExitLoop
    EndIf
    Next
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • endlos funktion

    • misterspeed
    • 2. Juni 2012 um 18:02
    Zitat von AutoItfreak

    Also Nochmal

    sorry vieleicht hab i mich auch zu kompliziert ausgedrückt

    so soll die funktion aussehen:

    [autoit]

    Func _objects($object1, $object2, $object3, $object4, $object5, ...)

    [/autoit]

    Dies sind alle 1-dimensional arrays die dort übergeben werden

    Der sinn dabei ist das alle objekte(so viele wie der user erstellt hat)
    zu einer 2-dimensionallen array zusammengefügt werden

    Alles anzeigen


    Hab zwar immernoch nicht verstanden was du da nun genau tun willst und warum, aber nochmals zusammengefasst:


    Dein Anwender kann Objekte erstellen, dessen Attribute (Position, Farbe und Größe ????) in einem jeweiligen Array gespeichert sind. Nun willst du alle Objekte in ein 2D Array überführen.
    Da stell ich mir einfach die Frage warum du die Objekte nicht gleich in ein 2D Array speicherst. Was für Objekte sind das, und wie werden sie erstellt? Ich versteh nicht wofür man eine derartige Funktion brauchen sollte.


    Davon ab... man muss ja nicht zwingend alle vorhandenen Objekte in einem Rutsch in das 2D Array einfügen. Warum schreibst du nicht eine Funktion wie diese hier:

    [autoit]

    func _addObjectTo2dArray($2dArray,$object)

    [/autoit]
  • FileGetSize()+Windows 7 - Aktualisierung erzwingen

    • misterspeed
    • 16. Mai 2012 um 21:36

    Dürfte aber ziemlich lahm sein, gerade dann wenn man die funktion in kurzen Intervallen innerhalb einer Schleife aufruft. Wenn würde ich das Ergebnis nicht in eine Datei umleiten, sondern stattdessen den stdout des DOS Befehls auslesen.

  • multidimensionales array in bestehende inputboxen einfügen

    • misterspeed
    • 5. Mai 2012 um 23:35

    Nicht in einer Schleife wenn du die Cotrol Ids nicht in einem Array hast, also wie ich mal annehme nach diesem schma erstellt hast:

    [autoit]


    $input1=guictrlcreate....
    $input2=guictrlcreate....
    $input3=guictrlcreate....
    $input4=guictrlcreate....

    [/autoit]

    Es gäbe jedoch noch einen Trick um nachträglich die IDs auch so anzusprechen. Das geht aber nur wenn du die Controls alle in Folge erstellst und zwischendrin nicht noch andere GUI Controls erstellt werden.

    [autoit]


    $startIndex=guictrlcreatedummy() ; dummy gui control bekommt ebenfalls id und alles danach ist dann für dich relevant
    $input1=guictrlcreate....
    $input2=guictrlcreate....
    $input3=guictrlcreate....
    $input4=guictrlcreate....
    $endIndex=guictrlcreatedummy() ; ab hier interessieren dich die ids nicht mehr

    [/autoit]

    Da Controlids fortlaufende Nummern haben kannst du so jetzt in deiner For Schleife die Controlids der Reihe nach durchgehen.

    [autoit]


    $currentID = $startIndex+1
    For $i = 2 To $menge - 1
    GUICtrlSetData($currentID, $aArray[$i][6])
    $currentID += 1
    if $currentID >= $endindex then exitloop ; zur Sicherheit, falls mehr Daten als Inputs vorhanden
    Next

    [/autoit]
  • multidimensionales array in bestehende inputboxen einfügen

    • misterspeed
    • 5. Mai 2012 um 23:16

    Für 30x3 Felder würde das ganze sinnvollerweise dann so ausschauen:

    [autoit]


    dim $aInput[30][3] ; fixe größe, Datenmenge kann somit nicht variabel sein

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

    ; inputerstellung

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

    $left = 10
    $top = 10
    $width = 100
    $height = 20

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

    for $i=0 to ubound($aInput)-1 ; zeilen
    for $j=0 to ubound($aInput,2)-1 ; spalten
    $aInput[$i][$j] = guictrlcreateinput($left + ($j*110), $top + ($i*30),$width,$height)
    next
    next

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

    ; excel kram

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

    ;...

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

    ; input befüllen

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

    For $i = 2 To $menge - 1
    if ubound($aInput)-1 <= $i-2 then ; zur sicherheit, falls du doch mehr Daten als Inputs hast
    GUICtrlSetData($aInput[$i-2][0], $aArray[$i][6])
    GUICtrlSetData($aInput[$i-2][1], $aArray[$i][3]) ; 3 ist mangels kenntnis deiner Tabelle nun zufällig gewählt
    GUICtrlSetData($aInput[$i-2][2], $aArray[$i][5]) ; 5 ist mangels kenntnis deiner Tabelle nun zufällig gewählt
    endif
    Next

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


    EDIT:

    Ansprechen kannst du die Inputs wie man eben Arrays anspricht:

    [autoit]


    msgbox(0,"","Inhalt Input Zeile 1 Spalte 1: " & guictrlread($aInput[0][0]))
    msgbox(0,"","Inhalt Input Zeile 2 Spalte 1: " & guictrlread($aInput[1][0]))
    msgbox(0,"","Inhalt Input Zeile 3 Spalte 2: " & guictrlread($aInput[2][1]))

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

    ;oder auch
    _arraydisplay($aInput)

    [/autoit]
  • multidimensionales array in bestehende inputboxen einfügen

    • misterspeed
    • 5. Mai 2012 um 22:47

    Erstmal reden wir von einem 2D Array laut Hilfe, Multidimensional kann alles oder nix sein.

    Jetzt zu deiner Frage. Das hängt davon ab wie du deine Input Controls erstellst. Ich würde dir da nahelegen sämtliche Input Controlids nicht in seperaten Variablen, sondern ebenfalls in einem Array zu speichern.
    Nun ergibt sich aber zwangsläufig die Frage, ob die werte Anzahl deiner Excel Tabelle variabel ist oder ob es sich immer um genau gleich viele Zeilen/Spalten handelt. Um genügend Inputs erstellen zu können muss die Datenmenge natürlich im Vorfeld bekannt sein, oder aber du erstellst die Inputs erst dann wenn sie gebraucht werden, dynamisch an der Anzahl der Daten gemessen. Das wiederum würde ggf. auch den Einsatz einer Scrollbar erfordern, da die GUI sonst möglicherweise nicht groß genug zur Darstellung ist.


    Eine andere Frage wäre noch ob inputs in der Handhabung überhaupt sinnvoll sind. Möglicherweise wäre es vielleicht sinnvoll stattdessen ein Listview zu verwenden? Ein Listview ist prinzipiell ja nichts anderes als viele zusammengebundene Inputs. Auch Listviews können editierbar gehalten werden sofern das notwndig sein sollte.


    Gehen wir mal davon aus du willst eine fixe Anzahl Inputs im array verwalten und dann befüllen:


    [autoit]


    dim $aInput[10] ; fixe größe, Datenmenge kann somit nicht variabel sein

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

    ; inputerstellung

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

    $left = 10
    $top = 10
    $width = 100
    $height = 20

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

    for $i=0 to ubound($aInput)-1
    $aInput[$i] = guictrlcreateinput($left, $top + ($i*30),$width,$height)
    next

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

    ; excel kram

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

    ;...

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

    ; input befüllen

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

    For $i = 2 To $menge - 1
    if ubound($aInput)-1 <= $i-2 then ; zur sicherheit, falls du doch mehr Daten als Inputs hast
    GUICtrlSetData($aInput[$i-2], $aArray[$i][6])
    endif
    Next

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Parameter an laufenden Prozess übergeben

    • misterspeed
    • 13. April 2012 um 17:26

    Es gibt diverse Möglichkeiten um eine Kommunikation zwischen zwei Prozessen zu ermöglichen. Entweder per Datei, TCP Funktionen (client/server) oder auch per stdinwrite + consoleread. Letztere Variante setzt aber glaube ich vorraus, dass das Script welches die Daten erhalten soll vom sendenden Script aus gestartet wurde. Die Dateimethode ist eher wenig performant und unschön, die TCP Variante hingegen am aufwendigsten und ggf. aufgrund von Firewalls oder anderen Prozessen die die selben Ports verwenden nicht zuverlässig genug.

    [autoit]


    filewrite()
    fileread()
    tcpsend()
    tcprecv()
    stdinwrite()
    consoleread()

    [/autoit]
  • button soll 5 sekunden lang gedrückt bleiben um erst dann eine Funktion zu starten

    • misterspeed
    • 8. April 2012 um 09:57
    Zitat von Lottich


    Jetzt könnte man sagen: "Bau doch eine zusätzliche Abfrage als Sicherheit rein, ob du das wirklich machen willst..."

    Ja, daran hab ich schon gedacht. Aber dem fehlt jegliche "Rafinesse". Wie löse ich das denn ab besten?

    Naja was sagt dir an solch einer Lösung denn nicht zu? Ging es nur darum dass dir nicht klar war wie man solch eine Abfrage realisiert (per msgbox oder zweiter eigener GUI...) oder gefiel dir das nur nicht? Ganz ehrlich ich als Benutzer eines Programmes bin eher eine msgbox Abfrage gewohnt, welche mich nochmals auf die Gefahren einer bestimmten Funktion hinweist, als irgendeinen Button 5 Sekunden gedrückt halten zu müssen. Diese Lösung mag zwar nett sein, ist aber letzten Endes wenig Anwenderfreundlich und dauert länger als einfach kurz ein zweites mal auf "ja ich will" zu klicken.

    Eine Lösung ohne msgbox Abfrage könnte im übrigen auch so ausschauen:

    Checkbox die man ankreuzen muss, vergleichbar mit dem bestätigen einer AGB in Onlineshops. Nur wenn die Checkbox angekreuzt ist wird der zugehörige Button aktiviert und kann angeklickt werden. Ist die Checkbox nicht angekreuzt bleibt der Button ausgegraut, also inaktiv und nicht klickbar.

  • Daten einlesen via CMD

    • misterspeed
    • 4. April 2012 um 20:42

    Mal davon ab, dass man es auch auf anderem Wege lösen kann (siehe Beispiele oben) - Das wichtigste hast du nicht gepostet, nämlich deinen run Aufruf. Ich gehe mal stark davon aus, dass genau dort der Fehler liegt. In der Hilfe zu stdoutread findest du im übrigen ein passendes Beispielscript, in dem zufälligerweise sogar der DOS Befehl "dir" verwendet wird. Minimalst abgeändert und du bist bereits am Ziel. ;)

    EDIT:

    Ausserdem verlässt du die Schleife wenn es zum Fehler beim beschreiben des Arrays kommt und nicht wenn es zum Fehler beim lesen des stdouts kommt. Das Problem könnte also theoretisch auch von arrayadd herrühren, um das beurteilen zu können fehlt aber wiederum dein restlicher Quellcode.

    EDIT2:

    Ahja und sofern das der vollständige Restcode sein sollte... was erwartest du ausser der msgbox? Du lässt dir den Array Inhalt ja überhaupt nicht anzeigen (_arraydisplay() ????), also kann nur eine msgbox erscheinen.


    EDIT3:

    Nochmals hingeschaut bestätigt sich meine erste Vermutung, der Fehler kommt vom arrayadd(), weil du die Funktion mit einem ungültigen Parameter fütterst. Anstelle des Arrays das befüllt werden soll übergibst du einen Wert des Arrays. Deine Variable count und das Neudimensionieren des Arrays mit redim ist ebenfalls überflüssig wenn man arrayadd verwendet, da diese Funktion das selbst übernimmt.

  • Winmove keine Reaktion

    • misterspeed
    • 3. April 2012 um 19:44

    Funktioniert hier einwandfrei, wäre aber nett gewesen zu erwähnen, dass die Fenstergröße nicht mehr manuell verändert werden kann und man somit dauerhaft dieses riesen Fenster ertragen muss und raten kann wie groß es eigentlich sein sollte...

  • GUI auf einem Rootserver vom eigenen Rechner aus steuern?

    • misterspeed
    • 30. März 2012 um 21:53

    Neben den zwingend notwendigen Änderungen am Server Programm sollte man dann natürlich auch die Firewallfreigabe am Server nicht vergessen und darauf achten, dass der Serverport nur von deiner eigenen Anwendung genutzt wird (ansonsten kann es Komplikationen geben). Da Rootserver oft auch Portscans und diversen Angriffen ausgesetzt sind empfehle ich aber eine etwas komplexere "Sprache" als nur einen einzigen simplen Buchstaben zu verwenden (am besten mit Authentifikation / API Key und Verschlüsselung), damit es nicht zu unbeabsichtigter Interaktion durch dritte mit deinem Programm kommt.

    Aber ich würde mir sofern du einen 2008 R2 Server hast mal die RemoteApp Funktion ansehen, das ermöglicht es dir Programme auf dem Server inklusive GUI so auszuführen, dass diese sich nicht von lokalen Programmen auf deinem Client PC unterscheiden. ;)

    http://www.youtube.com/watch?v=7KKtTw5RTCc
    http://www.youtube.com/watch?v=mmVbzEhGHJY&feature=related

    Hab das selbst bisher nie getestet, find ich aber sehr interessant.

  • Probleme bei der Ausgabe: Subscript used with non-Array variable

    • misterspeed
    • 22. März 2012 um 18:59
    Zitat von SubSeven

    misterspeed
    Auf mouseclick kann ich leider nicht verzichten, obwohl mich die Unzuverlässlichkeit fast schon in den Wahnsinn getrieben hat.

    Das Skript kopiert bestimmte Informationen aus einer E-Mail und einem HTML-Quelltext (Firefox), und fügt diese in ein Formular ein.

    Schonmal was von der ff.au3 gehört? Gibts hier sogar einen kompletten Forenbereich dafür: https://autoit.de/index.php?page=Board&amp;boardID=32

  • ArraySearch Problem.

    • misterspeed
    • 21. März 2012 um 21:11

    Ahja man könnte es im übrigen auch ohne arraysearch und mit einem 1D Array realisieren:


    [autoit]


    _FileReadToArray("pcliste.csv", $rufnummer)
    $pcnummer = InputBox("PC", "Welcher PC:")

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

    $index=_search($rufnummer,";",$pcnummer,0)
    if $index=-1 then exit msgbox(0,"","nix gefunden")

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

    $nummer = StringSplit($rufnummer[$index], ";", 2)
    $telefon = $nummer[1] & $nummer[2]

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

    MsgBox(4096, "Test", $telefon) ; eigendlich wird die Rufnummer ans Telefon übertragen.

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

    func _search($array,$delimiter,$suchbegriff,$column)

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

    for $i=1 to ubound($array)-1
    $aRow=stringsplit($array[$i],$delimiter,2)
    if ubound($aRow)-1 >= $column then
    if $aRow[$column]=$suchbegriff then return $i
    endif
    next

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

    return -1
    endfunc

    [/autoit]
  • ArraySearch Problem.

    • misterspeed
    • 21. März 2012 um 20:36

    Dafür müsstest du ein 2D array verwenden, was ich ohnehin bevorzugen würde bei CSV Dateien.
    Wenn du _filereadtoarray weiter verwenden willst und das nicht komplett selbst realisieren magst kann das erste Array relativ einfach in ein 2D Array gewandelt werden:


    [autoit]


    $rufnummer=_transform1Dto2D($rufnummer,";",3)

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

    func _transform1Dto2D($array,$delimiter,$colums)

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

    local $aReturn[ubound($array)][$colums]

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

    for $i=0 to ubound($array)-1
    $aRow=stringsplit($array[$i],$delimiter,2)
    for $j=0 to $colums-1
    if ubound($aRow)-1 < $j then exitloop
    $aReturn[$i][$j]=$aRow[$j]
    next
    next

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

    return $aReturn

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

    endfunc

    [/autoit]

    Den Index suchen kannst du dann indem du bei _arraysearch() mit dem 8. Parameter die richtige Suchspalte (subitem) angibst.

    EDIT:

    Dabei bin ich mal davon ausgegangen dass du nicht Zeilen sondern Spalten meintest, also eine CSV nach diesem Schema:

    Code
    pcnr;vorwahl;nummer
    pcnr2;vorwahl2;nummer2

    Meine Transform funktion ist im übrigen ungetestet und nur schnell im forum zusammengebastelt, ggf. sind Denkfehler enthalten.

    Ausgabe des Suchergebnisses:

    [autoit]


    $telefon= $rufnummer[$index][1] & $rufnummer[$index][2]

    [/autoit]
  • Probleme bei der Ausgabe: Subscript used with non-Array variable

    • misterspeed
    • 21. März 2012 um 19:53

    Also ich würde an deiner Stelle komplett auf send und mouseclick verzichten. Das ist viel zu unzuverlässig.

    Da du leider nicht geschrieben hast was dein Script genau tun soll und welches Programm du hier zu automatisieren versuchst (ok irgendwo sieht man outlook, aber keine Version...) kann man nur erkennen, dass es wohl um Emails geht. Was genau passieren soll wurde mir beim überfliegen nicht klar.

    Wie dem auch sei es gibt viel bessere Methoden um mit Emails zu arbeiten. Zum einen kann man die Emails direkt per autoit abrufen und versenden wenn man die richtige UDF nutzt, zum anderen kann man externe Programme auch mit den control Funktionen steuern (z.B. controlclick, controlcommand, controlsend, controlgettext usw.). Letzteres liefert in jedem Fall verlässlichere Ergebnisse als irgendwelche Tastenkombinationen die womöglich nichtmal im richtigen Fenster landen. Grundsätzlich solltest du vielleicht auch mehr debugging betreiben, wie oben schon durch das Beispiel von letsgo angedeutet. Bei Funktionen die Arrays zurückgeben schadet es auch nicht sich den Inhalt des Arrays mit _arraydisplay ausgeben zu lassen, dann wird oftmals auch klar warum die nachfolgenden Funktionen nichts mehr mit dem Array anfangen können, sofern es denn überhaupt eins geworden ist. Deine Fehlermeldung besagt jedenfalls, dass es in diesem Fall keines war.

  • MsgBox wird nicht refreshed

    • misterspeed
    • 20. März 2012 um 19:03
    Zitat von EmKay2012

    Dann können die Benutzer aber nicht mehr weiterarbeiten, da das Fenster ständig über allen anderen Fenstern ist. Durch MsgBox wird doch ein Aufruf der Windows-API durchgeführt, oder? Sprich: Ob das Fenster aktualisiert wird oder nicht, liegt nicht in der Hand von AutoIt, kann also nur ein Windows-Fehler sein?

    Versteh ich nicht. Jeder normale Mensch der weiter arbeiten will nimmt die msgbox zur Kenntnis und drückt diese per Button weg. Thema erledigt, user weiß bescheid und arbeitet weiter...
    Kenne diesen Anzeigefehler auch, jedoch allgemein bei sehr langsamen und ausgelasteten Systemen und nicht unbedingt auf Autoit Fenster bezogen. Das dürfte wohl schlichtweg ein Windows Problem sein, welches nicht mit dem Zeichnen der GUI hinterherkommt.

    EDIT:
    Es gibt btw. auch noch den Parameter Timeout für msgboxen, dann verschwindet diese selbstständig nach einer gewissen Zeit, unabhängig davon ob der User es nun lesen konnte oder nicht.

  • 2D Array in txt Datei speichern

    • misterspeed
    • 7. März 2012 um 21:09

    Also in meiner Hilfe steht das nicht so. Evtl. wurde das in der neuesten Autoit Version eingeführt und entsprechend in der Hilfe angepasst, aber du verwendest noch eine ältere Version?

  • _Filewritetoline geht nur wenn neue datei erstellt wurde oO

    • misterspeed
    • 25. Februar 2012 um 23:06

    Stimmt das fileopen ohne Parameter öffnet die Datei im Lesemodus, somit ist schreiben unmöglich.
    Desweiteren würde ich grundsätzlich einen kompletten Dateipfad angeben:


    [autoit]


    $sfile = @scriptdir & "\settings.properties"

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