Forum | | | | - page 1 - |
| Julian Schmidt | Salut,
par cette Fil voudrais Je l' WinXP-Bug aus Screencapture[...] beheben.
Es handelt sich dabei um une Anzeige-faute quel sous WinXP auftritt. sous Fenêtre 7 & Co sieht on une noir eingefärbten Hintergrund et un weißes Steuerkreuz welches den Cursor verfolgt. sous WinXP ist rien trop voyons.
Def SetLayeredWindowAttributes(4) !"User32","SetLayeredWindowAttributes"
def SetWindowRgn(3) !"User32","SetWindowRgn"
def RectRgn(4) !"GDI32","CreateRectRgn"
Déclarer fenster&[], x&, posx&, posy&
Fenêtre Style 240+1024
Fenêtre %MaxX,%MaxY,0,0
Whileloop 2
fenster&[&loop]=Créer("Window",%hwnd,»,%MaxX,%MaxY,0,0)'fenster&[1] - Schwarze Blende
SetTransparent(fenster&[&loop],IF(&loop=1,55,20))'fenster&[2] - Durchsichtiger Klickschutz
SetWindowPos fenster&[&loop]=0,0 - %MaxX, %MaxY;-1
Endwhile
ShowCursor 0
WhileNot iskey(27)
Waitinput 10
posx&=CursorPos("X1")
posy&=CursorPos("Y1")
Début de peinture fenster&[1]
CLS 0
EndPaint
CutRgnDLG(fenster&[1],RectRgn(0,posy&,posx&,posy&+1),RectRgn(posx&+1,posy&,%MaxX,posy&+1),RectRgn(posx&,0,posx&+1,posy&),RectRgn(posx&,posy&+1,posx&+1,%MaxY))
CutRgnDLG(fenster&[2],RectRgn(0, 0, posx&, posy&),RectRgn(posx&+1, 0, %MaxX, posy&),RectRgn(0, posy&+1, posx&, %MaxY),RectRgn(posx&+1, posy&+1, %MaxX, %MaxY))
Endwhile
end
Proc SetTransparent
Paramètres Hwnd%, Perc%
Externe("User32","SetWindowLongA",Hwnd%, -20, Externe("User32","GetWindowLongA",Hwnd%,-20) | $80000)
SetLayeredWindowAttributes(Hwnd%, 0, (255 * Perc%) / 100, $2)
ENDPROC
Proc CutRgnDLG
Paramètres hdl&
Déclarer region&,wRgn&
wRgn&=RectRgn(0,0,width(hdl&)+100,height(hdl&)+100)
whileloop 2,%PCount
region&=@&(&loop)
Externe("GDI32","CombineRgn",wRgn&,region&,wrgn&,3)
DeleteObject region&
Endwhile
SetWindowRgn(hdl&, wRgn&, 1)
Retour wRgn&
ENDPROC
Proc WindowRect
Paramètres hdl&,Modus$
Modus$=Lower$(Modus$)
Déclarer x%, b#
Faible b#,16
Externe("User32", "GetWindowRect",hdl&,b#)
Cas @&(3)<>0 : Externe("User32","ScreenToClient",@&(3),b#) : Externe("User32","ScreenToClient",@&(3),b#+8)
Cas Modus$="breite" : x%=Long(b#,8)-Long(b#,0)
Cas Modus$="höhe" : x%=Long(b#,12)-Long(b#,4)
Cas Modus$="x1" : x%=Long(b#,0)
Cas Modus$="y1" : x%=Long(b#,4)
Cas Modus$="x2" : x%=Long(b#,8)
Cas Modus$="y2" : x%=Long(b#,12)
Dispose b#
Retour x%
ENDPROC
Proc CursorPos
Paramètres Modus$
Modus$=Lower$(Modus$)
Déclarer x%, mpos#
Faible mpos#,8
Externe("user32","GetCursorPos",mpos#)
Cas @&(2)<>0 : Externe("User32","ScreenToClient",@&(2),mpos#)
Cas Modus$="x1" : x%=long(mpos#,0)
Cas Modus$="y1" : x%=long(mpos#,4)
Cas Modus$="x2" : x%=IF(@&(2)<>0,WindowRect(@&(2),"Breite"),%maxx)-long(mpos#,0)
Cas Modus$="y2" : x%=IF(@&(2)<>02,WindowRect(@&(2),"Höhe"),%maxy)-long(mpos#,4)
Dispose mpos#
Retour x%
ENDPROC
LG
Julian |
| | | | |
| | | | | - page 1 - |
| Julian Schmidt | | | | | |
| | | Daran Il se trouve pas,
qui Frage ist seulement trop allgemein gestellt bzw. qui Code en supplément zeigt zwar un Problem mais beschreibt ne...aucune konkretes Problem bzw. ist vlt. sogar trop umfangreich comme cela erkenntlich ist cela es um un bestimmtes Problem allez.
Beispielsweise sais je pour Andreas Miethes Hinweisen garnicht plus sur welchem Stand qui Text ist.
Mach doch la fois une Dreizeiler qui cela Problem aufzeigt et benenne cela konkrete Problem nochmals. |
| | | | |
| | Julian Schmidt | pas absolument un 3. Zeiler sollte mais ok son. je voudrais cela aucun Titelleiste et cadre eingeblendet volonté. Windowstyle scheint irgendwie pas trop marcher.
Def SetLayeredWindowAttributes(4) !"User32","SetLayeredWindowAttributes"
def SetWindowRgn(3) !"User32","SetWindowRgn"
def RectRgn(4) !"GDI32","CreateRectRgn"
cls
Var dlg&=Créer("Window",%hwnd,»,0,0,%MaxX,%MaxY)
SetTransparent(dlg&,50)
Showwindow(dlg&,1)
CutRgnDLG(dlg&,RectRgn(0,0,0,0))
WhileNot iskey(27)
Endwhile
end
Proc SetTransparent
Paramètres Hwnd%, Perc%
Externe("User32","SetWindowLongA",Hwnd%, -20, Externe("User32","GetWindowLongA",Hwnd%,-20) | $80000)
SetLayeredWindowAttributes(Hwnd%, 0, (255 * Perc%) / 100, $2)
ENDPROC
Proc CutRgnDLG
Paramètres hdl&
Déclarer region&,wRgn&
wRgn&=RectRgn(0,0,width(hdl&)+100,height(hdl&)+100)
whileloop 2,%PCount
region&=@&(&loop)
Externe("GDI32","CombineRgn",wRgn&,region&,wrgn&,3)
DeleteObject region&
Endwhile
SetWindowRgn(hdl&, wRgn&, 1)
Retour wRgn&
ENDPROC
|
| | | | |
| | | | - page 2 - |
| | | je schätze dass cela quoi Du vouloir so pas funktioniert là Du einerseits une Dialog besoin (avec cela Transluzenz chez allen OS funktioniert) et andererseits vom air her un Static.
Maximal allez wohl seulement: KompilierenMarqueSéparationDef SetLayeredWindowAttributes(4) !"USER32","SetLayeredWindowAttributes"
def SetWindowRgn(3) !"USER32","SetWindowRgn"
def RectRgn(4) !"GDI32","CreateRectRgn"
cls
Var dlg&=Create("Dialog",%hwnd,"",100,100,300,300)
SetTransparent(dlg&,50)
setstyle dlg&,(getstyle(dlg&) | ws_caption) - ws_caption
'Showwindow(dlg&,1)
'CutRgnDLG(dlg&,RectRgn(0,0,0,0))
waitinput
end
Proc SetTransparent
Parameters Hwnd%, Perc%
External("USER32","SetWindowLongA",Hwnd%, -20, External("USER32","GetWindowLongA",Hwnd%,-20) | $80000)
SetLayeredWindowAttributes(Hwnd%, 0, (255 * Perc%) / 100, $2)
EndProc
Proc CutRgnDLG
Parameters hdl&
Declare region&,wRgn&
wRgn&=RectRgn(0,0,width(hdl&)+100,height(hdl&)+100)
whileloop 2,%PCount
region&=@&(&loop)
External("GDI32","CombineRgn",wRgn&,region&,wrgn&,3)
DeleteObject region&
EndWhile
SetWindowRgn(hdl&, wRgn&, 1)
Return wRgn&
ENDPROC
avec minimalem cadre.
Den könntest mais ggf. sogar couper avec région. |
| | | | |
| | Andreas Miethe
| si qui Fensterstil sur $F0 gesetzt ist, ensuite sollte es marcher, comment dessus déjà geschrieben.
Allerdings fürchte je tu es là dans einer impasse. Es volonté so pas alle Elemente eingefangen bzw. angezeigt. j'ai z.B. un paire "Minianwendungen" am courir, qui volonté so pas angezeigt.
KompilierenMarqueSéparation $H windows.ph
Def SetLayeredWindowAttributes(4) !"USER32","SetLayeredWindowAttributes"
def SetWindowRgn(3) !"USER32","SetWindowRgn"
def RectRgn(4) !"GDI32","CreateRectRgn"
Declare fenster&[], x&, posx&, posy&
WindowStyle $F0
Window %MaxX,%MaxY,0,0
Whileloop 2
fenster&[&loop]=Create("Dialog",%hwnd,"",%MaxX,%MaxY,0,0)'fenster&[1] - Schwarze Blende
SetStyle fenster&[&loop],GetStyle(%hwnd)
SetTransparent(fenster&[&loop],IF(&loop=1,55,20))'fenster&[2] - Durchsichtiger Klickschutz
SetWindowPos fenster&[&loop]=0,0 - %MaxX, %MaxY;-1
EndWhile
ShowCursor 0
WhileNot iskey(27)
Waitinput 10
posx&=CursorPos("X1")
posy&=CursorPos("Y1")
StartPaint fenster&[1]
CLS 0
EndPaint
CutRgnDLG(fenster&[1],RectRgn(0,posy&,posx&,posy&+1),RectRgn(posx&+1,posy&,%MaxX,posy&+1),RectRgn(posx&,0,posx&+1,posy&),RectRgn(posx&,posy&+1,posx&+1,%MaxY))
CutRgnDLG(fenster&[2],RectRgn(0, 0, posx&, posy&),RectRgn(posx&+1, 0, %MaxX, posy&),RectRgn(0, posy&+1, posx&, %MaxY),RectRgn(posx&+1, posy&+1, %MaxX, %MaxY))
Endwhile
end
Proc SetTransparent
Parameters Hwnd%, Perc%
External("USER32","SetWindowLongA",Hwnd%, -20, External("USER32","GetWindowLongA",Hwnd%,-20) | $80000)
SetLayeredWindowAttributes(Hwnd%, 0, (255 * Perc%) / 100, $2)
EndProc
Proc CutRgnDLG
Parameters hdl&
Declare region&,wRgn&
wRgn&=RectRgn(0,0,width(hdl&)+100,height(hdl&)+100)
whileloop 2,%PCount
region&=@&(&loop)
External("GDI32","CombineRgn",wRgn&,region&,wrgn&,3)
DeleteObject region&
EndWhile
SetWindowRgn(hdl&, wRgn&, 1)
Return wRgn&
EndProc
Proc WindowRect
Parameters hdl&,Modus$
Modus$=Lower$(Modus$)
Declare x%, b#
Dim b#,16
External("USER32", "GetWindowRect",hdl&,b#)
Case @&(3)<>0 : External("USER32","ScreenToClient",@&(3),b#) : External("USER32","ScreenToClient",@&(3),b#+8)
Case Modus$="breite" : x%=Long(b#,8)-Long(b#,0)
Case Modus$="höhe" : x%=Long(b#,12)-Long(b#,4)
Case Modus$="x1" : x%=Long(b#,0)
Case Modus$="y1" : x%=Long(b#,4)
Case Modus$="x2" : x%=Long(b#,8)
Case Modus$="y2" : x%=Long(b#,12)
Dispose b#
Return x%
EndProc
Proc CursorPos
Parameters Modus$
Modus$=Lower$(Modus$)
Declare x%, mpos#
Dim mpos#,8
External("user32","GetCursorPos",mpos#)
Case @&(2)<>0 : External("USER32","ScreenToClient",@&(2),mpos#)
Case Modus$="x1" : x%=long(mpos#,0)
Case Modus$="y1" : x%=long(mpos#,4)
Case Modus$="x2" : x%=IF(@&(2)<>0,WindowRect(@&(2),"Breite"),%maxx)-long(mpos#,0)
Case Modus$="y2" : x%=IF(@&(2)<>02,WindowRect(@&(2),"Höhe"),%maxy)-long(mpos#,4)
Dispose mpos#
ENDPROC
|
| | | XProfan X2Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 29.01.2013 ▲ |
| |
| | Julian Schmidt | iF (29.01.13)
je schätze dass cela quoi Du vouloir so pas funktioniert là Du einerseits une Dialog besoin (avec cela Transluzenz chez allen OS funktioniert) et andererseits vom air her un Static.
Stimmt, je muss Dialog prendre. Hat oui aussi Andreas ici geschrieben.[...] Funktioniert soweit avec dem Wegschneiden qui Titelleiste.
iF (29.01.13)
Den könntest mais ggf. sogar couper avec région.
ensuite devrait je mais alles so umprogrammieren, cela qui cadre ausßerhalb des Bildschirms liegen, cela on ne...aucune Loch entsteht. ou bien allez cela irgendwie anders?
Andreas Miethe (29.01.13)
si qui Fensterstil sur $F0 gesetzt ist, ensuite sollte es marcher, comment dessus déjà geschrieben.
Hab je autrefois déjà getestet et hat avec meinen entier dessus geposteten Voir le texte source avec den Windows comme Dialog pas funktioniert!
Andreas Miethe (29.01.13)
Allerdings fürchte je tu es là dans einer impasse. Es volonté so pas alle Elemente eingefangen bzw. angezeigt. j'ai z.B. un paire "Minianwendungen" am courir, qui volonté so pas angezeigt.
Avez- du avec cela cela mon la fenêtre pas toujours den Fokus bekommt, et deine Minianwendungen cet überlappen ou bien comment? KompilierenMarqueSéparationDef SetLayeredWindowAttributes(4) !"USER32","SetLayeredWindowAttributes"
def SetWindowRgn(3) !"USER32","SetWindowRgn"
def RectRgn(4) !"GDI32","CreateRectRgn"
Declare fenster&[], x&, posx&, posy&
WindowStyle $F0
Window %MaxX,%MaxY,0,0
Whileloop 2
fenster&[&loop]=Create("Dialog",%hwnd,"",%MaxX,%MaxY,0,0)'fenster&[1] - Schwarze Blende
SetTransparent(fenster&[&loop],IF(&loop=1,55,20))'fenster&[2] - Durchsichtiger Klickschutz
SetWindowPos fenster&[&loop]=0,0 - %MaxX, %MaxY;-1
setstyle fenster&[&loop],(getstyle(fenster&[&loop]) | 12582912) - 12582912
EndWhile
ShowCursor 0
WhileNot iskey(27)
Waitinput 10
posx&=CursorPos("X1")
posy&=CursorPos("Y1")
StartPaint fenster&[1]
CLS 0
EndPaint
CutRgnDLG(fenster&[1],RectRgn(0,posy&,posx&,posy&+1),RectRgn(posx&+1,posy&,%MaxX,posy&+1),RectRgn(posx&,0,posx&+1,posy&),RectRgn(posx&,posy&+1,posx&+1,%MaxY))
CutRgnDLG(fenster&[2],RectRgn(0, 0, posx&, posy&),RectRgn(posx&+1, 0, %MaxX, posy&),RectRgn(0, posy&+1, posx&, %MaxY),RectRgn(posx&+1, posy&+1, %MaxX, %MaxY))
Endwhile
end
Proc SetTransparent
Parameters Hwnd%, Perc%
External("USER32","SetWindowLongA",Hwnd%, -20, External("USER32","GetWindowLongA",Hwnd%,-20) | $80000)
SetLayeredWindowAttributes(Hwnd%, 0, (255 * Perc%) / 100, $2)
EndProc
Proc CutRgnDLG
Parameters hdl&
Declare region&,wRgn&
wRgn&=RectRgn(0,0,width(hdl&)+100,height(hdl&)+100)
whileloop 2,%PCount
region&=@&(&loop)
External("GDI32","CombineRgn",wRgn&,region&,wrgn&,3)
DeleteObject region&
EndWhile
SetWindowRgn(hdl&, wRgn&, 1)
Return wRgn&
EndProc
Proc WindowRect
Parameters hdl&,Modus$
Modus$=Lower$(Modus$)
Declare x%, b#
Dim b#,16
External("USER32", "GetWindowRect",hdl&,b#)
Case @&(3)<>0 : External("USER32","ScreenToClient",@&(3),b#) : External("USER32","ScreenToClient",@&(3),b#+8)
Case Modus$="breite" : x%=Long(b#,8)-Long(b#,0)
Case Modus$="höhe" : x%=Long(b#,12)-Long(b#,4)
Case Modus$="x1" : x%=Long(b#,0)
Case Modus$="y1" : x%=Long(b#,4)
Case Modus$="x2" : x%=Long(b#,8)
Case Modus$="y2" : x%=Long(b#,12)
Dispose b#
Return x%
EndProc
Proc CursorPos
Parameters Modus$
Modus$=Lower$(Modus$)
Declare x%, mpos#
Dim mpos#,8
External("user32","GetCursorPos",mpos#)
Case @&(2)<>0 : External("USER32","ScreenToClient",@&(2),mpos#)
Case Modus$="x1" : x%=long(mpos#,0)
Case Modus$="y1" : x%=long(mpos#,4)
Case Modus$="x2" : x%=IF(@&(2)<>0,WindowRect(@&(2),"Breite"),%maxx)-long(mpos#,0)
Case Modus$="y2" : x%=IF(@&(2)<>02,WindowRect(@&(2),"Höhe"),%maxy)-long(mpos#,4)
Dispose mpos#
ENDPROC
KompilierenMarqueSéparationDef SetLayeredWindowAttributes(4) !"User32","SetLayeredWindowAttributes"
def SetWindowRgn(3) !"User32","SetWindowRgn"
def RectRgn(4) !"GDI32","CreateRectRgn"
Windowstyle $F0
cls
Var dlg&=Créer("Dialog",%hwnd,»,0,0,%MaxX,%MaxY)
setstyle dlg&,(getstyle(dlg&) | 12582912) - 12582912
SetTransparent(dlg&,50)
Showwindow(dlg&,1)
CutRgnDLG(dlg&,RectRgn(0,0,0,0))
WhileNot iskey(27)
Endwhile
end
Proc SetTransparent
Paramètres Hwnd%, Perc%
Externe("User32","SetWindowLongA",Hwnd%, -20, Externe("User32","GetWindowLongA",Hwnd%,-20) | $80000)
SetLayeredWindowAttributes(Hwnd%, 0, (255 * Perc%) / 100, $2)
ENDPROC
Proc CutRgnDLG
Paramètres hdl&
Déclarer region&,wRgn&
wRgn&=RectRgn(0,0,width(hdl&)+100,height(hdl&)+100)
whileloop 2,%PCount
region&=@&(&loop)
Externe("GDI32","CombineRgn",wRgn&,region&,wrgn&,3)
DeleteObject region&
Endwhile
SetWindowRgn(hdl&, wRgn&, 1)
Retour wRgn&
ENDPROC
|
| | | | |
| | Andreas Miethe
| Julian Schmidt (29.01.13)
Avez- du avec cela cela mon la fenêtre pas toujours den Fokus bekommt, et deine Minianwendungen cet überlappen ou bien comment?
cela hat avec dem Concentrer rien trop 1faire. qui Minianwendungen volonté simple pas angezeigt et peut so aussi pas per Screenshot eingefangen volonté.
ici la fois 2 Bilder
original
Dein overlay
|
| | | XProfan X2Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 30.01.2013 ▲ |
| |
| | Julian Schmidt | hmmmm....ok Beim mir wurden vous erkannt. était mais seulement entier blöd im Vordergrund, weil Je l' Dialog pas sur Alway-On-Top gesetzt habe. quoi la hâte du là pour un OS. Werd je mir dans ner VM la fois anschauen.
Julian Schmidt (29.01.13)
iF (29.01.13) Den könntest mais ggf. sogar couper avec région.
ensuite devrait je mais alles so umprogrammieren, cela qui cadre ausßerhalb des Bildschirms liegen, cela ne...aucune Loch entsteht. ou bien allez cela irgendwie anders?
[OFFTOPIC]dernier Aktueller Voir le texte source siehe [...] [/OFFTOPIC] |
| | | | |
| | Andreas Miethe
| | | | XProfan X2Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 30.01.2013 ▲ |
| |
| | Julian Schmidt | Benutz je aussi, quoi pour une Version Home Premium, Ultimate? Liegt peut-être. daran cela du ne...aucune Areo aktiviert la hâte. va dans Systemsteuerung\représentation et Anpassung\Anpassung. quoi pour un (la base-)Design la hâte du eingestellt? |
| | | | |
| | Andreas Miethe
| Win7 32 / 64 Bit Home Premium.
ne...aucune Aero Pour optimale Leistung angepasst.
cela werde je aussi pas changement !
là muss sich déjà Dein Programme anpassen |
| | | XProfan X2Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 30.01.2013 ▲ |
| |
| | Julian Schmidt | Andreas Miethe (30.01.13)
qui Minianwendungen volonté simple pas angezeigt et peut so aussi pas per Screenshot eingefangen volonté.
Tricolore mir justement nochmal cela Problem angeschaut. mon Quellcode [...] scheint qui Minianwendungen wirklich pas trop erfassen. Zumindest solange cela Areo ausgeschaltet ist.
Mir fehlt justement qui zünde concept um cet Problem aus qui monde trop créer. qui einzige Possibilité qui mir einfällt, ist sur une autre technologie trop setzten. iF hatte en supplément oui aussi irgendwo quoi vorgestellt.... |
| | | | |
|
répondreOptions du sujet | 23.577 Views |
Themeninformationencet Thema hat 3 participant: |