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

  • VirtualDesktop

    • alpines
    • 17. Dezember 2017 um 11:59

    Ich bin mir nicht sicher ob du von diesen Desktops redest oder ob Windows 10 andere hat.

  • Autoit Forum Browser

    • alpines
    • 15. Dezember 2017 um 14:21
    Zitat von gmmg

    Man kann das aber auch bei z.B. Firefox mit den Command Line Options machen

    Das man mit dem CLI von Firefox eine embedded Instanz erstellen kann wäre mir neu. Welche URL der FF laden soll (beim Start) ist kein Problem aber das embedded das ganze ja nicht.

  • Mehrere MP3 Dateien in unterschiedlicher Lautstärke abspielen

    • alpines
    • 13. Dezember 2017 um 16:20

    Mich wunderts, dass noch niemand das WMPlayer.ocx Objekt vorgeschlagen hat. Man kann mehrere Instanzen vom Objekt erzeugen und abspielen.

    Das ist praktisch idiotensicher:

    AutoIt
    Global $oWMP = ObjCreate("WMPlayer.ocx")
    $oWMP.URL = "C:\Musik.mp3"
    
    Sleep(1000)
    
    Global $oWMP2 = ObjCreate("WMPlayer.ocx")
    $oWMP2.URL = $oWMP.URL
    
    Sleep(1000)
    
    $oWMP.settings.volume = 25
    $oWMP2.settings.volume = 35
    
    While Sleep(1000)
        ConsoleWrite($oWMP.playState & "-" & $oWMP2.playState & @CRLF)
    WEnd
    Alles anzeigen
  • Autoit Forum Browser

    • alpines
    • 11. Dezember 2017 um 22:47
    Zitat von Peter S. Taler

    Ev Msg box beim ersten Start nach den möglichen Brosern fragen

    Das ist ein embedded IE und keine eigenständige Fensterinstanz. Chrome und Firefox bieten so ein Interface nicht zum einbinden.

    Zumindest nicht so einfach wie beim IE, für Chrome gibt es für C# z.B. cefsharp.

  • GDIPlus Grafik speichern funktioniert nicht korrekt

    • alpines
    • 10. Dezember 2017 um 13:59

    Mit ImageGetGraphicsContext erzeugst du einen Buffer zu deinem BitmapObjekt welches auf ein GraphicsObjekt zeigt.

    GdiPlus flusht dann den Buffer automatisch auf die Bitmap und du musst es nur noch auf die Graphics mit _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap) zeichnen.

    Wenn man ImageSaveToFile mal an die Beispielfunktion von _GDIPlus_BitmapCreateFromGraphics hinzufügt, dann funktioniert das ganze auch:

    AutoIt
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    
    Global $g_hGUI, $g_hBrush, $g_hGfx, $g_hGfxCtxt, $g_hBitmap
    
    Example()
    
    Func Example()
        AutoItSetOption("GUIOnEventMode", 1)
    
        _GDIPlus_Startup() ;initialize GDI+
        Local Const $iWidth = 600, $iHeight = 600, $iBgColor = 0x303030 ;$iBGColor format RRGGBB
    
        $g_hGUI = GUICreate("GDI+ Example (" & @ScriptName & ")", $iWidth, $iHeight) ;create a test GUI
        GUISetBkColor($iBgColor, $g_hGUI) ;set GUI background color
        GUISetState(@SW_SHOW)
    
        ;create buffered graphics frame set for smoother gfx object movements
        $g_hGfx = _GDIPlus_GraphicsCreateFromHWND($g_hGUI) ;create a graphics object from a window handle
        $g_hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $g_hGfx) ;create a Bitmap object based on a graphics object
        $g_hGfxCtxt = _GDIPlus_ImageGetGraphicsContext($g_hBitmap) ;get the graphics context of the image / bitmap to draw on image / bitmap
        _GDIPlus_GraphicsSetSmoothingMode($g_hGfxCtxt, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;sets the graphics object rendering quality (antialiasing)
    
        $g_hBrush = _GDIPlus_BrushCreateSolid(0xFF8080FF) ;create a solid Brush object
    
        GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    
        Local Const $iDeg = ACos(-1) / 180 ;ACos(-1) is nearly pi
        Local $iSize = 50, $iX_Center = ($iWidth - $iSize) / 2, $iY_Center = ($iHeight - $iSize) / 2, $iXPos, $iYPos, $iAngle = 0
        Local Const $iDots = 16, $iAngelDist = 360 / $iDots, $iRadius = 200
    
        Do
            _GDIPlus_GraphicsClear($g_hGfxCtxt, 0xFF000000 + $iBgColor) ;clear bitmap with given color (AARRGGBB format)
            For $i = 1 To $iDots
                $iXPos = $iX_Center + Cos($iAngle * $iDeg) * $iRadius
                $iYPos = $iY_Center + Sin($iAngle * $iDeg) * $iRadius
                _GDIPlus_GraphicsFillEllipse($g_hGfxCtxt, $iXPos, $iYPos, $iSize, $iSize, $g_hBrush) ;draw dots in a circle
                $iAngle += $iAngelDist ;increase angle to next dot
            Next
            $iAngle += 1 ;increase overall angle
            _GDIPlus_GraphicsDrawImageRect($g_hGfx, $g_hBitmap, 0, 0, $iWidth, $iHeight) ;copy drawn bitmap to GUI
        Until Not Sleep(20) ;Sleep() always returns 1 and Not 1 is 0
    EndFunc   ;==>Example
    
    Func _Exit() ;cleanup GDI+ resources
        _GDIPlus_ImageSaveToFile($g_hBitmap, "test.png")
        _GDIPlus_BrushDispose($g_hBrush)
        _GDIPlus_GraphicsDispose($g_hGfxCtxt)
        _GDIPlus_GraphicsDispose($g_hGfx)
        _GDIPlus_BitmapDispose($g_hBitmap)
        _GDIPlus_Shutdown()
        GUIDelete($g_hGUI)
        Exit
    EndFunc   ;==>_Exit
    Alles anzeigen
  • GDIPlus Grafik speichern funktioniert nicht korrekt

    • alpines
    • 9. Dezember 2017 um 22:55

    Du musst ImageGetContext verwenden und das zurückgegebene Bild davon beschreiben (als Buffer), dann kannst du deine $hSaveBitmap auch speichern.

    Sieh dir mal das Beispiel zu _GDIPlus_BitmapCreateFromGraphics aus der Hilfe an: https://www.autoitscript.com/autoit3/docs/l…romGraphics.htm

    AutoIt
    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <GuiConstantsEx.au3>
    
    _Main()
    
    Func _Main()
        Local $hGUI
        global $hGraphic
        global $iWidth=600
        global $iHeight=400
        ;Local $iARGB_BG="0x22ffff22"
        $hGUI = GUICreate("Grafik",$iWidth, $iHeight)
        GUISetState()
    
        _GDIPlus_Startup()
    
        $hGraphic = _GDIPlus_GraphicsCreateFromHWND(WinGetHandle($hGUI))
    
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
    
        $hSaveBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphic) ; Bitmap aus Grafik zum Speichern erstellen
        $himage = _GDIPlus_ImageGetGraphicsContext($hSaveBitmap)
    
        _GDIPlus_GraphicsClear($himage,0x884565EA )
        _GDIPlus_GraphicsDrawString($himage, "test test", 50, 50, "Arial", 100)
    
        _GDIPlus_ImageSaveToFile($hSaveBitmap,@ScriptDir& "\Rechteck.png")
    ; Ressourcen freigeben
        _GDIPlus_GraphicsDispose($hGraphic)
        _GDIPlus_GraphicsDispose($hSaveBitmap)
    
        _GDIPlus_Shutdown()
    
    EndFunc   ;==>_Main
    Alles anzeigen
  • Hot Hot Hotfolder?

    • alpines
    • 9. Dezember 2017 um 13:12
    Zitat von Peter S. Taler

    Wie muss ich mir das vorstellen, dass die Schleife "überwunden wird?

    Dein Script läuft in die Schleife damit es sich nicht beendet und das Event wird dann ausgeführt. Wie genau was blockiert wird kann ich dir auf Anhieb nicht sagen, aber du kannst es ja mit einfachen Schleifen und ConsoleWrites mal testen und uns berichten. Generell sollte man in Events (sowie in AdlibFunktionen und Hotkeys) keine blockierenden Funktionen wie MsgBox oder ähnliches verwenden.

  • Geschwindigkeit eines Scripts

    • alpines
    • 8. Dezember 2017 um 20:26

    Ich verstehe ehrlich gesagt nicht was es hier noch zu diskutieren gibt. Oscar mach bitte den Thread dicht.

    Wenn es mit PixelSearch möglich ist Geld zu verdienen, dann ist es entweder gegen die AGBs des Anbieters und/oder es werden Bots damit gecodet.

  • Hot Hot Hotfolder?

    • alpines
    • 7. Dezember 2017 um 18:41

    Eventbasiert wäre das ganze viel besser, da kann dein Script so lange schlafen bis es von Windows aufgeweckt wird.

    Was du suchst ist ein FileSystemWatcher. Für C# gibts das bereits in der msdn: https://msdn.microsoft.com/en-us/library/…(v=vs.110).aspx

    Auf die schnelle habe ich nur das hier gefunden: https://www.autoitscript.com/forum/topic/53…watchermonitor/

    Das hier schaut auch sehr vielversprechend aus: class FileSystemWatcher -> SHChangeNotifyRegister

    Mit dem SHChangeNotifyRegister habe ich eine Datei aus dem Verzeichnis löschen können und es wurde mir direkt in der Konsole geloggt.

  • Anfrage für Website Parsing

    • alpines
    • 7. Dezember 2017 um 18:35
    Zitat von kra88

    Was für Daten brauchst du den genau von der Seite ?

    Zitat von elaaar

    15 Werte ausliest (davon 10 direkt untereinander (Top10 liste)

    Zitat von kra88

    Wo sollen die. Abgespeichert werden ?

    Zitat von elaaar

    Lokale (file) Datenbank Daten schreiben. (Parsen& Schreiben pro Ausführung des Scriptes)

  • 1+2+3+4 nun will ich ein Bildchen

    • alpines
    • 7. Dezember 2017 um 11:47

    Rahmen kannst du mit _GDIPlus_GraphicsDrawRect zeichnen.

    Für das Schreiben in bereits existente Bilder lädst du diese am besten mit _GDIPlus_ImageLoadFromFile und bearbeitest sie dann direkt.

    AutoIt
    #include <GDIPlus.au3>
    
    _GDIPlus_Startup()
    
    $hRedPen = _GDIPlus_PenCreate(0xFFFF0000, 5, 2)
    $hBitmap = _GDIPLUS_BitmapCreateFromScan0(300, 150)
    $hImage = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    
    _GDIPlus_GraphicsClear($hImage, 0xFFFCFCFC)
    
    _GDIPlus_GraphicsDrawRect($hImage, 2, 2, 300 - 5, 150 - 5, $hRedPen)
    _GDIPLus_GraphicsDrawString($hImage, "Rechnung", 5, 10, "Arial", 42)
    _GDIPlus_GraphicsDrawString($hImage, "00001", 55, 80, "Arial", 40)
    
    _GDIPlus_ImageSaveToFile($hBitmap, "Rechnung 1.jpg")
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_BitmapDispose($hBitmap)
    
    _GDIPlus_Shutdown()
    Alles anzeigen
  • 1+2+3+4 nun will ich ein Bildchen

    • alpines
    • 7. Dezember 2017 um 10:32

    Du kannst die Gdi+ UDF dafür nehmen, damit kannst du auch Strings zeichnen. Z.B. so:

    AutoIt
    #include <GDIPlus.au3>
    
    _GDIPlus_Startup()
    
    $hBitmap = _GDIPLUS_BitmapCreateFromScan0(300, 150)
    $hImage = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    
    _GDIPlus_GraphicsClear($hImage, 0xFFFCFCFC)
    _GDIPLus_GraphicsDrawString($hImage, "Rechnung", 5, 10, "Arial", 42)
    _GDIPlus_GraphicsDrawString($hImage, "00001", 55, 80, "Arial", 40)
    
    _GDIPlus_ImageSaveToFile($hBitmap, "Rechnung 1.jpg")
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_BitmapDispose($hBitmap)
    
    _GDIPlus_Shutdown()
    Alles anzeigen
  • Einbinden DLL für das Einlesen von Messwerten über die serielle Schnittstelle

    • alpines
    • 4. Dezember 2017 um 18:59
    Zitat von TheDude

    Aber - warum ist das so?

    So arbeitet DLLCall nunmal, die genaue Beschreibung was in dem Array enthalten ist steht hier unter Remarks. https://www.autoitscript.com/autoit3/docs/functions/DllCall.htm

    [0] ist der Rückgabewert der Funktion (wenn es erfolgreich war) und in den darauffolgenden Indizes stehen deine Parameter.

  • Dateinamen vergleichen

    • alpines
    • 4. Dezember 2017 um 14:13

    Du hast doch schon alles was du brauchst, die ersten sechs Zeichen hast du auch schon abgeschnitten und gespeichert.

    Jetzt kannst du sie mittels einer If-Verzweigung auf Gleichheit überprüfen und dann die MsgBox anzeigen lassen.

  • Aus Textdatei auslesen und in Formular / Anwendung kopieren

    • alpines
    • 4. Dezember 2017 um 11:50

    Wenn du uns verrätst für welche Anwendung du das ganze machen möchtest, dann könntest du sogar gleich das Formular in der Anwendung füllen und müsstest sie auf keine Tasten legen.

    Das lesen aus Textdateien kannst du mit FileRead, FileReadToArray machen.

  • Daten abgleichen

    • alpines
    • 29. November 2017 um 22:36
    Zitat von wenkedaue

    Giebt es denn eine Funktion, mit welcher ich die Daten der Session, bei welcher ich mich zuvor mittels des Scriptes angemeldet habe verwenden kann?

    Nein, du könntest aber mit _IEAttach dich an das IE-Fenster hängen und dann weiter manipulieren aber da wäre es besser sich gleich darüber einzuloggen statt mit Sends.

  • Daten abgleichen

    • alpines
    • 29. November 2017 um 19:34
    Zitat von xSunLighTx3

    Ich weiß, das hat wenkedaue aber auch schon getan laut Beschreibung.

    Du wirst die Session aber nicht in dem InetGet/InetRead verwenden können. Das erzeugt eine völlig neue IE-Instanz.

  • Daten abgleichen

    • alpines
    • 29. November 2017 um 15:56
    Zitat von xSunLighTx3

    Dadurch sollte man eigentlich auch den html Code auslesen können.

    Du wirst dich damit aber sehr wahrscheinlich nicht einloggen können.

  • Daten abgleichen

    • alpines
    • 29. November 2017 um 08:58
    Zitat von wenkedaue

    Ich denke es würde mir auch reichen, wenn ich wüsste welche Funktionen bzw. welche Kombination von Funktionen für so ein Problem sinnvoll sind.

    Dann schau dir mal die IE.au3 UDF an, damit kannst du die Elemente auf einer Website direkt adressieren und auf MouseClicks verzichten.

    Einfach nach einem geeigneten Tutorial suchen. Wenn du hart drauf bist kannst du auch versuchen direkt das ganze mit WinHttp zu lösen und den Browser komplett wegzulassen, ist aber ein bisschen schwieriger.

  • Daten abgleichen

    • alpines
    • 28. November 2017 um 20:33

    Wenn du uns verrätst um welche Seite es sich handelt kannst du das ganze im Hintergrund ohne die MouseClicks machen.

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™