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

Beiträge von name22

  • Warum gibt es hier keine Bots?

    • name22
    • 26. November 2012 um 16:28

    Muss das hier denn wirklich sein? Ich dachte wir hätten das schon öfters durchgekaut. Die Forenregeln sind meiner Meinung nach klar verständlich und an die hat man sich hier nun mal zu halten. Unsere Chefs im Forum haben nun wirklich genug Erfahrung um darüber urteilen zu können was sie nicht auf ihrer Seite wollen.

  • Alles gute Raupi

    • name22
    • 26. November 2012 um 16:24

    Mensch 42 wirst du! Einen viel besseren Geburtstag gibt es doch gar nicht. Eigentlich müsste ich dir glatt ein Handtuch schenken :whistling: .
    Alles Gute zum Geburtstag Raupi! :party: Lass dich feiern und hab ne Menge Spaß :thumbup: .

  • Fritz Box Reconnectet für x64 / x86 im Design der Fritz!Box 7390

    • name22
    • 25. November 2012 um 20:43

    Das Forum heißt nicht umsonst "Skripte" ;).

  • Funktion RunAs: Bat Datei wird nicht mit Administrativen Rechten ausgeführt

    • name22
    • 24. November 2012 um 22:04

    Dann wird doch aber auch kein RunAs mehr benötigt, oder? Normalerweise werden Adminrechte doch an einen Prozess weiter gegeben der von einem Programm mit Adminrechten gestartet wird. ?(
    Was ich am ersten Beitrag nicht verstehe ist, dass nirgendwo eine Batchdatei gestartet wird.

  • Script fürBildschirmschohner

    • name22
    • 24. November 2012 um 12:00

    Du musst in deinem Programm die entsprechenden Befehlszeilen verarbeiten die Windows an dein Programm sendet wenn du bestimmte Modis auswählst ;). Hier ist ein Beispiel dafür von UEZ: https://autoit.de/index.php?page=Thread&threadID=27832

  • GDI+ Countdown

    • name22
    • 22. November 2012 um 23:02

    Wie wäre es so? :rolleyes:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>

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

    HotKeySet("{ESC}", "_Exit")

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

    _GDIPlus_Startup()

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

    $hGUI = GUICreate("GDI+ Countdown", 400, 200)
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(400, 200, $hGraphics)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsFillRect($hBuffer, 0,0, 400, 200, _GDIPlus_BrushCreateSolid(0xFFA2FF00))

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

    GUISetState()

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

    While True
    For $i = 5 To 0 Step - 1
    _GDIPlus_GraphicsClear($hBuffer, 0xFFA2FF00)
    _GDIPlus_GraphicsDrawString($hBuffer, $i, (400 / 2) - 6, (200 / 2) - 8)
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmap, 0, 0)
    Sleep(1000)
    Next

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

    WEnd

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

    Func _Exit()
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

    [/autoit]


    Du musst nach jedem Zeichenvorgang der auf der GUI angezeigt werden soll, aber nur im Buffer steht, diesen auf die Grafik der GUI zeichnen. Dein GraphicsDrawImage war an der völlig falschen Position. Es muss hinter die Zeichenvorgänge und in die Schleife.

  • mein Hex2Dec rechnet falsch :(

    • name22
    • 21. November 2012 um 18:54

    Die Funktionen aus der Binary UDF sind da vermutlich ein wenig schneller (teilweise Inline-Assembler).
    Hier mal ein Beispiel mit Umwandlung nach Hex und wieder zurück (mit AutoIt-Int):

    Spoiler anzeigen
    [autoit]

    #include <Binary.au3>

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

    $iDec = 8608480567731124087
    $iHex = "0x" & _Hex64($iDec)

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

    ConsoleWrite("Hex:" & @TAB & $iHex & @CRLF & "Dec:" & @TAB & Int($iHex, 2) & @CRLF)

    [/autoit]
  • Text automatisch vergrößern

    • name22
    • 21. November 2012 um 18:38

    So kannst du die Farben anpassen:

    Spoiler anzeigen
    [autoit]

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

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

    Opt('MustDeclareVars', 1)
    Opt('GUIOnEventMode', 1)

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

    _GDIPlus_Startup()

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

    Global $iWidth = 400
    Global $iHeight = 200

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

    Global $iColor_BG = 0xFF5555FF
    Global $iColor_TextFill = 0xFFFFAA00
    Global $iColor_TextBorder = 0xFFA00000

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

    Global $hGui = GUICreate("GDI+", $iWidth, $iHeight)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGui)
    Global $hBmpBuffer = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphics)
    Global $hGfxBuffer = _GDIPlus_ImageGetGraphicsContext($hBmpBuffer)
    _GDIPlus_GraphicsSetSmoothingMode($hGfxBuffer, 2)
    _GDIPlus_GraphicsClear($hGfxBuffer, $iColor_BG)

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

    Global $hPen = _GDIPlus_PenCreate($iColor_TextBorder, 3)
    Global $hBrush = _GDIPlus_BrushCreateSolid($iColor_TextFill)

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

    GUIRegisterMsg($WM_PAINT, "WM_PAINT")
    GUIRegisterMsg($WM_ERASEBKGND, "WM_ERASEBKGND")

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

    GUISetState()

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

    Global $hPath = _CreatePath("Text ;)")
    Global $fStep = 0
    While 1
    $fStep += 0.025
    _Draw(Abs(Sin($fStep)))
    Sleep(10)
    WEnd

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

    Func _Draw($fScale)
    _GDIPlus_GraphicsClear($hGfxBuffer, $iColor_BG)

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

    DllCall($ghGDIPDll, "uint", "GdipTranslateWorldTransform", "hwnd", $hGfxBuffer, "float", -$iWidth / 2, "float", -$iHeight / 2, "int", False)
    DllCall($ghGDIPDll, "uint", "GdipScaleWorldTransform", "hwnd", $hGfxBuffer, "float", $fScale, "float", $fScale, "int", True)
    DllCall($ghGDIPDll, "uint", "GdipTranslateWorldTransform", "hwnd", $hGfxBuffer, "float", $iWidth / 2, "float", $iHeight / 2, "int", True)

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

    DllCall($ghGDIPDll, "uint", "GdipDrawPath", "hwnd", $hGfxBuffer, "hwnd", $hPen, "hwnd", $hPath)
    DllCall($ghGDIPDll, "uint", "GdipFillPath", "hwnd", $hGfxBuffer, "hwnd", $hBrush, "hwnd", $hPath)

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

    DllCall($ghGDIPDll, "uint", "GdipResetWorldTransform", "hwnd", $hGfxBuffer)

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

    _GDIPlus_GraphicsDrawImage($hGraphics, $hBmpBuffer, 0, 0)
    EndFunc ;==>_Draw

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

    Func _CreatePath($sText)
    Local $hFormat = _GDIPlus_StringFormatCreate()
    Local $hFamily = _GDIPlus_FontFamilyCreate("Arial Black")

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

    Local $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    Local $tBounds = _GDIPlus_RectFCreate(0, 0, 0, 0)

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

    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
    If @error Or Not IsArray($aResult) Then Return SetError(1, 1, False)
    Local $hPath = $aResult[2]

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

    DllCall($ghGDIPDll, "uint", "GdipAddPathString", "hwnd", $hPath, "wstr", $sText, "int", -1, "hwnd", $hFamily, "int", 1, "float", 100, "ptr", DllStructGetPtr($tLayout), "hwnd", $hFormat)
    DllCall($ghGDIPDll, "uint", "GdipGetPathWorldBounds", "hwnd", $hPath, "ptr", DllStructGetPtr($tBounds), "hwnd", 0, "hwnd", 0)

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

    Local $hMatrix = _GDIPlus_MatrixCreate()
    _GDIPlus_MatrixTranslate($hMatrix, -DllStructGetData($tBounds, "X"), -DllStructGetData($tBounds, "Y"))
    _GDIPlus_MatrixScale($hMatrix, $iWidth / DllStructGetData($tBounds, "Width"), $iHeight / DllStructGetData($tBounds, "Height"), True)
    DllCall($ghGDIPDll, "uint", "GdipTransformPath", "hwnd", $hPath, "hwnd", $hMatrix)
    _GDIPlus_MatrixDispose($hMatrix)

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

    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)

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

    Return $hPath
    EndFunc ;==>_CreatePath

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

    Func WM_PAINT($hWnd, $uMsgm, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBmpBuffer, 0, 0)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_PAINT

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

    Func WM_ERASEBKGND($hWnd, $uMsgm, $wParam, $lParam)
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBmpBuffer, 0, 0)
    Return True
    EndFunc ;==>WM_ERASEBKGND

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

    Func _Exit()
    DllCall($ghGDIPDll, "uint", "GdipDeletePath", "hwnd", $hPath)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hGfxBuffer)
    _GDIPlus_BitmapDispose($hBmpBuffer)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]


    Ich hab dir einfach ein paar globale Variablen an den benötigten Stellen eingesetzt.

  • Text automatisch vergrößern

    • name22
    • 21. November 2012 um 07:55
    Zitat

    Außerdem ist sie langsamer, als die Custom-Variante...


    Wie das? Beide Funktionen machen den selben DllCall zur Funktion GdipDrawString in der gdiplus.dll. Der einzige Unterschied ist, dass die Custom Variante in der Funktion die benötigten Objekte erzeugt und löscht (bei jedem Aufruf) während DrawStringEx nur den DllCall beinhaltet und verlangt, dass du die Objekte selbst erstellst und bei jedem Aufruf per Parameter übergibst. Wenn die Funktion so oft hintereinander verwendet wird, sollte man meiner Meinung nach eher auf DrawStringEx zurückgreifen.

  • Seltsamer DllCallback/DllCall Error

    • name22
    • 20. November 2012 um 17:11

    Es freut mich zu hören, dass es zumindest bei einer Person funktioniert ^^. Zwei andere User (vermutlich Win 7) haben auch schon getestet und hatten das selbe Ergebnis wie ich.
    Kann sich irgendjemand vorstellen wieso das scheinbar vom Betriebssystem abhängt?

  • Welchen Updater nutzt Ihr?

    • name22
    • 19. November 2012 um 21:16

    So wie du deinen Beitrag gestaltet hast, gehört das hier eher in Off-Topic... Und, wie Chris es schon angesprochen hat, bitte hör einfach auf Anfragen für deinen Updater zu stellen. Du bist ja noch nicht mal in der Lage die Bedenken von Usern bezüglich der Forenregeln zu klären und zwar in keinem deiner beiden Threads.

  • Prüfen, ob exe Internetzugang hat

    • name22
    • 19. November 2012 um 18:28

    Vermutlich überwacht dein AV-System nur TCP/UDP Verkehr und lässt ICMP Requests ohne Nachfrage passieren. Ich hab das mit dem AV-Programm wohl irgendwie überlesen, sorry.
    Du einfachste Möglichkeit die mir sonst einfällt wäre folgendes:

    Spoiler anzeigen
    [autoit]

    TCPStartup()

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

    $hSocket = TCPConnect(TCPNameToIP("www.google.com"), 80)
    If @error Then ConsoleWrite("Unable to connect" & @CRLF)
    TCPCloseSocket($hSocket)

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

    TCPShutdown()

    [/autoit]
  • Seltsamer DllCallback/DllCall Error

    • name22
    • 18. November 2012 um 21:41

    In folgendem Code tauchen sporadisch seltsame Fehler auf die ich mir momentan nicht wirklich erklären kann. Manchmal läuft der Code ohne Probleme durch, manchmal werden Fehler wie "undeclared Variable" angezeigt an Stellen wo gar keine Variable ist. Manchmal stürzt AutoIt ohne jegliche Rückmeldung ab.

    Spoiler anzeigen
    [autoit]


    ; -Author: name22 (http://www.autoit.de)

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

    Global Const $WT_EXECUTEDEFAULT = 0x00000000
    Global Const $WT_EXECUTEINIOTHREAD = 0x00000001
    Global Const $WT_EXECUTEINTIMERTHREAD = 0x00000020
    Global Const $WT_EXECUTEINPERSISTENTTHREAD = 0x00000080
    Global Const $WT_EXECUTELONGFUNCTION = 0x00000010
    Global Const $WT_EXECUTEONLYONCE = 0x00000008
    Global Const $WT_TRANSFER_IMPERSONATION = 0x00000100

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

    $hDll_Kernel32 = DllOpen("kernel32.dll")

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

    $hCallBack = DllCallbackRegister("_Callback", "NONE", "LPARAM;INT")
    $hTimer = _CreateTimerQueueTimer($hCallBack, 12345, 200, 200, Default, Default, $hDll_Kernel32)

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

    ConsoleWrite("Before Callback" & @CRLF)
    Sleep(2000)

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

    ConsoleWrite("Deleting: " & _DeleteTimerQueueTimer($hTimer, 0, 0, $hDll_Kernel32) & @CRLF)

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

    Sleep(1000)

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

    ConsoleWrite("After Callback" & @CRLF)
    DllClose($hDll_Kernel32)
    DllCallbackFree($hCallBack)

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

    Func _Callback($lParam, $TimerOrWaitFired)
    ConsoleWrite("Callback Parameter: " & $lParam & @CRLF)
    EndFunc

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

    Func _CreateTimerQueueTimer($hTimer_Callback, $iParameter, $iDueTime, $iPeriod = 0, $iFlags = $WT_EXECUTEDEFAULT, $hTimerQueue = 0, $hDll_Kernel32 = "kernel32.dll")
    Local $thTimerHandle = DllStructCreate("HANDLE")
    Local $aRes = DllCall($hDll_Kernel32, "BOOL", "CreateTimerQueueTimer", "PTR", DllStructGetPtr($thTimerHandle), "HANDLE", 0, "PTR", DllCallbackGetPtr($hTimer_Callback), "INT", $iParameter, "DWORD", $iDueTime, "DWORD", $iPeriod, "ULONG", $iFlags)
    If @error Then Return SetError(@error, @extended, 0)
    If Not $aRes[0] Then Return SetError(2, 0, 0)
    Return DllStructGetData($thTimerHandle, 1)
    EndFunc

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

    Func _DeleteTimerQueueTimer($hTimer, $hCompletionEvent = 0, $hTimerQueue = 0, $hDll_Kernel32 = "kernel32.dll")
    Local $aRes = DllCall($hDll_Kernel32, "BOOL", "DeleteTimerQueueTimer", "HANDLE", $hTimerQueue, "HANDLE", $hTimer, "HANDLE", $hCompletionEvent)
    If @error Then Return SetError(@error, @extended, 0)
    Return $aRes[0]
    EndFunc

    [/autoit]


    Hier sind noch die Links zu MSDN Artikeln der Kernelfunktionen die ich versuche zu verwenden:
    http://msdn.microsoft.com/de-de/library/…esktop/ms682485
    http://msdn.microsoft.com/de-de/library/…esktop/ms682569
    Alle Timer werden für die Default TimerQueue erstellt, somit sollte das Löschen der Liste nicht nötig sein.

    PS: Ich suche nicht nach einer Alternative zu diesen Timern, sondern nach einer Lösung für dieses Problem ;).

  • Bildschirmlupe mit Windowshook und eigener Window Message

    • name22
    • 18. November 2012 um 20:47

    Auch wenn ich mit diesem Script nicht ganz zufrieden bin, stelle ich es hier mal der Allgemeinheit zur Verfügung. Vielleicht kann es ja mal jemand gebrauchen.
    Zumindest ist es ein Beispiel für die Umsetzung eines Windows Hooks auf die Computermaus, um die Mauszeigerbewegung abzufangen.

    Bei Hooks wird immer eine Callback Funktion angegeben, die von einem externen Prozess aus aufgerufen wird wenn ein bestimmtes Event eintritt. Von dieser Funktion hängt aber auch jede weitere Verwendung dieser Daten ab.
    Ein großes Problem bei globalen Hooks ist die begrenzte Dauer der Callback Funktion. Wenn die Funktion zu lange dauert (z.B. +100ms) dann wird der vom Hook beanspruchte Teil des Systems(z.B. Mausposition) für alles andere verlangsamt (z.B. Cursorposition von Windows aktualisieren).
    Ich habe deswegen das Auslesen der Mausdaten und alles andere Hook-Zeugs in ein zweites Script ausgelagert. Dieses zweite Script schickt nun bei jeder Bewegung des Mauszeigers dessen aktuelle Position mit einer Window Message (wie z.B. WM_MOVE) an das erste Script, das daraufhin die Bildschirmlupe aktualisiert. Im ersten Script muss man dann lediglich mit GUIRegisterMsg die MessageID registrieren.

    Das zweite Script ("TimerSlave.au3") muss zuerst gestartet werden und startet daraufhin das erste Script (sofern es den richtigen Namen trägt und im selben Verzeichnis ist).
    Dieses Programm dürfte für jeden Interessant sein, der sich für Windows Hooks und interprozess Kommunikation interessiert. Außerdem ist es ein simples Beispiel, wie sich bestimmte zeitintensive Aufgaben bzw. Verwaltungsaufgaben auf andere Scripte auslagern und synchronisieren lassen. Schließlich reagiert das eine Script sofort, wenn das andere die Nachricht sendet. Und über wParam und lParam können Daten übertragen werden.

    Dateien

    Bildschirmlupe.au3 6,32 kB – 410 Downloads TimerSlave.au3 2,04 kB – 409 Downloads
  • Happy Birthday Techmix!

    • name22
    • 18. November 2012 um 20:28

    Da wurde mein Vorschlag ja prompt umgesetzt :D.

    Happy Birthday, Techmix! :thumbup:
    Party Hard :party:
    Hoffentlich liest er das jetzt auch... :whistling:

  • Fenster fxieren

    • name22
    • 18. November 2012 um 20:26

    Wenn du den Rahmen etc. behalten willst, dann gäbe es auch folgende Möglichkeit:

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>

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

    ; -Author: name22 (http://www.autoit.de)

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

    Global $bLock = False, $tRect_Pos

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

    Global $hWnd = GUICreate("Test", 200, 100)
    Global $cButton_LockPos = GUICtrlCreateButton("Lock Window", 50, 35, 100, 30)
    GUISetState()

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $cButton_LockPos
    Switch $bLock
    Case False
    $tRect_Pos = _WinAPI_GetWindowRect($hWnd)
    GUIRegisterMsg($WM_MOVING, "_Moving")
    Case True
    GUIRegisterMsg($WM_MOVING, "")
    EndSwitch
    $bLock = Not $bLock
    EndSwitch
    WEnd

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

    Func _Moving($hWnd, $iMsg, $wParam, $lParam)
    Local $tRect_Moving = DllStructCreate($tagRECT, $lParam)
    For $i = 1 To 4
    DllStructSetData($tRect_Moving, $i, DllStructGetData($tRect_Pos, $i))
    Next
    EndFunc

    [/autoit]
  • Bilder einlesen und in GUI anzeigen

    • name22
    • 18. November 2012 um 20:12

    Ich helfe dir gerne bei deinem Problem, vorausgesetzt du postest den Quellcode das nächste mal mit einem anderen Browser so dass man überhaupt lesen kann was das sein soll... :P
    Ich hab mir jetzt ausnahmsweise die Mühe gemacht deinen Quellcode wieder zusammenzustückeln.

    Spoiler anzeigen
    [autoit]

    #include<GDIPlus.au3>
    #include<Misc.au3>

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

    $karte = GUICreate("Karte erstellen", 600, 600, 200, 200)
    GUISetState()

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

    _GDIPlus_Startup()
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($karte)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(600, 600, $hGraphics)
    $hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)

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

    $kastchen = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\hintergrundelement.png")
    $karaoben = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\bugnorth_y.png")

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

    $iX = 174
    $iY = 174
    $xkord = 174
    $ykord = 174
    $iWH = 29

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

    _GDIPlus_GraphicsDrawImageRect($hBitmap, $kastchen, $iX, $iY, 200, 200)

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

    For $i = 1 To 9 ; Y
    For $ii = 1 To 9 ; X
    _GDIPlus_GraphicsDrawImageRect($hBuffer, _GDIPlus_ImageLoadFromFile(@DesktopDir & "\hintergrundelement.png"), $xkord, $ykord, $iWH, $iWH)
    _GDIPlus_GraphicsDrawImage($hBuffer, $karaoben, $xkord, $ykord)
    $xkord = $xkord + 28
    Next
    $ykord = $ykord + 28
    $iX = 174
    Next

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

    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, 600, 600) ;Backbuffer (Bitmap) auf Frontbuffer (GUI) zeichnen

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

    While GUIGetMsg() <> -3
    WEnd

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

    ; Ressourcen aus dem Speicher entfernen!
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_GraphicsDispose($hBuffer)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_ImageDispose($kastchen)
    _GDIPlus_ImageDispose($karaoben)
    _GDIPlus_Shutdown()

    [/autoit]


    Dein Script scheint zu Teilen zusammenkopiert zu sein, ohne dass du wirklich verstehst was passiert:
    - Du hast bei deinem Script vergessen die Ressourcen am Scriptende wieder aus dem Speicher zu entfernen.
    - Du zeichnest alles in den Backbuffer, ohne diesen je auf den Frontbuffer (die GUI) zu zeichnen.
    - Du gibtst deinen Variablen missverständliche und schlecht gewählte Namen.
    Falls ich mit einer Auffassung falsch liege, dann nichts für ungut. Wenn ich aber recht habe, dann schau dir doch bitte mal einige Tutorials in der Box mit der Aufschrift "Wichtige Links" links oben auf der Webseite neben den Beiträgen. ;)

  • Prüfen, ob exe Internetzugang hat

    • name22
    • 18. November 2012 um 17:54

    Handelt es sich um deine eigene AutoIt exe? Wenn ja, was spricht dagegen einen zuverlässigen Server (z.B. Google) anzupingen?

  • index.html mit autoit starten

    • name22
    • 18. November 2012 um 17:35

    @heyhey Pushen ist hier nicht gerne gesehen, besonders nicht in so geringen zeitlichen Abständen und ohne jeglichen Inhalt außer "Kann mir mal eben jemand helfen" das hat dir auch schon autoBert hier gesagt. Es wäre mir Recht wenn du dir die Beiträge in deinem eigenen Thread mal durchliest und eventuelle Ratschläge wahrnimmst. Rückmeldungen zu Lösungsvorschlägen sind natürlich auch ein Muss.

  • Mousehook - Daten asynchron verarbeiten

    • name22
    • 18. November 2012 um 17:32

    Das habe ich mir schon gedacht, schließlich ist alles andere schief gelaufen :(... Trotzdem danke, BugFix ;).
    Ich werde es vorerst mal offen lassen, vielleicht kommt ja noch zufällig jemandem eine Idee.
    Ob ich das in Skripte posten sollte um zu zeigen wie man sowas machen könnte... ?( Mit Hooks und eigenen Windows Nachrichtencodes gibt es ja noch nicht sonderlich viele Scripte.

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™