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

  • Leerlauf und Energie sparen Windows

    • alpines
    • 16. April 2018 um 19:33

    Das Hibernating (und die anderen Modi) sind mittels der Shutdown-Funktion aufrufbar.

  • Incorrect Number of subscripts bei _GUICtrlListView_AddArray

    • alpines
    • 16. April 2018 um 17:31

    Also wenn ich der ListView Spalten hinzufüge und anschließend einen Ordner auswähle trägt er mir Dateien ein.

    Du hast keine Spalten angegeben.

    AutoIt
    $list_verarbeitete_dateien = GUICtrlCreateListView("Col 1|Col 2", 272, 32, 313, 253)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
  • Incorrect Number of subscripts bei _GUICtrlListView_AddArray

    • alpines
    • 16. April 2018 um 15:54
    Zitat von BugFix

    Einfach mal das Neuzeichnen initiieren

    Ich glaube eher, dass sein Array einfach die falschen Informationen enthält. Wenn er scrollen kann bedeutet das, dass er sie erfolgreich hinzugefügt hat.

    Ein Redraw wird das ganze erneut zeichnen, scrollbar und mit leeren Items.

  • Incorrect Number of subscripts bei _GUICtrlListView_AddArray

    • alpines
    • 16. April 2018 um 15:49

    Tja, ohne Script werden wir dir nicht helfen können.

  • Incorrect Number of subscripts bei _GUICtrlListView_AddArray

    • alpines
    • 16. April 2018 um 12:20

    _GUICtrlListView_AddArray möchte ein zwei-dimensionales Array erhalten und kein eindimensionales.

    Das Format steht in der Hilfe zur Funktion geschrieben.

  • Pixelate by UEZ - Benötige Hilfe bei Modifikation

    • alpines
    • 15. April 2018 um 23:01
    Zitat von Tuxedo

    Von dieser Art Code verstehe fast überhaupt nix mehr, ich kann hier nicht mal eine Funktion die ein externes Bild öffnet oder speichert einfügen.

    Was soll ich hier also mit Codeschnipseln anfangen.

    Zitat von alpines

    hCroppedBmp = _GDIPlus_BitmapCreateFromScan0($iWidthCrop, $iHeightCrop)
    $hCroppedBmpGraphics = _GDIPlus_ImageGetGraphicsContext($hCroppedBmp)
    _GDIPlus_GraphicsDrawImageRectRect($hCroppedBmpGraphics, $hBmp, $iX, $iY, $iWidthCrop, $iHeightCrop, 0, 0, $iWidthCrop, $iHeightCrop)
    _GDIPlus_GraphicsDispose($hCroppedBmpGraphics)

    $hPixelated = _GDIPlus_PixelateBitmap($hCroppedBmp, 9)
    _GDIPlus_GraphicsDrawImageRect($hGfxCtxt, $hBmp, 0, 0, $iWidth, $iHeight)
    _GDIPlus_GraphicsDrawImage($hGfxCtxt, $hPixelated, $iX, $iY)

    _WinAPI_BitBlt($hDC, 0, 0, $iWidth, $iHeight, $hDC_backbuffer, 0, 0, $SRCCOPY)

    Alles anzeigen

    So kompliziert ist das ganze nicht, wenn man sich die Hilfe zu den Befehlen anschaut, denn dort steht was welche Funktion macht.

    _GDIPlus_BitmapCreateFromScan0 erzeugt eine neue Bitmap mit den angegebenen Größen die wir verpixeln wollen.

    Um in diese Bitmap zu zeichnen brauchen wir das Graphics-Objekt das darauf zeigt (mit den _GDIPlus_GraphicsDraw* kann man nur auf Graphics-Objekte zeichnen).

    Anschließend zeichnen wir den Bereich den wir verpixeln wollen in die neue Bitmap und verwerfen das Graphics-Objekt, da wir damit fertig sind.

    _GDIPlus_PixelateBitmap verpixelt unsere ausgeschnittene Bitmap und mit den zwei Folgezeilen zeichnen wir die ursprüngliche Bitmap und die verpixelte (an die richtige Stelle).

    Das _WinAPI_BitBlt zeichnet das ganze Bild (geht glaube ich schneller als Double-Buffering in Gdi+).

    Es gibt nur eine Zeile die eine Bitmap lädt und diese ist ja wohl mehr als ersichtlich, also fehlt bei dir eher die Motivation das ganze mal richtig durchzugehen.

    FileOpenDialog und _GDIPlus_BitmapCreateFromFile und fertig, da hast du dein eigenes Bild.

    Und zum speichern benutzt du ebenfalls einen Einzeiler mit _GDIPlus_ImageSaveToFile (solltest dann aber statt auf die Fenster-Graphics auf eine Bitmap-Graphics zeichnen).

  • Pixelate by UEZ - Benötige Hilfe bei Modifikation

    • alpines
    • 15. April 2018 um 09:51

    Da gibt es viele Möglichkeiten, du könntest seine Funktion anpassen und sie mit einem Region-Objekt arbeiten lassen, oder wenn du die Funktion unverändert lassen möchtest,

    einfach den Teil der Bitmap croppen den du pixeln möchtest und diesen übergeben und anschließend auf die alte pasten.

    Zum Beispiel so:

    AutoIt
    Local $iX = 400, $iY = 400, $iWidthCrop = 200, $iHeightCrop = 200
    
    $hCroppedBmp = _GDIPlus_BitmapCreateFromScan0($iWidthCrop, $iHeightCrop)
    $hCroppedBmpGraphics = _GDIPlus_ImageGetGraphicsContext($hCroppedBmp)
    _GDIPlus_GraphicsDrawImageRectRect($hCroppedBmpGraphics, $hBmp, $iX, $iY, $iWidthCrop, $iHeightCrop, 0, 0, $iWidthCrop, $iHeightCrop)
    _GDIPlus_GraphicsDispose($hCroppedBmpGraphics)
    
    $hPixelated = _GDIPlus_PixelateBitmap($hCroppedBmp, 9)
    _GDIPlus_GraphicsDrawImageRect($hGfxCtxt, $hBmp, 0, 0, $iWidth, $iHeight)
    _GDIPlus_GraphicsDrawImage($hGfxCtxt, $hPixelated, $iX, $iY)
    
    _WinAPI_BitBlt($hDC, 0, 0, $iWidth, $iHeight, $hDC_backbuffer, 0, 0, $SRCCOPY)
    Alles anzeigen

    Dateien

    Pixelate_UEZ.au3 75,69 kB – 275 Downloads
  • delete query funktioniert in der workbench, aber nicht in Autoit

    • alpines
    • 14. April 2018 um 16:50
    Zitat von lloid

    Den Tipp mit den Ticks habe ich nicht ganz verstanden.. Gibt es eine Funktion dafür?

    Statt das Datum als String anzugeben sollst du diese in einen UNIX-Timestamp umrechnen (oder das Format das in der Datenbank als long hinterlegt ist).

    Dann musst du nicht den String übergeben sondern den Timestamp. SQL bietet dafür glaube ich auch Funktionen an. to_date("2018-04-14", "yyyy-mm-dd")

  • delete query funktioniert in der workbench, aber nicht in Autoit

    • alpines
    • 14. April 2018 um 15:20

    Sicher, dass es nicht das fehlende Leerzeichen nach dem AND ist?

  • Text in HTML-Code lokaler HTML-Dateien ändern

    • alpines
    • 13. April 2018 um 15:57

    Es wäre mir neu wenn sich HTML-Dateien sich gegen Fileoperationen wehrend würden.

    Einlesen mit FileRead, StringReplace nutzen (die gesamte Zeile einfach replacen mit der neuen Jahreszahl, damit du andere Informationen nicht replaced), alte Datei löschen und neuschreiben mit FileWrite.

    Ansonsten FileOpen, FileSetPos (mit StringInStr), FileWrite, FileFlush/FileClose.

  • [gelöst] Strg+Shift+O in Windows blockiert

    • alpines
    • 13. April 2018 um 15:34
    Zitat von Peter S. Taler

    Setz den Thread bitte noch auf gelöst

    Dieser Header ist im OT-Bereich (auch Talk) nicht verfügbar.

  • CSV_DB

    • alpines
    • 11. April 2018 um 22:05
    Zitat von DaveTDancer

    AutoItler ja hast recht hab ich wohl übersehen werde ich mal ändern und dann schau ich mal was es an performens bringt, DANKE

    Ist zwar OT, aber du hast den falschen verlinkt :D

  • [gelöst] Strg+Shift+O in Windows blockiert

    • alpines
    • 11. April 2018 um 21:09

    Hast du vielleicht die Tastatur gewechselt oder hast du ein anderes Layout? (DE, CH, AT, EN, ...)

    Übrigens setzt du mit ^0 den Hotkey CTRL+0 und nicht CTRL+SHIFT+O, das wäre ^+{o}.

    Lass dir mal mit _IsPressed die Tastendrücke ausgeben und schau ob du die Tasten überhaupt als gedrückt angezeigt kriegst.

    Ich hatte übrigens mal ein ähnliches Problem, aber in Visual Studio. Dort konnte ich keine "}"-Zeichen setzen mit STRG+ALT+0, es ging nur mit AltGr+0.

  • Arraywerte verrechnen

    • alpines
    • 11. April 2018 um 16:30
    Zitat von Marschall

    Gibts inoffizielle APIs für jede Software

    Nicht ganz, einige wrappen einfach die Benutzeroberfläche und zeigen sich dann als API, ist aber von Bibliothek zu Bibliothek unterschiedlich.

    Du hast kein Array namens $Scan erzeugt und versuchst direkt die Indizes mit Daten zu füllen.

    Es scheint als ob du grundlegende AutoIt-Kentnisse nicht besitzt (vorhin das Addieren auch). Schau dir lieber die Grundlagen an bevor du dich an dem Script weiterversuchst.

    Dann wirst du dir eine Menge Arbeit ersparen.

  • Arraywerte verrechnen

    • alpines
    • 11. April 2018 um 15:50

    Wenn du sowas machen willst, dann lass direkt die Finger von PixelSearch und verwende die offizielle/inoffizielle API von WhatsApp.

    Das ist deutlich besser und du sendest nicht aus Versehen Textnachrichten an die falschen User wenn dein Script durcheinanderkommt.

    Hier sind z.B. ein paar Repos die sich damit beschäftigen: https://github.com/search?utf8=%E…tsapp+api&type=

    Den Code kannst du entweder nativ nutzen, für Au3 wrappen oder in Au3 selber schreiben.

    Wenn du es trotzdem über PixelSearch machen willst kannst du die Werte wie ganz normale Variablen addieren $a[0] + $b[0].

  • Arraywerte verrechnen

    • alpines
    • 11. April 2018 um 15:17

    Mal so nebenbei gefragt, was willst du denn mit der PixelSearch-Funktion finden, bzw. was willst du mit deinem Script erreichen?

    Es gibt deutlich effizientere und sichere Wege als mit Pixelfarben zu arbeiten.

  • Fenster ohne Titelleiste

    • alpines
    • 10. April 2018 um 13:18

    Da bietet sich der Extended Style $GUI_WS_EX_PARENTDRAG an, damit kannst du Labels nutzen um dein Fenster zu verschieben.

    Allerdings legt sich dann das Label über die anderen Controls und die kannst das Fenster nicht mehr verschieben, wenn du es über die gesamte GUI streckst.

    In deinem Beispiel bietet sich an oben ein Labelrechteck zu definieren und es als Titelleiste zu nutzen.

    AutoIt
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    
    
    #Region Deklaration
    
    Global $Window_Main
    
    Global $Button[3]
    
    #EndRegion Deklaration
    
    
    
    
    Opt("GUIOnEventMode", 1)
    Opt("MustDeclareVars", 1)
    
    $Window_Main = GUICreate("lmc", 510, 500, Default, Default, BitOr($WS_BORDER, $WS_POPUP))
    GUISetBkColor(0x7f8c8d, $Window_Main)
    
    GUICtrlCreateLabel("", 0, 0, 390, 30, $SS_WHITERECT, $GUI_WS_EX_PARENTDRAG)
    
    $Button[0] = GUICtrlCreateLabel("Test", 10, 460, 160, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetFont($Button[0], 11, 900)
    GUICtrlSetColor($Button[0], 0xFFFFFF)
    GUICtrlSetBkColor($Button[0], 0xFF690F)
    
    $Button[1] = GUICtrlCreateLabel("_", 400, 0, 50, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetOnEvent($Button[1], "MINIMIZE_clicked_Window_Main")
    GUICtrlSetFont($Button[1], 11, 900)
    GUICtrlSetColor($Button[1], 0xFFFFFF)
    GUICtrlSetBkColor($Button[1], 0x3498db)
    
    $Button[2] = GUICtrlCreateLabel("X", 460, 0, 50, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetOnEvent($Button[2], "CLOSE_clicked_Window_Main")
    GUICtrlSetFont($Button[2], 11, 900)
    GUICtrlSetColor($Button[2], 0xFFFFFF)
    GUICtrlSetBkColor($Button[2], 0xe74c3c)
    
    GUISetState(@SW_SHOW)
    ControlFocus($Window_Main, "", $Button[2])
    
    While 1
        Sleep(50)
    WEnd
    
    
    Func CLOSE_clicked_Window_Main()
        Exit
    EndFunc
    
    Func MINIMIZE_clicked_Window_Main()
        GUISetState(@SW_MINIMIZE, $Window_Main)
    EndFunc
    Alles anzeigen
  • Excel Kopfzeile innerhalb eines Skiptes ändern

    • alpines
    • 10. April 2018 um 13:14

    Die Excel-UDF bietet da z.B. _Excel_SheetList an.

    In dem Rückgabearray befindet sich in [n][0] der Name des Worksheets und in [n][1] das Objekt dazu. Daran könntest du es identifizieren.

    Wenn du beim Objektzugriff bleiben, und nicht die UDF verwenden willst (würde dir lieber die UDF empfehlen wegen Error-Handling), dann kannst du den Namen des Worksheets mit .Name rausfinden.

    Wenn also $oWorkbook dein aktuelles Worksheet ist, dann beinhaltet $oWorkbook.Name den Namen dazu, diese kannst du dann mit einem vordefinierten Namen von dir überprüfe ob er übereinstimmt und dann anschließend die Kopfzeile verändern.

  • Excel Kopfzeile innerhalb eines Skiptes ändern

    • alpines
    • 10. April 2018 um 11:58

    Du iterierst durch die Worksheets anstatt ein spezielles auszuwählen.

    Prüfe in der Schleife einfach ob du dich im gewünschten Worksheet befindest und dann setze die Kopfzeile.

    Vielleicht kann man auch direkt das Worksheet auswählen, aber da bin ich überfragt.

  • Quelltext auslesen

    • alpines
    • 7. April 2018 um 23:20

    Nein, denn InetRead und _InetGetSource fragen die Seite mit GET ab und können so keinen Post-Body mitsenden.

    Würde man die Seite per GET abfragen (wenn die Parameter in der URL encoded wären), dann ja, so aber nicht.

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™