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

Beiträge von L3viathan

  • Webseiten "Dashboard"

    • L3viathan
    • 30. März 2012 um 20:01
    Zitat von MiMa89

    1. Lässt sich der Login umgehen, bzw. abspeichern?


    Joa, geht. Einfachste Möglichkeit: Sich einloggen durch die _IE-Funktionen (z.B. _IEFormElementSetValue und _IEFormSubmit) und erst dann weitermachen.

    Zitat von MiMa89

    2. Kann ich einen bestimmten Teil des Fenster automatisch ausblenden?


    Versteh nicht so ganz. Du willst quasi nur einen Teil der Webseite anzeigen lassen? Wird schwerer, aber nicht unlösbar.
    Du könntest mit _IEDocInsertHTML ein Javascript einfügen, welches per .style.display="none" bestimmte Elemente ausblendet.

  • Webseiten "Dashboard"

    • L3viathan
    • 29. März 2012 um 21:36

    Hatte nen Fehler drin, probier's nochmal mit dem korrigierten Code..

  • Webseiten "Dashboard"

    • L3viathan
    • 29. März 2012 um 16:50

    letsgo: Wenn du ihm nicht helfen willst, dann lass es, aber troll hier nicht rum. Dieses Unterforum ist für kostenlose Anfragen, du musst ja nicht antworten.

    @MiMa89: Würde sowas vom Prinzip reichen? (ungetestet)

    [autoit]


    #include <IE.au3>
    Global $urls[5] = ["http://url1.com","http://url2.com","http://url3.com","http://url4.com","http://url5.com"]
    Global $delay = 10 ;Sekunden

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

    $oIE = _IECreate("about:blank")

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

    Dim $counter = 0, $numberOfUrls = UBound($urls)
    While True
    _IENavigate($oIE,$urls[$counter])
    $counter = Mod($counter+1,$numberOfUrls)
    Sleep(1000*$delay)
    WEnd
    _IEQuit($oIE)

    [/autoit]


    edit: Geändert und getestet - geht. Tut es, was du brauchst?

  • Problem mit 2Dimensionalem Array

    • L3viathan
    • 28. März 2012 um 11:26

    Soweit wie ich es jetzt verstehe:
    - Eine vorher festgelegte Anzahl an Feldern wird mit zufällig 1 oder -1 belegt
    - Nun wird ein Durchlauf angefangen, mit jedem dieser Werte wird etwas gemacht, was ich nicht verstehe und am Ende kommt wieder 1 oder -1 raus (pro Feld).
    - Dies wird sooft wiederholt, wie es Durchläufe gibt.

    Mein Problem ist halt der kursive Teil, wenn der nicht existieren würde, könnte ich das Programm ja einfach schreiben.
    Was ich machen kann, wenn du willst, ist alles außer dem kursiven Teil zu schreiben (sofern der Rest stimmt), und dir dann quasi Platz für deine Rechnungen zu lassen.

  • Problem mit 2Dimensionalem Array

    • L3viathan
    • 27. März 2012 um 19:49

    Ja, keine Ahnung, ich verstehe ja leider nicht, was das Programm genau machen soll...

  • Problem mit 2Dimensionalem Array

    • L3viathan
    • 27. März 2012 um 19:05
    Zitat von Salpredated

    warum denn -2? Wird da nicht letzten Endes jeder zweite Spin übersehen?


    Weiß ich nicht, ich habe das nur von dir übernommen, damals war es While $variable < $endwert - 1
    Das ist semantisch equivalent mit For $variable = 0 To $endwert - 2

  • Problem mit 2Dimensionalem Array

    • L3viathan
    • 25. März 2012 um 12:05
    Zitat von Salpredated

    Jetzt wo ich darüber nachdenke, wäre das ja mehr als logisch... In meinem Fall habe ich ja die Dummy Variable verwendet, wobei das mit dem Durchlauf besser wäre.. Hm.


    Müsstest du da nicht die Variable auch erhöhen, z.B. so:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    Global $Spin_Anzahl = InputBox("Simulation","Bitte die Breite des Gitters angeben!")
    const $Temperatur = InputBox("Simulation", "Bitte die Temperatur eingeben") + 273.15
    Global $DurchlaufAnzahl = InputBox("Simulation","Wie oft sollen die Spins auf ihre Flip Wahrscheinlichkeit überprüft werden?")
    Global $Spin[$DurchlaufAnzahl][$Spin_Anzahl]
    Const $J = InputBox("Simulation", "Bitte J deklarieren!")
    Global $Energie_Delta = 0
    Global $Energie_alt = 0
    Global $Energie_neu = 0
    Global $Lattice_Position = 0
    Global $ZufallsZahl = 0
    const $kB = 1.28 * 10^-23
    Global $dummy = 0
    ;=====================================================================
    ; Ende der Initialisierung...
    ; Anfang der Energievergabe
    ;=====================================================================

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

    For $Schleifenvariable= 0 To $Spin_Anzahl-1
    $Spin[0][$Schleifenvariable] = Random(0,1,1)*2-1
    Next

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

    _ArrayDisplay($Spin, "Anfang")

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

    For $i = $Durchlaufanzahl To 1 Step -1
    For $Schleifenvariable= 0 To $Spin_Anzahl - 2
    ;=====================================================================
    ; Ende der Energievergabe
    ; Anfang der Energieberechnung ($Energie_alt)
    ;=====================================================================
    While $Lattice_Position < $Spin_Anzahl -1

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

    If $Lattice_Position = 0 Then
    $Energie_alt = $Energie_alt + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1])
    $Lattice_Position = $Lattice_Position+1
    EndIf

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

    $Energie_alt = $Energie_alt+ ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1] + $Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    $Lattice_Position = $Lattice_Position + 1

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

    If $Lattice_Position = $Spin_Anzahl - 1 Then
    $Energie_alt = $Energie_alt + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    EndIf

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

    WEnd
    ;=====================================================================
    ; Ende der Energieberechnung ($Energie_alt)
    ; Anfang der Energieberechnung ($Energie_neu)
    ;=====================================================================
    $Lattice_Position = 0
    $Spin[$dummy][$Schleifenvariable] = - $Spin[$dummy][$Schleifenvariable]
    While $Lattice_Position < $Spin_Anzahl -1

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

    If $Lattice_Position = 0 Then
    $Energie_neu = $Energie_neu + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1])
    $Lattice_Position = $Lattice_Position+1
    EndIf

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

    $Energie_neu = $Energie_neu + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1] + $Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    $Lattice_Position = $Lattice_Position + 1

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

    If $Lattice_Position = $Spin_Anzahl - 1 Then
    $Energie_neu = $Energie_neu + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    EndIf

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

    WEnd
    ;=====================================================================
    ; Ende der Energieberechnung ($Energie_neu)
    ; Anfang der Wahrscheinlichkeitsberechnung und Durchführung des Flips
    ;=====================================================================
    $Energie_Delta =$Energie_neu - $Energie_alt
    $ZufallsZahl = Random(0,1)

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

    If $ZufallsZahl < Exp(-$Energie_Delta / ($kB*$Temperatur)) Then
    $Spin[$dummy][$Schleifenvariable] = - $Spin[$dummy][$Schleifenvariable]
    EndIf
    ;=====================================================================
    ; Ende der Wahrscheinlichkeitsberechnung und Durchführung des Flips
    ; Zurücksetzen der Variablen, $Schleifenvariable ++1
    ;=====================================================================
    $Energie_alt = 0
    $Energie_neu = 0
    $Lattice_Position = 0
    Next
    For $Schleifenvariable2 = 0 To $Spin_Anzahl -1
    $Spin[$dummy+1][$Schleifenvariable2]= $Spin[$dummy][$Schleifenvariable2]
    Next
    _ArrayDisplay($Spin, "Simulation")
    $dummy += 1
    Next
    ;=====================================================================
    ; Beenden der Simulation
    ; Ausgabe der End-Konstellation
    ;=====================================================================
    ToolTip("Die Simulation ist zu ende", 0, 0)
    _ArrayDisplay($Spin, "Ende")

    [/autoit]


    ?

  • Problem mit 2Dimensionalem Array

    • L3viathan
    • 25. März 2012 um 03:07
    Zitat von Salpredated

    Welche Zeile genau? :o


    Die Array-Zeile meine ich, also im Sinne von Array-Spalte/Zeile.

  • Problem mit 2Dimensionalem Array

    • L3viathan
    • 25. März 2012 um 01:08

    Okay, etwas unübersichtlich, ich habe den Code erstmal durch die überwiegende Verwendung von For-Schleifen etwas aufgeräumt:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    Global $Spin_Anzahl = InputBox("Simulation","Bitte die Breite des Gitters angeben!")
    const $Temperatur = InputBox("Simulation", "Bitte die Temperatur eingeben") + 273.15
    Global $DurchlaufAnzahl = InputBox("Simulation","Wie oft sollen die Spins auf ihre Flip Wahrscheinlichkeit überprüft werden?")
    Global $Spin[$DurchlaufAnzahl][$Spin_Anzahl]
    Const $J = InputBox("Simulation", "Bitte J deklarieren!")
    Global $Energie_Delta = 0
    Global $Energie_alt = 0
    Global $Energie_neu = 0
    Global $Lattice_Position = 0
    Global $ZufallsZahl = 0
    const $kB = 1.28 * 10^-23
    Global $dummy = 0
    ;=====================================================================
    ; Ende der Initialisierung...
    ; Anfang der Energievergabe
    ;=====================================================================

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

    For $Schleifenvariable= 0 To $Spin_Anzahl-1
    $Spin[0][$Schleifenvariable] = Random(0,1,1)*2-1
    Next

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

    _ArrayDisplay($Spin, "Anfang")

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

    For $i = $Durchlaufanzahl To 1 Step -1
    For $Schleifenvariable= 0 To $Spin_Anzahl - 2
    ;=====================================================================
    ; Ende der Energievergabe
    ; Anfang der Energieberechnung ($Energie_alt)
    ;=====================================================================
    While $Lattice_Position < $Spin_Anzahl -1

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

    If $Lattice_Position = 0 Then
    $Energie_alt = $Energie_alt + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1])
    $Lattice_Position = $Lattice_Position+1
    EndIf

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

    $Energie_alt = $Energie_alt+ ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1] + $Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    $Lattice_Position = $Lattice_Position + 1

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

    If $Lattice_Position = $Spin_Anzahl - 1 Then
    $Energie_alt = $Energie_alt + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    EndIf

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

    WEnd
    ;=====================================================================
    ; Ende der Energieberechnung ($Energie_alt)
    ; Anfang der Energieberechnung ($Energie_neu)
    ;=====================================================================
    $Lattice_Position = 0
    $Spin[$dummy][$Schleifenvariable] = - $Spin[$dummy][$Schleifenvariable]
    While $Lattice_Position < $Spin_Anzahl -1

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

    If $Lattice_Position = 0 Then
    $Energie_neu = $Energie_neu + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1])
    $Lattice_Position = $Lattice_Position+1
    EndIf

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

    $Energie_neu = $Energie_neu + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position+1] + $Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    $Lattice_Position = $Lattice_Position + 1

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

    If $Lattice_Position = $Spin_Anzahl - 1 Then
    $Energie_neu = $Energie_neu + ($Spin[$dummy][$Lattice_Position]*$Spin[$dummy][$Lattice_Position-1])
    EndIf

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

    WEnd
    ;=====================================================================
    ; Ende der Energieberechnung ($Energie_neu)
    ; Anfang der Wahrscheinlichkeitsberechnung und Durchführung des Flips
    ;=====================================================================
    $Energie_Delta =$Energie_neu - $Energie_alt
    $ZufallsZahl = Random(0,1)

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

    If $ZufallsZahl < Exp(-$Energie_Delta / ($kB*$Temperatur)) Then
    $Spin[$dummy][$Schleifenvariable] = - $Spin[$dummy][$Schleifenvariable]
    EndIf
    ;=====================================================================
    ; Ende der Wahrscheinlichkeitsberechnung und Durchführung des Flips
    ; Zurücksetzen der Variablen, $Schleifenvariable ++1
    ;=====================================================================
    $Energie_alt = 0
    $Energie_neu = 0
    $Lattice_Position = 0
    Next
    For $Schleifenvariable2 = 0 To $Spin_Anzahl -1
    $Spin[$dummy+1][$Schleifenvariable2]= $Spin[$dummy][$Schleifenvariable2]
    Next
    _ArrayDisplay($Spin, "Simulation")
    Next
    ;=====================================================================
    ; Beenden der Simulation
    ; Ausgabe der End-Konstellation
    ;=====================================================================
    ToolTip("Die Simulation ist zu ende", 0, 0)
    _ArrayDisplay($Spin, "Ende")

    [/autoit]

    Jetzt guck ich mir den Code mal im Detail an

    edit: müsste die Zeile im Array durch den aktuellen Durchlauf bestimmt werden?

  • Problem mit 2Dimensionalem Array

    • L3viathan
    • 25. März 2012 um 00:14

    Moin, willkommen im Forum!

    Es würde schon helfen, wenn du deinen Code möglichst vollständig zeigst. Solange du dich um die eigentliche Berechnung kümmerst (vom Ising-Modell habe ich noch nie was gehört), dürfte die Programmierung drum herum leicht fertigzustellen sein.

    Pack deinen Code in [spoiler‌]- und [autoit‌]-Tags, also so: [spoiler‌][autoit‌];Dein Code hier[/‌autoit][/‌spoiler]
    Das sieht dann so aus:

    Spoiler anzeigen
    [autoit]

    ;Dein Code hier

    [/autoit]
  • Splitten?

    • L3viathan
    • 21. März 2012 um 17:21
    [autoit]

    #include <Array.au3>
    $kram = StringSplit("Apfel,Frucht,Birne,Frucht,Affe,Tier,Ameise,Tier",",")
    Dim $eins[1] = [0], $zwei[1] = [0]

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

    For $i = 1 To $kram[0]
    If Mod($i,2) = 1 Then
    _ArrayAdd($eins,$kram[$i])
    $eins[0] += 1
    Else
    _ArrayAdd($zwei,$kram[$i])
    $zwei[0] += 1
    EndIf
    Next
    _ArrayDisplay($eins)
    _ArrayDisplay($zwei)

    [/autoit]
  • Dateien löschen / Dateiinhalt entfernen?

    • L3viathan
    • 19. März 2012 um 13:37

    Seltsam. Naja, kann es hier gerade nicht testen.

  • Dateien löschen / Dateiinhalt entfernen?

    • L3viathan
    • 19. März 2012 um 13:13

    Und so?

    [autoit]


    #include <File.au3> ;Datei einbinden, die die _File-Befehle anbietet
    #include <Array.au3> ;Datei einbinden, die die _Array-Befehle anbietet

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

    $Files = _FileListToArray("D:\Vent\LOG","*.txt") ;Alle relevanten Dateinamen in ein Array lesen
    For $i = 1 To $Files[0] ;Den Inhalt dieser Schleife pro Datei einmal ausführen
    Local $Lines, $NewLines ;zwei lokale Variablen erstellen
    _FileReadToArray($Files[$i],$Lines) ;Inhalt der Datei in ein Array einlesen
    If not isArray($Lines) Then ContinueLoop ;Wenn Datei leer, Datei überspringen
    For $j = 1 To $Lines[0] ;Pro Zeile:
    If StringLeft($Lines[$j],4) = "2012" Then ;Wenn die Zeile mit "2012" anfängt, dann
    _ArrayAdd($NewLines,$Lines[$j]) ;In das andere Array kopieren
    EndIf
    Next ;Datei ist fertig durchgegangen
    If IsArray($NewLines) Then ;Wenn das neue Array nicht leer ist
    _FileWriteFromArray($Files[$i],$NewLines) ;Array in Datei schreiben
    Else ;Sonst
    FileDelete($Files[$i]) ;Datei löschen
    EndIf
    Next ;Und wieder von vorne

    [/autoit]
  • Senden an

    • L3viathan
    • 19. März 2012 um 13:02

    Die einzelnen Einträge von "Senden an" müssten irgendwo in der Registry stehen.

  • Zoom in Gui?

    • L3viathan
    • 19. März 2012 um 12:14

    Hilft das hier: [ gelöst ] IE Zoom ?

  • Dateien löschen / Dateiinhalt entfernen?

    • L3viathan
    • 19. März 2012 um 12:04

    Ich würde _FileReadToArray benutzen, dann mit ner For-Schleife durch das Array gehen, mit _ArrayDelete jeweils die Elemente entfernen, die nicht den Kriterien entsprechen und am Ende dann:

    • wenn das Array leer ist, die Datei löschen
    • wenn das Array nicht leer ist, es mit _FileWriteFromArray in die Datei schreiben

    edit: Ungetestet: (aber lies dir den Code und die Kommentare auch durch!)

    Spoiler anzeigen
    [autoit]

    #include <File.au3> ;Datei einbinden, die die _File-Befehle anbietet
    #include <Array.au3> ;Datei einbinden, die die _Array-Befehle anbietet

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

    $Files = _FileListToArray("D:\Vent\LOG","*.txt") ;Alle relevanten Dateinamen in ein Array lesen
    For $i = 1 To $Files[0] ;Den Inhalt dieser Schleife pro Datei einmal ausführen
    Local $Lines, $NewLines ;zwei lokale Variablen erstellen
    _FileReadToArray($Files[$i],$Lines) ;Inhalt der Datei in ein Array einlesen
    For $j = 1 To $Lines[0] ;Pro Zeile:
    If StringLeft($Lines[$j],4) = "2012" Then ;Wenn die Zeile mit "2012" anfängt, dann
    _ArrayAdd($NewLines,$Lines[$j]) ;In das andere Array kopieren
    EndIf
    Next ;Datei ist fertig durchgegangen
    If IsArray($NewLines) Then ;Wenn das neue Array nicht leer ist
    _FileWriteFromArray($Files[$i],$NewLines) ;Array in Datei schreiben
    Else ;Sonst
    FileDelete($Files[$i]) ;Datei löschen
    EndIf
    Next ;Und wieder von vorne

    [/autoit]
  • Senden an

    • L3viathan
    • 19. März 2012 um 12:02

    Im Normalfall würde ich das lassen und das Verschieben direkt durch AutoIt machen.
    Wenn es aber bspw. um "Senden an Bluetooth" geht, könnte man das Q&D mit Send machen, und den Tastenkombinationen Shift+F10 (Kontextmenü) und e (Senden).

  • E-Mail

    • L3viathan
    • 18. März 2012 um 16:07

    Ja, ist möglich. Du musst dazu einen POP3- oder IMAP-Clienten schreiben.
    Dabei könnte dir Stilgar's POP3-UDF helfen: http://www.thorsten-willert.de/Themen/AutoIt/_POP3.au3?a

  • PolyShoot (Game)

    • L3viathan
    • 17. März 2012 um 17:06

    Hübsch, macht Spaß!

    Ich würd noch nen Punktestand anzeigen lassen und dynamische Höhe und Breite machen.

  • Anfänger braucht Hilfe

    • L3viathan
    • 15. März 2012 um 15:44

    Kannst du mal erklären, wofür genau du das benutzen willst?

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™