Hai leute,
ich habe jetzt angefangen mich mit GDI+ zu befassen!
Bis jetzt habe ich immer auf Gui´s gezichnet!
Kann man jetzt aber auch in den Vordergrund zeichen?
also das die Zeichnung VOR allen fenstern ist!
mfg Mr.Multibot
Hai leute,
ich habe jetzt angefangen mich mit GDI+ zu befassen!
Bis jetzt habe ich immer auf Gui´s gezichnet!
Kann man jetzt aber auch in den Vordergrund zeichen?
also das die Zeichnung VOR allen fenstern ist!
mfg Mr.Multibot
du kannst das fenster immer im vordergrund halten:
[autoit]WinSetOnTop ( "title", "text", flag )
[/autoit]Es gibt die möglichkeit mit der UDF von H2112, da wird eine transparente gui erstellt die das auslöst !
Kann man jetzt aber auch in den Vordergrund zeichen?
![]()
also das die Zeichnung VOR allen fenstern ist!
Meinst du auf dem Desktop ?
Dann guck dir mal das an.
[autoit]#include <GDIPlus.au3>
#include <WinAPI.au3>
$hDesktop = _WinAPI_GetDesktopWindow()
[/autoit][autoit][/autoit][autoit]_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hDesktop)
$hPen = _GDIPlus_PenCreate(0xff000000+0x000000,5)
_GDIPlus_GraphicsDrawLine($hGraphic,200,200,500,500,$hPen)
Sleep(1000)
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Ja das ist schon das was ich meine:D
noch eine Frage kann man verhindern das das gezeichnete verschwindet wen man irgendwo hinklickt===????
Is zwar nicht die beste Methode aber naja
Schade ist das man GuiRegisterMsg nicht auf andere Handles anwenden kann.
#include <GDIPlus.au3>
#include <WinAPI.au3>
$hDesktop = _WinAPI_GetDesktopWindow()
[/autoit][autoit][/autoit][autoit]_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hDesktop)
$hPen = _GDIPlus_PenCreate(0xff000000+0x000000,5)
_GDIPlus_GraphicsDrawLine($hGraphic,200,200,500,500,$hPen)
AdlibRegister("Redraw",100)
[/autoit][autoit][/autoit][autoit]While Sleep(50)
WEnd
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Func Redraw()
_GDIPlus_GraphicsDrawLine($hGraphic,200,200,500,500,$hPen)
EndFunc
naja s wirklich nich grade toll^^
aber naja..:D okay danke
Das Beispiel von Sprenger, bzw. das Prinzip klappt erst ab Vista, also nicht bei XP, da dort kein Fenster mit dem Namen "Desktop" existiert...
@Cartan: Doch das Fenster Dekstop existiert auch auf Xp ![]()
Bei mir klappts nicht ![]()
Führe mal bitte folgendes Skript aus ^^:
[autoit]$fenster=WinList()
For $x=1 to $fenster[0][0]
If StringInStr($fenster[$x][0], "Desktop") Then
MsgBox(0, "", "Das Fenster Desktop existiert.")
Exit
EndIf
Next
MsgBox(0, "", "Okay, ich hab mich wohl doch geirrt, das Fenster Desktop existiert nicht.")
Ich geb mich geschlagen, hattest recht, aber das Script von Sprenger klappt trotzdem nicht ![]()
Das Beispiel von Sprenger, bzw. das Prinzip klappt erst ab Vista, also nicht bei XP, da dort kein Fenster mit dem Namen "Desktop" existiert...
So müsste das auch auf XP Funzen
[autoit]#include <GDIPlus.au3>
#include <WinAPI.au3>
$hDC = _WinAPI_GetDC(0)
[/autoit][autoit][/autoit][autoit]_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC)
$hPen = _GDIPlus_PenCreate(0xff000000+0x000000,5)
_GDIPlus_GraphicsDrawLine($hGraphic,200,200,500,500,$hPen)
Sleep(5000)
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
_WinAPI_ReleaseDC(_WinAPI_GetDesktopWindow(),$hDC)
//Edit: Falsches Script gewesen.
Nein, es klappt immer noch nicht...
Edit: nach dem Edit gings ![]()
Edit: nach dem Edit gings
Das ist nur kurz aufgeblitzt stimmts ?