hi hab ein script gebastetelt was ein fremdes fenster abspielt und einen eigenen rand herum zeichnet .hab jezt aber 4 probleme.wenn das eingebundene fenster ein anderes programm oder eine msgbox öffnet ist diese nicht im fenster.
2.Mein größstest problem ist das wenn ich mit dem taskamager drüberfahrer das eingebeundene programmm übermalt wird da musss man dann wieder draufdrücken das man es wieder sieht.
3.Es funktioniert bei Browsern nicht.
4.Es funktioniert nicht wenn das programm versteckt gestartet wird.
Spoiler anzeigen
;#NoTrayIcon
#include "graphicdesigner2.au3"
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>
_GDIPlus_Startup()
$pp = "-"
$hPid = Run(@SystemDir & '\notepad.exe');, "", @SW_HIDE)
While $pp = "-"
_WinGetByPID($hpid)
Sleep(100)
WEnd
WinSetState($pp,"",@sw_hide)
WinWait($pp)
$fensters = WinGetPos($pp)
$gui = GUICreate("",$fensters[2]+8,$fensters[3]+46,0,0,$WS_POPUP,BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST))
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($gui)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($fensters[2]+20,$fensters[3]+46, $hGraphic)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
WinMove($pp,"",4,42)
$hChild = WinGetHandle($pp)
;http://www.autoit.de/index.php?page…=27957&pageNo=2
_WinAPI_SetParent($hChild, $gui)
_WinAPI_SetWindowLong($hChild, $GWL_STYLE, $WS_POPUP)
WinSetState($hChild, "", @SW_SHOW)
GUISetState()
While 1
_designer_create_viereck(0,0,$fensters[2]+9,$fensters[3]+42,$fensters[2]+4,$fensters[3]+42,2,1,0xFF0AE07F)
_GDIPlus_GraphicsFillRect($hbuffer,0,0,$fensters[2]+10,30,$_designer_hbrush)
_designer_wirte_text(0,5,$pp,15,0xFFFFFFFF,0,"Arial")
;$fileread = FileRead(@ScriptDir & "\Settings\desktophintergrund.wina")
;Sleep(1000)
$maus = GUIGetCursorInfo($gui)
If Not($maus = "") Then
If _IsPressed(01) And $maus[0] >= $fensters[2]- 10 And $maus[1] >= $fensters[3] -10 Then _exit()
EndIf
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, 0, 0,$fensters[2]+20,$fensters[3]+46 )
Sleep(10)
WEnd
Func _WinGetByPID($iPID)
Local $aWList = WinList()
For $iCC = 1 To $aWList[0][0]
If WinGetProcess($aWList[$iCC][1]) = $iPID And _
BitAND(WinGetState($aWList[$iCC][1]), 2) Then
$pp = $aWList[$iCC][0]
Return $aWList[$iCC][0]
EndIf
Next
Return SetError(1, 0, 0)
EndFunc
Func _exit()
_designer_shoutdown()
_GDIPlus_GraphicsDispose($hgraphic)
_GDIPlus_BitmapDispose($hbitmap)
_GDIPlus_Shutdown()
Exit
EndFunc
Graphicdesigner2:
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>
Dim $_designer_hFont,$_designer_hFamily,$_designer_hFormat,$_designer_hBrush,$_designer_write_text_maxlenght = 0,$_designer_number = 0,$_designer_create_m[4]
Func _designer_wirte_text($_designer_wirtetext_x,$_designer_wirtetext_y,$_designer_wirtetext_text,$_designer_wirtetext_high,$_designer_wirtetext_color,$_designer_wirtetext_format,$_designer_wirtetext_family)
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($gui)
$_designer_hBrush = _GDIPlus_BrushCreateSolid($_designer_wirtetext_color)
$_designer_hFormat = _GDIPlus_StringFormatCreate()
$_designer_hFamily = _GDIPlus_FontFamilyCreate($_designer_wirtetext_family)
$_designer_hFont = _GDIPlus_FontCreate($_designer_hFamily, $_designer_wirtetext_high, $_designer_wirtetext_format)
$tLayout = _GDIPlus_RectFCreate($_designer_wirtetext_x, $_designer_wirtetext_y, $_designer_write_text_maxlenght, 0)
$aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $_designer_wirtetext_text, $_designer_hFont, $tLayout, $_designer_hFormat)
_GDIPlus_GraphicsDrawStringEx($hbuffer, $_designer_wirtetext_text, $_designer_hFont, $aInfo[0], $_designer_hFormat, $_designer_hBrush)
EndFunc
Func _designer_wirte_text_maxlenght($_designer_write_text_maxlengh)
$_designer_write_text_maxlenght = $_designer_write_text_maxlengh
EndFunc
Func _designer_shoutdown()
_GDIPlus_FontDispose($_designer_hFont)
_GDIPlus_FontFamilyDispose($_designer_hFamily)
_GDIPlus_StringFormatDispose($_designer_hFormat)
_GDIPlus_BrushDispose($_designer_hBrush)
EndFunc
Func _designer_create_viereck($_designer_create_rahmen_x,$_designer_create_rahmen_y,$_designer_create_rahmen_lenght,$_designer_create_rahmen_high,$_designer_create_rahmen_abstandx,$_designer_create_rahmen_abstandy,$_designer_create_rahmen_anzahlx,$_designer_create_rahmen_anzahly,$_designer_hbrus);_designer_create_viereck($_designer_create_viereck_x,$_designer_create_viereck_y,$_designer_create_viereck_lenght,$_designer_create_viereck_high,$_designer_hbrus)
$_designer_hbrush = _GDIPlus_BrushCreateSolid($_designer_hbrus)
For $assasds = 0 To $_designer_create_rahmen_anzahlx -1 Step 1
_GDIPlus_GraphicsFillRect($hbuffer,$_designer_create_rahmen_x,$_designer_create_rahmen_y,4,$_designer_create_rahmen_high,$_designer_hbrush)
$_designer_create_rahmen_x += $_designer_create_rahmen_abstandx
Next
For $assasds = 0 To $_designer_create_rahmen_anzahlx -1 Step 1
$_designer_create_rahmen_x -= $_designer_create_rahmen_abstandx
Next
For $assasds = 0 To $_designer_create_rahmen_anzahly Step 1
;_GDIPlus_GraphicsFillRect($hbuffer,$_designer_create_rahmen_x,$_designer_create_rahmen_y,2,$_designer_create_rahmen_high,$_designer_hbrush)
_GDIPlus_GraphicsFillRect($hbuffer,$_designer_create_rahmen_x,$_designer_create_rahmen_y,$_designer_create_rahmen_lenght,4,$_designer_hbrush)
$_designer_create_rahmen_y += $_designer_create_rahmen_abstandy
Next
EndFunc
Func _designer_create_m($_designer_create_m_x,$_designer_create_m_y,$_designer_create_m_lenght,$_designer_create_m_high,$_designer_create_m_abstandx,$_designer_create_m_abstandy,$_designer_hbrus)
;$_designer_create_m_anzahl = $_designer_create_m_high /= $_designer_create_m_abstandy *$_designer_create_m_lenght /= $_designer_create_m_abstandx
$_designer_maus = GUIGetCursorInfo()
$_designer_hbrush = _GDIPlus_BrushCreateSolid($_designer_hbrus)
$_designer_maus_y = $_designer_create_m_y
;Dim $_designer_create_m[$_designer_number+1]
For $assasds = 0 To $_designer_number+1
$_designer_create_m[$assasds] = False
Next
$_designer_number = 0
For $assasds = 0 To Int($_designer_create_m_high / $_designer_create_m_abstandy) -1
$_designer_maus_x = $_designer_create_m_x
For $assasds2 = 0 To Int($_designer_create_m_lenght/ $_designer_create_m_abstandx)-1;$_designer_create_m_anzahl
$_designer_number +=1
If $_designer_maus[0] > $_designer_maus_x And $_designer_maus[0] <= $_designer_maus_x+$_designer_create_m_abstandx And $_designer_maus[1] > $_designer_maus_y And $_designer_maus[1] <= $_designer_maus_y+$_designer_create_m_abstandy Then
_GDIPlus_GraphicsFillRect($hbuffer,$_designer_maus_x,$_designer_maus_y,$_designer_create_m_abstandx,$_designer_create_m_abstandy,$_designer_hbrush)
$_designer_create_m[$_designer_number] = True
EndIf
;MsgBox(0,"",$_designer_maus_x & ":" & $_designer_maus_y)
;$a = Int($_designer_create_m_high / $_designer_create_m_abstandy)
;MsgBox(0,"",$a)
;_Exit()
$_designer_maus_x += $_designer_create_m_abstandx
Next
$_designer_maus_y += $_designer_create_m_abstandy
Next
EndFunc