Das Hibernating (und die anderen Modi) sind mittels der Shutdown-Funktion aufrufbar.
Beiträge von alpines
-
-
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.
-
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.
-
Tja, ohne Script werden wir dir nicht helfen können.
-
_GUICtrlListView_AddArray möchte ein zwei-dimensionales Array erhalten und kein eindimensionales.
Das Format steht in der Hilfe zur Funktion geschrieben.
-
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.
Alles anzeigenhCroppedBmp = _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)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).
-
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
Alles anzeigenLocal $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) -
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")
-
Sicher, dass es nicht das fehlende Leerzeichen nach dem AND ist?
-
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.
-
Setz den Thread bitte noch auf gelöst
Dieser Header ist im OT-Bereich (auch Talk) nicht verfügbar.
-
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

-
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.
-
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.
-
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].
-
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.
-
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
Alles anzeigen#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 -
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.
-
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.
-
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.