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

Beiträge von alpines

  • Checkboxen in "SysListView32" auslesen und steuern

    • alpines
    • 18. Januar 2017 um 14:00

    Du brauchst _GUICtrlListView_SetItemChecked dafür. Hier hast du ein Beispielscript wie du das ganze auf fremden GUIs machen kannst. (Ist aber ziemlich schlampig geschrieben!)

    AutoIt
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    
    
    #include <GUIListView.au3>
    
    
    $Form1 = GUICreate("Form1", 427, 182, 192, 124)
    $ListView1 = GUICtrlCreateListView("||", 16, 16, 250, 150, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_CHECKBOXES))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    $ListView1_0 = GUICtrlCreateListViewItem("1", $ListView1)
    $ListView1_1 = GUICtrlCreateListViewItem("22", $ListView1)
    $ListView1_2 = GUICtrlCreateListViewItem("333", $ListView1)
    $ListView1_3 = GUICtrlCreateListViewItem("444", $ListView1)
    $Button1 = GUICtrlCreateButton("Button1", 296, 56, 97, 49)
    GUISetState(@SW_SHOW)
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    		Case $Button1
    			$hListView = ControlGetHandle("Form1", "", "[CLASS:SysListView32; INSTANCE:1]")
    			_GUICtrlListView_SetItemChecked($hListView, 0)
    			_GUICtrlListView_SetItemChecked($hListView, 2)
    
    
    
    
    	EndSwitch
    WEnd
    Alles anzeigen
    Zitat von Bitnugger

    Richtig wäre:
    $chk = ControlCommand("Red Giant Software Registration", "", 1, "isChecked")

    Richtig wäre eher wenn die bei der Control ID keine 1 steht, sondern das hier [CLASS:SysListView32; INSTANCE:1].

  • Button betätigen nach Ereignissänderung

    • alpines
    • 18. Januar 2017 um 13:54
    Zitat von Frost0071

    Ich hab gestern mal geschaut, leider zeigt es mir über allen Feldern immer das gleiche an.

    Das sind leider keine Standardcontrols. Also musst du wohl wie Oscar es schon vorgeschlagen hat mit PixelGetColor rangehen.

  • Einlesen von riesigen Excel Tabellen

    • alpines
    • 18. Januar 2017 um 04:19

    Du kriegst mit AutoIt bis zu 1GB problemlos in eine Variable geladen also misst du dir darum keine Gedanken machen. Sollten die Daten zu groß werden, kannst du sie einfach teilen und in kleinere Dateien unterteilen wenn es überhaupt nicht gehen sollte.

    Die Listen kanst du mir einfachen Stringfunktionen und RegEx auslesen und mit eigener Logik bearbeiten.
    Klingt also eigentlich alles machbar, wenn man AutoIt beherrscht. Solltest du Fragen haben, sind wir ja rund um die Uhr da! :)

  • Jumper in Autoit?

    • alpines
    • 17. Januar 2017 um 22:11

    Wenn dein Problem gelöst ist, so setz doch den Threadstatus auf gelöst/erledigt damit andere Nutzer direkt die Lösung finden. Dazu musst du den 1. Beitrag in diesem Thread editieren.

  • Button betätigen nach Ereignissänderung

    • alpines
    • 17. Januar 2017 um 17:37
    Zitat von Frost0071

    Ist das nun einfach zu realisieren? Was brauche ich dazu für Informationen?

    Geh erstmal mit dem AutoIt Window Info Tool über die roten und grünen Kreise und übe den Button den du drücken möchtest und poste uns die Resultate.
    Sollten es Standardcontrols sein die man mit den Control*-Funktionen auslesen kann, dann ist das innerhalb von 5 Minuten erledigt.

    Sollte es sich nicht um Standardcontrols handeln hast du immer noch die Möglichkeit über die eher schlechteren Varianten wie z.B. PixelSearch / PixelGetColor dein Vorhaben umzusetzen.

  • Kryptische Umlaute in Version 3.2.0.0 und 3.2.2.0

    • alpines
    • 17. Januar 2017 um 17:36

    Schreib dir ein kleines Parserscript das schaut welche Werte die Konstanten alle haben, sollte es vorkommen das sie unterschiedliche Werte aufweisen, dann wird das nicht so einfach.
    Sollten sie aber alle den selben Wert haben, so kannst du einfach alle Zeilen bis auf die (vorzugsweise) oberste löschen.

  • Geöffnete Software überprüfen ob bestimmter Text angezeigt wird

    • alpines
    • 17. Januar 2017 um 17:34

    Wir verlangen von dir nicht das du das Programm hochlädst mit allen relevanten Firmendaten sondern uns sagst, was das für ein Programm ist.
    Eventuell willst du ein paar Screenshots davon zeigen wo du sensible Daten rausstreichst damit wir sehen womit wir es zu tun haben und dir schnellstmöglich weiterhelfen können. :)

  • Geöffnete Software überprüfen ob bestimmter Text angezeigt wird

    • alpines
    • 17. Januar 2017 um 15:41

    Das ist kein Problem wenn du uns verrätst um was für ein Programm es sich handelt. Geh mal mit dem AutoIt Window Info Tool drüber und präsentier mal deine Ergebnisse, dann können wir dir sicherlich weiterhelfen.

  • Große Dateien einlesen? Alternative zu FileReadLine & FileReadToArray?

    • alpines
    • 17. Januar 2017 um 15:06
    Zitat von Sonderbaar

    @Oscar hast du nen Rechner vom Wetterdienst? ?(

    Oder hast du schon eine Testmaschine davon zu Hause?
    Acer Predator 21 X

    Das einlesen bei mir dauert auch nur etwas über 10 Sekunden. Bei dir wirds sicherlich auch nicht merklich länger dauern.
    Ich denke mal der TE verschweigt uns irgendwas oder sieht den Wald vor lauter Bäumen nicht.

  • Kryptische Umlaute in Version 3.2.0.0 und 3.2.2.0

    • alpines
    • 17. Januar 2017 um 14:24
    Zitat von chesstiger

    Kopier' dir doch einfach die alten 3.2... Include-Dateien in den Skriptordner und binde sie mit #include "..." ein. Dann sollte sich dein Programm mit alten Includes und neuem AutoIt compilen lassen.

    Psscht, das wäre glaube ich zu einfach :rolleyes: Kann aber sein, dass es dennoch nicht funktioniert, weil einige Makros o. ä. rausgeflogen sind. Sollte den Aufwand aber dennoch erheblich reduzieren.

  • Kryptische Umlaute in Version 3.2.0.0 und 3.2.2.0

    • alpines
    • 17. Januar 2017 um 14:04
    Zitat von Yaerox

    steinaltes AutoIt-Script das ich nur mit der Version 3.2.2.0 kompilieren kann

    Warum? Du kannst das doch sicherlich umschreiben für die neue Version oder nicht? Die Kompatibilität wird mit zunehmender Zeit sicherlich nicht besser werden.

    Was passiert denn z.B. wenn du dir den Source dann mal im Microsoft Notepad anschaust oder mit einem Hex-Editor? Sind die Hex-Werte dort korrekt für die Umlaute?
    Eventuell speichert SciTE ja die Umlaute falsch ab, gabs nämlich schonmal: https://www.autoitscript.com/forum/topic/17…ding-to-v33140/

  • Interaktiver Bildschirm kranke Mutter Demenz

    • alpines
    • 17. Januar 2017 um 11:43
    Zitat von Rici64

    Wo kann ich die her haben?

    Einfach mal nach 'SAPI Voices' googlen, dann wirst du einige finden.

  • Große Dateien einlesen? Alternative zu FileReadLine & FileReadToArray?

    • alpines
    • 16. Januar 2017 um 18:46
    Zitat von Oscar

    Entweder machst Du etwas ganz anders oder Dein Rechner ist aus der Steinzeit.

    Er hat bisher keinen Code rausgegeben, wundert mich ehrlich gesagt schon etwas.

  • Große Dateien einlesen? Alternative zu FileReadLine & FileReadToArray?

    • alpines
    • 16. Januar 2017 um 13:43

    Oh das ist ja schon mal eine gute Steigerung. Was passiert denn wenn du statt FileReadLine die ungefähre Anzahl an Bytes mit FileRead liest?
    Im Startthread steht ja FileRead / FileReadLine, ist da kein Unterschied egal was du verwendest?

  • Große Dateien einlesen? Alternative zu FileReadLine & FileReadToArray?

    • alpines
    • 16. Januar 2017 um 13:27
    Zitat von MorsGER

    Dein Beispiel macht meine Festplatte ebenso innerhalb max. 1 Millisekunde, inkl. dem öffnen und schließen des Handles. Ich würde es für unwahrscheinlich halten, dass sich die Lesegeschwindigket von 2 handelsüblichen Festplatten um ein 2-millionenfaches unterscheiden.

    Wie du selber auf meine Antwort geschrieben hast willst du aber Millionen von Zeilen einlesen, also meine ich natürlich nicht das Timen von einer Leseoperation sondern von mehreren Millionen ohne Buffer.

    In deinem ursprünglichen Beitrag kann ich nichts zum Buffer finden, du hast versucht das ganze komplett einzulesen was kein Buffer ist (bis auf die 1k Zeilen mit FileReadLine).

    Ein Buffer soll dazu dienen das du weniger Leseoperationen auf deine Festplatte anwenden musst, so kannst du z.B. 10 MB lesen und die 10 MB abarbeiten statt eine Zeile zu lesen, abzuarbeiten und dann nochmal zu lesen wo du die Zugriffszeit bzw. Idle-Time der Platte noch draufrechnen musst.

    Das sollte man mit FileRead und FileSetPosition glaube ich hinkriegen.

  • Große Dateien einlesen? Alternative zu FileReadLine & FileReadToArray?

    • alpines
    • 16. Januar 2017 um 13:02

    Berechne dir mal die Geschwindigkeit mit Timern und lass dir die mal ausgeben, eventuell ist deine HDD in Kombination mit AutoIt einfach zu langsam?
    Vielleicht versuchst du mal mehrere Zeilen gleichzeitig einzulesen mit einem Buffer von 2 MB? Dann hast du auch die Zugriffszeiten auf die HDD nicht mehr.

  • Große Dateien einlesen? Alternative zu FileReadLine & FileReadToArray?

    • alpines
    • 16. Januar 2017 um 12:08
    Zitat von MorsGER

    Genau. Habe den FileHandle genommen.

    Dann hast du glaube ich was falsch gemacht. Ich habe mir gerade eine 390MB Textdatei erstellt und mit

    AutoIt
    $h = FileOpen("test.dat", 0)
    ConsoleWrite(FileReadLine($h, 5000) & @CRLF)
    FileClose($h)

    ausgeben lassen was drinne stand und es hat nicht mal ein Bruchteil einer Sekunde gedauert. Der Text wurde mir direkt angezeigt.

  • Große Dateien einlesen? Alternative zu FileReadLine & FileReadToArray?

    • alpines
    • 16. Januar 2017 um 10:32
    Zitat von MorsGER

    FileRead / FileReadLine - Ich habe die Datei als Handle, und dann zeilenweise eingelesen. Hierbei ging ich schrittweise vor, sodass er ressourcensparend immer nur 1000 Zeilen im RAM hat.
    Gescheitert an: Benötigte Zeit (~30 Minuten). Generell ist bei vielen Zeilen FileReadToArray deutlich im Vorteil. Somit ist das Skript super langsam wenn es jede Zeile einzeln einliest.

    Hast du bei FileReadLine das Handle der Datei durch FileOpen genommen oder einfach den Dateipfad? Mit dem Handle sollte das um einiges fixer gehen.

    Zitat von MorsGER

    Mit meinen (zusammengefasst) zwei Ansätzen hatte ich also bisher keinen Erfolg. Mein neuer Ansatz wäre komplett die Dateien in kleine (10MB) Portionen aufzuteilen und einzeln per FileReadToArray einzulesen. Dieser Lösungsweg ist mir aber nicht so lieb, da ich gerne ein übersichtliches Daten-System pflege, ohne hundert von ähnlichen Dateien.

    Wenn du im vorhinein schon auf 10 MB aufteilen kannst ist das okay aber wenn du das im Script machen musst killt dir das dennoch deine Laufzeit oder nicht?

  • PHP Öffnen

    • alpines
    • 13. Januar 2017 um 17:33

    Ist die PHP denn online auf einer Website?

  • au3-Script kompilieren

    • alpines
    • 13. Januar 2017 um 17:28

    Super das es geklappt hat, ich hab mal den Threadpräfix auf [gelöst] gesetzt. (1. Beitrag bearbeiten)

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™