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

Beiträge von Andy

  • log datei in echtzeit in listview einlesen

    • Andy
    • 28. September 2009 um 12:59

    schau mal in dem Beispiel im Post obendrüber....ich editiere immer viel zu langsam^^

  • log datei in echtzeit in listview einlesen

    • Andy
    • 28. September 2009 um 12:51

    Hi,
    echtzeit^^, der war gut :rofl:
    mach doch eine Endlosschleife, prüfe den Zeitstempel der Logdatei, wenn der sich ändert dann Daten des Logs in die Liste einlesen....

    Zitat

    ohne es vorher in eine datei umzuleiten

    dafür gibts schon massig Lösungen, schau mal nach stdoutread, bsp:

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Global $line

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

    $Console = Run(@ComSpec & " /c ping http://www.autoit.de", @ScriptDir, @SW_hide,$STDERR_CHILD + $STDOUT_CHILD)

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

    While 1
    $line &= StdoutRead($Console)
    If @error Then ExitLoop
    WEnd

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

    MsgBox(0, "STDOUT gelesen:", $line)

    [/autoit]
  • _DayIntervalToDateArray & @Hour & @min

    • Andy
    • 28. September 2009 um 12:30
    Zitat

    Ich finde die 2^$n Methode ürbigens ziemlich effektiv.

    Diese Methode ist nur dann effektiv, wenn du damit irgendetwas einsparen kannst, Speicherplatz, Zeit usw.
    Aber nur "weil es geht" einen lesbaren Ausdruck in etwas (auf Anhieb) unleserliches zu verwandeln um es danach wieder in lesbare Daten zu transferieren ist suboptimal.
    Ich versuche daher wenn es weder auf Zeit noch auf Platz ankommt, so lesbar wie möglich zu Scripten.
    Dann können auch ggf. andere etwas damit anfangen.

  • Dokumentenauswertung

    • Andy
    • 27. September 2009 um 22:39
    Zitat

    Dann lass ich die Ecken mit AutoIt "suchen"

    schau mal da PushTheButton

  • 2D-Spiel-Hilfe

    • Andy
    • 27. September 2009 um 22:35

    Hi,
    die Grafik ist ja KLASSE!
    Und die Steuerung fühlt sich auch sehr "smooth" an, das Hintergrundscrollen klappt doch einwandfrei?!

  • Liste/Tabelle in ein Tab einbauen.

    • Andy
    • 27. September 2009 um 21:50

    Hi,
    wenn du deine GUI mit KODA erstellst, musst du darauf achten, daß du sofort nach dem Erstellen des Tabs die Liste dort einfügst. Erst danach die weiteren Tabs erstellen!

  • Dokumentenauswertung

    • Andy
    • 27. September 2009 um 21:43

    Hi, quatsch, die eigentliche Arbeit (das Scannen) macht der Copyshop für kleines Geld sauschnell mit nem extra dafür gemachten Scanner^^. Lass dir (50.000 Seiten omg^) einige DVD´s mit den gescannten Seiten brennen oder schieb sie auf deinen webspace oder ftpserver. Wenn das prog einmal funzt, dann lass es einfach auf die 50000 Seiten los.....

    Und teil die Aufgaben auf wenn sich schon Leute anbieten. Scans (bilder) normalisieren, "geraderücken" und die ganzen anderen vorbereitenden Sachen lässt man von einem der 27453 Freeware-Programme machen, die dafür da sind ^^. selbst einen "schiefgescanntenBildergeraderückAlgorithmus" in AutoIt tut man sich nicht an!!!
    Zeig doch mal eine der Seiten, damit ich schon was zu tun habe...

  • rechtsklick in lixtbox

    • Andy
    • 27. September 2009 um 20:50

    ...eigentlkich ging es ja um die WM_NOTIFY...
    hier mal ein Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>

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

    ;Global Const $WM_NOTIFY = 0x004E ; removed to conform to Autoit build 3.2.10.0
    Global $DoubleClicked = False

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

    GUICreate("Double Click/Right Click Demo", 400, 300)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    ;create listboxt
    $ListViewID = GuiCtrlCreateListView("List Column", 10, 20, 380, 250)

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

    ;******************Rightclick Menu*************
    $menu1=GUICtrlCreateContextMenu ($ListViewID)
    $delete=GUICtrlCreateMenuitem("Delete" , $menu1)
    $play=GUICtrlCreateMenuitem("Play" , $menu1)
    $info=GUICtrlCreateMenuitem("Info" ,$menu1)

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

    ;~~~~~~~~~~~~~~~Using Loop Method~~~~~~~~~~~~~~

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

    ;***************End Rightclick Menu************

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

    ;this builds the items in your list box
    For $i = 1 To 10
    GuiCtrlCreateListViewItem("Item " & $i, $ListViewID)
    Next

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

    GUISetState()

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

    While 1
    $hGui = GUIGetMsg()
    Sleep(10)
    Switch $hGui
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If $DoubleClicked Then
    DoubleClickFunc()
    $DoubleClicked = False
    EndIf
    Select
    Case $hGui = $delete
    delete()
    Case $hGui = $play
    play()
    Case $hGui = $info
    info()
    EndSelect
    WEnd

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

    Func DoubleClickFunc()
    MsgBox(64, "OK ", "You Double Clicked: " & GUICtrlRead(GUICtrlRead($ListViewID)) & " ?")
    EndFunc

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

    Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return 0
    $code = DllStructGetData($tagNMHDR, 3)
    If $wParam = $ListViewID And $code = -3 Then $DoubleClicked = True
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func play()
    MsgBox(64, "You Right Clicked ", "Play: " & GUICtrlRead(GUICtrlRead($ListViewID)) & " ?")
    EndFunc

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

    Func delete()
    MsgBox(64, "You Right Clicked ", "Delete: " & GUICtrlRead(GUICtrlRead($ListViewID)) & " ?")
    EndFunc

    Func info()
    MsgBox(64, "You Right Clicked ", "Info For: " & GUICtrlRead(GUICtrlRead($ListViewID)) & " ?")
    EndFunc

    [/autoit]
  • rechtsklick in lixtbox

    • Andy
    • 27. September 2009 um 20:26

    Hi,
    schau dir mal in der Hilfe das Beispiel zum _GUICtrlListView_ClickItem() an. Dort ist vor allem der Bereich im WM-NOTIFY interessant, wo es um die Abfrage des $RM-RClick geht....
    Das ist die Nachricht, bei der du einhaken kannst...

  • Desktop "einschränken" ?

    • Andy
    • 27. September 2009 um 20:04
    Zitat

    Also, bei ICQ geht es ja


    Das Problem ist, daß viele dieser "Programme" eigene Grafiktreiber haben um damit Sachen zu machen, die mit dem "normalen" Windows-API so nicht machbar sind, oder für das es einfach zu langsam ist (GDI+ ist da ein gutes Beispiel)
    Daher nutzen auch viele Grafik/Video-Programme (auch Spiele) den sog. "overlay"-Modus. Dabei werden Grafiken auf dem Bildschirm angezeigt, von denen das BS überhaupt keine Ahnung hat.

  • Bilder mit Transparentem Hintergrund erstellen?

    • Andy
    • 27. September 2009 um 19:52

    Dann ändere doch einfach das Script ab, daß damit auch "Bilder" transparent übereinander gelegt werden können....

  • GDI-Bilder Drehen

    • Andy
    • 27. September 2009 um 19:45

    aaahhhh, jetzt wirds hell^^
    Ja natürlich musst du dann ein entsprechend grösseres Bild erstellen, das bissl Fingerabzählen wg der Größe sollte aber kein Problem sein^^
    Als "Hintergrund" nimmst du dann einfach ein GUI-Fenster (nicht angezeigt) in der entsprechenden Größe.

  • Bild verschlüsselt einlesen und anzeigen lassen

    • Andy
    • 27. September 2009 um 19:38

    Ja natürlich ist das möglich, Bilder einzulesen und die darin enthaltenen Daten wieder zu entschlüsseln.
    Am günstigsten ist es natürlich die verschlüsselten Daten UNSICHTBAR im Bild zu plazieren.
    Oder willst du einfach nur ein "verschlüsseltes" Bild mit einem entsprechenden Algorithmus entschlüsseln und anzeigen?

  • GDI-Bilder Drehen

    • Andy
    • 27. September 2009 um 19:25

    Hallo Anno2008,
    du brauchst keine GUI um das Bild zu drehen, und auch kein "leeres" Bid.
    Ablauf:
    -Die Daten aus deiner Bitmap clonen
    -Aus der Bitmap ein Graphiccontext machen (Leinwand), in das man zeichnen kann
    -Matrix vorbereiten und drehen
    -Clone in den Context zeichnen (dabei wird er gedreht)
    -Leinwand speichern

    Spoiler anzeigen
    [autoit]

    #include <GDIPlusConstants.au3>
    #include <GDIPlus.au3>
    Opt('MustDeclareVars', 1)

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

    Local $hGUI, $file, $hImage1, $hGraphic, $width, $height, $hmatrix, $image1, $hclone
    $hGUI = GUICreate("GDI+", 600, 400)
    GUISetState()
    _GDIPlus_Startup()
    $file = @SystemDir & '\oobe\images\mslogo.jpg'
    $hImage1 = _GDIPlus_BitmapCreateFromFile($file)
    $width = _GDIPlus_ImageGetWidth($hImage1)
    $height = _GDIPlus_ImageGetHeight($hImage1)
    $hClone = _GDIPlus_BitmapCloneArea($hImage1, 0, 0, $width, $height, $GDIP_PXF24RGB) ;bild clonen

    $hGraphic = _GDIPlus_ImageGetGraphicsContext ($hImage1) ; aus dem img eine graphicscontext machen, damit man auf der "leinwand" auch zeichnen kann

    $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixRotate($hMatrix, 3, "False") ;3 grad drehen
    _GDIPlus_GraphicsSetTransform($hgraphic, $hMatrix) ;bitmap vorbereiten

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

    _GDIPlus_GraphicsDrawImage($hgraphic, $hclone, 0,0) ;clone in die Bitmap zeichnen

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

    _GDIPlus_ImageSaveToFile($himage1, @scriptdir&"\gedreht_Image.jpg")

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

    _GDIPlus_ImageDispose ($hImage1)
    _WinAPI_DeleteObject ($hclone)
    _WinAPI_DeleteObject ($hgraphic)

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

    ; Shut down GDI+ library
    _GDIPlus_ShutDown ()

    [/autoit]

    */EDIT/* du hast schon gemerkt, daß man beim Drehen aufpassen muss, grosse Winkel gehen nicht "auf einmal" , sondern man muss ggf mehrmals drehen und dabei den Mittelpunkt der Drehung anpassen

  • PushTheButton, ermöglicht Mausklick auf sonst nicht erreichbare Grafiken UPDATE 1.36

    • Andy
    • 27. September 2009 um 17:14

    Neue Version, siehe ersten Post!

  • Dokumentenauswertung

    • Andy
    • 27. September 2009 um 14:18

    Formpro kommt der Sache doch schon sehr nahe denke ich...
    Aber für dreieinhalbtausend Euronen kannst du dich auch 4 Wochen hinsetzen und die Formulare selbst auswerten, das lohnt sich wirklich nur bei Masse^^
    Aber der Workflow stimmt und ist auch nicht sonderlich schwer in AutoIt umzusetzen. Ich versuch es mal am Beispiel einer Multiple-Choice-Seite:
    - nicht ausgefülltes Referenzblatt A scannen
    - Bereiche X1,X2,X3 , Y1,Y2 Z1,Z2,Z3,Z4 grafisch festlegen, in denen mögliche Änderungen erfasst werden , und bezeichnen
    - ausgefüllte (angekreuzte) Seite B scannen
    - den Bereich X1 von Blatt A mit dem Bereich X1 B vergleichen (verschiedene grafische Möglichkeiten). Wenn beim Vergleichen der beiden Bereiche eine bestimmte Schwelle überschritten ist, diesen Bereich als "angekreuzt" markieren .

    Für das Ausrichten der Scans, Normalisierung usw kann man (kostenlose) externe Programme verwenden. Für AutoIt bliebe nur noch die Auswahl der zu vergleichenden Bereiche und die Auswertung bzw. Prüfung auf "erlaubte" Kombinationen der angekreuzten Felder, d.h. die Bewertung auf Richtig/Falsch bzw Ungültig.

    Wenn du Interesse an einer Umsetzung in AutoIt hast, ich würde gerne mitmachen...

  • Hilfe !!!

    • Andy
    • 27. September 2009 um 12:53

    ....und keine Startbeiträge löschen...Schreib ein EDIT rein wenn du magst, aber kein Mensch weiss um was es geht wenn er über die Forensuche auf den Thread gestossen ist.

  • Script proplem? vllt datei pfad eingeben?

    • Andy
    • 27. September 2009 um 12:50

    Ich finde dies Diskussion sehr interessant, denn bei meiner Art zu Scripten liegt es "am Anfang" noch garnicht fest, ob im OnEvent- oder Msgmode gearbeitet wird. Meist fange ich Quick´n´Dirty mit dem MsgMode an und wenn dann die Abfragen eine bestimmte Größe (die ich nicht näher spezifizieren kann, "Gefühlssache"^^ ) überschreiten, dann wechsele ich auf den Eventmodus.

    Zitat

    Ich finde es zumeist sogar Sinnvoll, das die Events nicht just in Time abgearbeitet werden. Das führt meist zu Problemen.

    SEHR gutes Argument! Der DAU-Faktor muss beim OnEvent natürlich weitaus mehr beachtet werden!

  • SciTE

    • Andy
    • 27. September 2009 um 11:45

    Wenn wir schon dabei sind, gibt es eine Möglichkeit die Anzeige in der mit Alt-L erstellten Funktionsliste länger als 4 Zeilen zu machen? Ich bin bisher bis in den LUA-Quellcode vorgedrungen, aber es scheint, als ob diese List() -Funktion in C eine vordefinierte Größe hat.

  • Script proplem? vllt datei pfad eingeben?

    • Andy
    • 27. September 2009 um 11:38

    Raupi ,
    Natürlich hast du Recht! Seltsam, was man spät Nachts obwohl eigentlich hellwach, doch für Träume hat :thumbup:
    cio
    Andy

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™