Hi
Ich experimentiere gerade damit rum, informationen in Spielen anzeigen zu lassen. Z.B die Uhrzeit einzublenden oder den aktuellen Winamp Titel oder was auch immer.
Das Problem ist, bei mir flackert der Text immer rum. Gibt es eine Möglichkeit Text als oberstete "Schicht" über allen anderen Anwendungen anzeigen zu lassen ? Dem normalen DrawText() scheint da irgendwie die Puste auszugehen ^^
Textoverlay in anderen Anwendungen (Spielen) ?
Also die ganze Thematik ist nicht leicht. Der beste Weg von dem ich gehöhrt habe, ist einen DirectX oder OpenGL Hook zu entwickeln, je nach Spiel.
Wenn du ein brauchbaren Code entwickelt hast, bitte unbedingt hier im Forum posten. Ich bin net der einzige der auf so einen Code brennend interessiert ist.
Wenn du ein brauchbaren Code entwickelt hast, bitte unbedingt hier im Forum posten. Ich bin net der einzige der auf so einen Code brennend interessiert ist.

Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Kannst du denn mal posten, was du bis jetzt überhaupt gefunden hast? Würde mich interessieren!
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Hallo,
ich habe mich vor ein paar Monaten mit den Thema Overlay beschäftigt. Allerdings hatte ich damals das Problem, dass er den Overlay nicht inGame anzeigt. Sobald ich ein Spiel starte (bei den meisten Spielen so, eine ausnahme stellt Counter-Strike 1 da), kommt es mir so vor als ob er das Overlay zerstören würde. Leider wusste ich damals nicht genau an was es lag. Ich poste hier mal den Source vll. wird sich jemand dranmachen und den Code fixen
.
Gedacht war das Overlay wie gesagt zur Informationsausgabe in verschiedenen zukünftigen Programmen von mir wie dem kommenden PixPlayer oder für Dem0nZ. Dazu wollte ich das ganze in eine DLL Packen um es ein paar Leuten zu schicken die kein PB nutzen aber trotzdem interesse hätten.
Hier die 3 Codeteile:
ddovrl.pb
dderrr.pb
ddovrl_test.pb
Hab diesen Code damals von einem C++ Code übersetzt. In dem C++ Beispiel hat das Overlay allderings ohne Probleme funktioniert?!
Naja, viel Spaß mit
Lukas
ich habe mich vor ein paar Monaten mit den Thema Overlay beschäftigt. Allerdings hatte ich damals das Problem, dass er den Overlay nicht inGame anzeigt. Sobald ich ein Spiel starte (bei den meisten Spielen so, eine ausnahme stellt Counter-Strike 1 da), kommt es mir so vor als ob er das Overlay zerstören würde. Leider wusste ich damals nicht genau an was es lag. Ich poste hier mal den Source vll. wird sich jemand dranmachen und den Code fixen

Gedacht war das Overlay wie gesagt zur Informationsausgabe in verschiedenen zukünftigen Programmen von mir wie dem kommenden PixPlayer oder für Dem0nZ. Dazu wollte ich das ganze in eine DLL Packen um es ein paar Leuten zu schicken die kein PB nutzen aber trotzdem interesse hätten.
Hier die 3 Codeteile:
ddovrl.pb
Code: Alles auswählen
DataSection
IID_IDirectDraw7:
Data.l $15E65EC0
Data.w $3B9C, $11D2
Data.b $B9, $2F, $00, $60, $97, $97, $EA, $5B
EndDataSection
#DD_ROP_SPACE = 256/32
Structure DDCOLORKEY
dwColorSpaceLowValue.l
dwColorSpaceHighValue.l
EndStructure
Structure DDPIXELFORMAT
dwSize.l
dwFlags.l
dwFourCC.l
dwRGBBitCount.l
dwRBitMask.l
dwGBitMask.l
dwBBitMask.l
dwRGBAlphaBitMask.l
EndStructure
Structure DDSCAPS
dwCaps.l
EndStructure
Structure DDSCAPS2
dwCaps.l
dwCaps2.l
dwCaps3.l
dwCaps4.l
EndStructure
Structure DDSURFACEDESC2
dwSize.l
dwFlags.l
dwHeight.l
dwWidth.l
lPitch.l
dwBackBufferCount.l
dwRefreshRate.l
dwAlphaBitDepth.l
dwReserved.l
lpSurface.l
ddckCKDestOverlay.DDCOLORKEY
ddckCKDestBlt.DDCOLORKEY
ddckCKSrcOverlay.DDCOLORKEY
ddckCKSrcBlt.DDCOLORKEY
ddpfPixelFormat.DDPIXELFORMAT
ddsCaps.DDSCAPS2
dwTextureStage.l
EndStructure
Structure DDOVERLAYFX
dwSize.l
dwAlphaEdgeBlendBitDepth.l
dwAlphaEdgeBlend.l
dwReserved.l
dwAlphaDestConstBitDepth.l
StructureUnion
dwAlphaDestConst.l
lpDDSAlphaDest.IDirectDrawSurface7
EndStructureUnion
dwAlphaSrcConstBitDepth.l
StructureUnion
dwAlphaSrcConst.l
lpDDSAlphaSrc.IDirectDrawSurface7
EndStructureUnion
dckDestColorkey.DDCOLORKEY
dckSrcColorkey.DDCOLORKEY
dwDDFX.l
dwFlags.l
EndStructure
Structure DDCAPS
dwSize.l
dwCaps.l
dwCaps2.l
dwCKeyCaps.l
dwFXCaps.l
dwFXAlphaCaps.l
dwPalCaps.l
dwSVCaps.l
dwAlphaBltConstBitDepths.l
dwAlphaBltPixelBitDepths.l
dwAlphaBltSurfaceBitDepths.l
dwAlphaOverlayConstBitDepths.l
dwAlphaOverlayPixelBitDepths.l
dwAlphaOverlaySurfaceBitDepths.l
dwZBufferBitDepths.l
dwVidMemTotal.l
dwVidMemFree.l
dwMaxVisibleOverlays.l
dwCurrVisibleOverlays.l
dwNumFourCCCodes.l
dwAlignBoundarySrc.l
dwAlignSizeSrc.l
dwAlignBoundaryDest.l
dwAlignSizeDest.l
dwAlignStrideAlign.l
dwRops.l[#DD_ROP_SPACE]
ddsOldCaps.DDSCAPS
dwMinOverlayStretch.l
dwMaxOverlayStretch.l
dwMinLiveVideoStretch.l
dwMaxLiveVideoStretch.l
dwMinHwCodecStretch.l
dwMaxHwCodecStretch.l
dwReserved1.l
dwReserved2.l
dwReserved3.l
dwSVBCaps.l
dwSVBCKeyCaps.l
dwSVBFXCaps.l
dwSVBRops.l[#DD_ROP_SPACE]
dwVSBCaps.l
dwVSBCKeyCaps.l
dwVSBFXCaps.l
dwVSBRops.l[#DD_ROP_SPACE]
dwSSBCaps.l
dwSSBCKeyCaps.l
dwSSBFXCaps.l
dwSSBRops.l[#DD_ROP_SPACE]
dwMaxVideoPorts.l
dwCurrVideoPorts.l
dwSVBCaps2.l
dwNLVBCaps.l
dwNLVBCaps2.l
dwNLVBCKeyCaps.l
dwNLVBFXCaps.l
dwNLVBRops.l[#DD_ROP_SPACE]
ddsCaps.DDSCAPS2
EndStructure
#DD_OK = $00000000
#DDSCL_NORMAL = $00000008
#DDPF_FOURCC = $00000004
#DDPF_RGB = $00000040
#DDOVER_SHOW = $00004000
#DDLOCK_WAIT = $00000001
#DDFLIP_WAIT = $00000001
#DDSD_CAPS = $00000001
#DDSD_HEIGHT = $00000002
#DDSD_WIDTH = $00000004
#DDSD_BACKBUFFERCOUNT = $00000020
#DDSD_PIXELFORMAT = $00001000
#DDCAPS_OVERLAY = $00000800
#DDSCAPS_BACKBUFFER = $00000004
#DDSCAPS_COMPLEX = $00000008
#DDSCAPS_FLIP = $00000010
#DDSCAPS_OVERLAY = $00000080
#DDSCAPS_PRIMARYSURFACE = $00000200
#DDSCAPS_VIDEOMEMORY = $00004000
#DDCKEYCAPS_SRCOVERLAY = $00002000
#DDOVER_KEYSRCOVERRIDE = $00002000
#DDOVER_DDFX = $00080000
#DDERR_EXCLUSIVEMODEALREADYSET = $88760245
#DDERR_WRONGMODE = $8876024B
Global m_direct_draw.IDirectDraw7
Global m_direct_draw_error.l
Global m_direct_draw_error_count.l
Global m_caps.DDCAPS
Global m_primary_surface.IDirectDrawSurface7
Global m_overlay_surface.IDirectDrawSurface7
Global m_overlay_flags.l
Global m_overlay_back_surface.IDirectDrawSurface7
Global m_overlay_fx.DDOVERLAYFX
Global m_PixelFormat.l
Global ddsd.DDSURFACEDESC2
Global m_surfaces_lost.b
Global OVERLAY_WIDTH, OVERLAY_HEIGHT
OVERLAY_WIDTH = 512
OVERLAY_HEIGHT = 20
Procedure Overlay_CheckError(Value)
If Value = #DD_OK
m_direct_draw_error_count + 1
ProcedureReturn #DD_OK
Else
m_direct_draw_error_count + 1
m_direct_draw_error = Value
ProcedureReturn Value
EndIf
EndProcedure
ProcedureDLL Overlay_Init()
If OpenLibrary(0, "ddraw.dll")
If CallFunction(0, "DirectDrawCreateEx", 0, @m_direct_draw, ?IID_IDirectDraw7, 0) = #DD_OK ; Command: 1
m_caps\dwSize = SizeOf(DDCAPS)
If Overlay_CheckError(m_direct_draw\GetCaps(@m_caps, 0)) = #DD_OK ; Command: 2
ProcedureReturn RetVal = #True
EndIf
EndIf
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_SupportAviable()
num_visible_overlays.l = 0
If m_overlay_surface
num_visible_overlays = m_caps\dwCurrVisibleOverlays - 1
EndIf
If m_caps\dwMaxVisibleOverlays > num_visible_overlays And m_caps\dwCaps & #DDCAPS_OVERLAY
RetVal = #True
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_Init_Surfaces()
If Overlay_CheckError(m_direct_draw\SetCooperativeLevel(0, #DDSCL_NORMAL)) = #DD_OK ; Command: 3
ddsda.DDSURFACEDESC2
ddsda\dwSize = SizeOf(DDSURFACEDESC2)
ddsda\dwFlags = #DDSD_CAPS
ddsda\ddsCaps\dwCaps = #DDSCAPS_PRIMARYSURFACE
If Overlay_CheckError(m_direct_draw\CreateSurface(ddsda, @m_primary_surface, 0)) = #DD_OK ; Command: 4
ddsd\dwSize = SizeOf(DDSURFACEDESC2)
ddsd\dwFlags = #DDSD_CAPS | #DDSD_HEIGHT | #DDSD_WIDTH | #DDSD_BACKBUFFERCOUNT | #DDSD_PIXELFORMAT
ddsd\ddsCaps\dwCaps = #DDSCAPS_OVERLAY | #DDSCAPS_FLIP | #DDSCAPS_COMPLEX | #DDSCAPS_VIDEOMEMORY
ddsd\dwBackBufferCount = 1
ddsd\dwWidth = OVERLAY_WIDTH
ddsd\dwHeight = OVERLAY_HEIGHT
ddsd\ddpfPixelFormat\dwSize = SizeOf(DDPIXELFORMAT)
ddsd\ddpfPixelFormat\dwFlags = #DDPF_RGB
ddsd\ddpfPixelFormat\dwRGBBitCount = 32
ddsd\ddpfPixelFormat\dwRBitMask = $00FF0000
ddsd\ddpfPixelFormat\dwGBitMask = $0000FF00
ddsd\ddpfPixelFormat\dwBBitMask = $000000FF
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
If hr <> #DD_OK
ddsd\ddpfPixelFormat\dwRGBBitCount = 16
ddsd\ddpfPixelFormat\dwRBitMask = $F800
ddsd\ddpfPixelFormat\dwGBitMask = $07E0
ddsd\ddpfPixelFormat\dwBBitMask = $001F
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
m_PixelFormat = 1
EndIf
If hr <> #DD_OK
ddsd\ddpfPixelFormat\dwRGBBitCount = 0
ddsd\ddpfPixelFormat\dwRBitMask = 0
ddsd\ddpfPixelFormat\dwGBitMask = 0
ddsd\ddpfPixelFormat\dwBBitMask = 0
ddsd\ddpfPixelFormat\dwFlags = #DDPF_FOURCC
ddsd\ddpfPixelFormat\dwFourCC = PeekL(@"UYVY")
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
m_PixelFormat = 2
EndIf
If hr <> #DD_OK
ddsd\ddpfPixelFormat\dwRGBBitCount = 0
ddsd\ddpfPixelFormat\dwRBitMask = 0
ddsd\ddpfPixelFormat\dwGBitMask = 0
ddsd\ddpfPixelFormat\dwBBitMask = 0
ddsd\ddpfPixelFormat\dwFlags = #DDPF_FOURCC
ddsd\ddpfPixelFormat\dwFourCC = PeekL(@"YUY2")
hr = m_direct_draw\CreateSurface(ddsd, @m_overlay_surface, 0)
m_PixelFormat = 3
EndIf
If Overlay_CheckError(hr) = #DD_OK ; Command: 5
ddscaps.DDSCAPS2
ddscaps\dwCaps = #DDSCAPS_BACKBUFFER
If Overlay_CheckError(m_overlay_surface\GetAttachedSurface(ddscaps, @m_overlay_back_surface)) = #DD_OK ; Command: 6
RetVal = #True
EndIf
m_overlay_fx\dwSize = SizeOf(DDOVERLAYFX)
EndIf
EndIf
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_Clean()
m_primary_surface\Release()
m_overlay_surface\Release()
;m_direct_draw\Release()
m_surfaces_lost = #False
ProcedureReturn #True
EndProcedure
ProcedureDLL Overlay_Show(String.s)
hr = Overlay_CheckError(m_direct_draw\TestCooperativeLevel()) = #DD_OK
If hr <> #DD_OK
Select hr
Case #DDERR_EXCLUSIVEMODEALREADYSET
m_surfaces_lost = #True
Delay(1000)
ProcedureReturn #False
Case #DDERR_WRONGMODE
Overlay_Clean()
Overlay_Init_Surfaces()
Default
MessageRequester("", Hex(hr))
EndSelect
Else
If m_surfaces_lost
m_direct_draw\RestoreAllSurfaces()
m_surfaces_lost = #False
EndIf
hdc = CreateDC_("DISPLAY", 0, 0, 0)
mdc = CreateCompatibleDC_(0)
bdc = CreateCompatibleBitmap_(hdc, OVERLAY_WIDTH, OVERLAY_HEIGHT)
SelectObject_(mdc, bdc)
font.l = CreateFont_(13, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, "Tahoma")
SetBkMode_(mdc, #True)
SelectObject_(mdc, font)
Rectangle_(mdc, 0, 0, OVERLAY_WIDTH, OVERLAY_HEIGHT)
SetTextColor_(mdc, RGB(150, 150, 150))
TextOut_(mdc, 6, 3, @String, Len(String))
SetTextColor_(mdc, RGB(255, 0, 0))
TextOut_(mdc, 5, 2, @String, Len(String))
DeleteObject_(font)
If m_PixelFormat = 0 Or m_PixelFormat = 1
If Overlay_CheckError(m_overlay_back_surface\GetDC(@dc)) = #DD_OK ; Command: 7
BitBlt_(dc, 0, 0, OVERLAY_WIDTH, OVERLAY_HEIGHT, mdc, 0, 0, #SRCCOPY)
Overlay_CheckError(m_overlay_back_surface\ReleaseDC(dc)) ; Command: 8
EndIf
Else
If Overlay_CheckError(m_overlay_back_surface\Lock(0, ddsd, #DDLOCK_WAIT, 0)) = #DD_OK ; Command: 7
Addr = ddsd\lpSurface
Pitch = ddsd\lPitch
For y = 0 To OVERLAY_HEIGHT - 1
For x = 0 To OVERLAY_WIDTH - 1 Step 2
C1 = GetPixel_(mdc, x, y)
C2 = GetPixel_(mdc, x + 1, y)
Y0 = (Red(C1) * 29 + Green(C1) * 57 + Blue(C1) * 14) / 100
U0 = 128 + (- Red(C1) * 14 - Green(C1) * 29 + Blue(C1) * 43) / 100
V0 = 128 + (Red(C1) * 36 - Green(C1) * 29 - Blue(C1) * 07) / 100
Y1 = (Red(C2) * 29 + Green(C2) * 57 + Blue(C2) * 14) / 100
U1 = 128 + (- Red(C2) * 14 - Green(C2) * 29 + Blue(C2) * 43) / 100
V1 = 128 + (Red(C2) * 36 - Green(C2) * 29 - Blue(C2) *07) / 100
Select m_PixelFormat
Case 2
PokeL(Addr, Y1 << 24 + ((V0 + V1) / 2) << 16 + Y0 << 8 + (U0 + U1) / 2) : Addr + 4
Case 3
PokeL(Addr, ((V0 + V1) / 2) << 24 + Y1 << 16 + ((U0 + U1) / 2) << 8 + Y0) : Addr + 4
EndSelect
Next
Addr + (Pitch - OVERLAY_WIDTH * 2)
Next
Overlay_CheckError(m_overlay_back_surface\UnLock(0)) ; Command: 8
EndIf
EndIf
If Overlay_CheckError(m_overlay_surface\Flip(0, #DDFLIP_WAIT)) = #DD_OK ; Command: 9
dest_rect.RECT
dest_rect\left = 10
dest_rect\top = 10
dest_rect\right = 10 + OVERLAY_WIDTH
dest_rect\bottom = 10 + OVERLAY_HEIGHT
m_overlay_flags = #DDOVER_SHOW
If m_caps\dwCKeyCaps & #DDCKEYCAPS_SRCOVERLAY
m_overlay_fx\dckDestColorkey\dwColorSpaceLowValue = 0
m_overlay_fx\dckDestColorkey\dwColorSpaceHighValue = 0
m_overlay_flags = m_overlay_flags | #DDOVER_DDFX | #DDOVER_KEYSRCOVERRIDE
EndIf
If Overlay_CheckError(m_overlay_surface\UpdateOverlay(0, m_primary_surface, dest_rect, m_overlay_flags, m_overlay_fx)) = #DD_OK ; Command: 10
RetVal = #True
EndIf
EndIf
EndIf
ProcedureReturn RetVal
EndProcedure
ProcedureDLL Overlay_GetLastError()
ProcedureReturn m_direct_draw_error
EndProcedure
ProcedureDLL Overlay_GetErrorCount()
ProcedureReturn m_direct_draw_error_count
EndProcedure
Code: Alles auswählen
#DD_OK = $00000000
#DDERR_ALREADYINITIALIZED = $88760005
#DDERR_BLTFASTCANTCLIP = $8876023E
#DDERR_CANNOTATTACHSURFACE = $8876000A
#DDERR_CANNOTDETACHSURFACE = $88760014
#DDERR_CANTCREATEDC = $88760249
#DDERR_CANTDUPLICATE = $88760247
#DDERR_CANTLOCKSURFACE = $887601B3
#DDERR_CANTPAGELOCK = $88760280
#DDERR_CANTPAGEUNLOCK = $88760294
#DDERR_CLIPPERISUSINGHWND = $88760237
#DDERR_COLORKEYNOTSET = $88760190
#DDERR_CURRENTLYNOTAVAIL = $88760028
#DDERR_DCALREADYCREATED = $8876026C
#DDERR_DEVICEDOESNTOWNSURFACE = $887602BB
#DDERR_DIRECTDRAWALREADYCREATED = $88760232
#DDERR_EXCEPTION = $88760037
#DDERR_EXCLUSIVEMODEALREADYSET = $88760245
#DDERR_EXPIRED = $887602B3
#DDERR_GENERIC = $80004005
#DDERR_HEIGHTALIGN = $8876005A
#DDERR_HWNDALREADYSET = $8876023B
#DDERR_HWNDALREADYSET = $8876023B
#DDERR_HWNDSUBCLASSED = $8876023A
#DDERR_IMPLICITLYCREATED = $8876024C
#DDERR_INCOMPATIBLEPRIMARY = $8876005F
#DDERR_INVALIDCAPS = $88760064
#DDERR_INVALIDCLIPLIST = $8876006E
#DDERR_INVALIDDIRECTDRAWGUID = $88760231
#DDERR_INVALIDMODE = $88760078
#DDERR_INVALIDOBJECT = $88760082
#DDERR_INVALIDPARAMS = $00000005
#DDERR_INVALIDPIXELFORMAT = $88760091
#DDERR_INVALIDPOSITION = $88760243
#DDERR_INVALIDRECT = $88760096
#DDERR_INVALIDSTREAM = $88760209
#DDERR_INVALIDSURFACETYPE = $88760250
#DDERR_LOCKEDSURFACES = $887600A0
#DDERR_MOREDATA = $887602B2
#DDERR_NO3D = $887600AA
#DDERR_NOALPHAHW = $887600B4
#DDERR_NOBLTHW = $8876023F
#DDERR_NOCLIPLIST = $887600CD
#DDERR_NOCLIPPERATTACHED = $88760238
#DDERR_NOCOLORCONVHW = $887600D2
#DDERR_NOCOLORKEY = $887600D7
#DDERR_NOCOLORKEYHW = $887600DC
#DDERR_NOCOOPERATIVELEVELSET = $887600D4
#DDERR_NODC = $8876024A
#DDERR_NODDROPSHW = $88760240
#DDERR_NODIRECTDRAWHW = $88760233
#DDERR_NODIRECTDRAWSUPPORT = $887600DE
#DDERR_NOEMULATION = $88760235
#DDERR_NOEXCLUSIVEMODE = $887600E1
#DDERR_NOFLIPHW = $887600E6
#DDERR_NOFOCUSWINDOW = $8876025A
#DDERR_NOGDI = $887600F0
#DDERR_NOHWND = $88760239
#DDERR_NOMIPMAPHW = $8876024F
#DDERR_NOMIRRORHW = $887600FA
#DDERR_NONONLOCALVIDMEM = $88760276
#DDERR_NOOPTIMIZEHW = $88760258
#DDERR_NOOVERLAYDEST = $88760242
#DDERR_NOOVERLAYHW = $88760104
#DDERR_NOPALETTEATTACHED = $8876023C
#DDERR_NOPALETTEHW = $8876023D
#DDERR_NORASTEROPHW = $88760118
#DDERR_NOROTATIONHW = $88760122
#DDERR_NOSTEREOHARDWARE = $887600B5
#DDERR_NOSTRETCHHW = $88760136
#DDERR_NOSURFACELEFT = $887600B6
#DDERR_NOT4BITCOLOR = $8876013C
#DDERR_NOT4BITCOLORINDEX = $8876013D
#DDERR_NOT8BITCOLOR = $88760140
#DDERR_NOTAOVERLAYSURFACE = $88760244
#DDERR_NOTEXTUREHW = $8876014A
#DDERR_NOTFLIPPABLE = $88760246
#DDERR_NOTFOUND = $887600FF
#DDERR_NOTINITIALIZED = $800401F0
#DDERR_NOTLOADED = $88760259
#DDERR_NOTLOCKED = $88760248
#DDERR_NOTPAGELOCKED = $887602A8
#DDERR_NOTPALETTIZED = $8876024D
#DDERR_NOVSYNCHW = $8876014F
#DDERR_NOZBUFFERHW = $88760154
#DDERR_NOZOVERLAYHW = $8876015E
#DDERR_OUTOFCAPS = $88760168
#DDERR_OUTOFMEMORY = $00000007
#DDERR_OUTOFVIDEOMEMORY = $8876017C
#DDERR_OVERLAPPINGRECTS = $8876010E
#DDERR_OVERLAYCANTCLIP = $8876017E
#DDERR_OVERLAYCOLORKEYONLYONEACTIVE = $88760180
#DDERR_OVERLAYNOTVISIBLE = $88760241
#DDERR_PALETTEBUSY = $88760183
#DDERR_PRIMARYSURFACEALREADYEXISTS = $88760234
#DDERR_REGIONTOOSMALL = $88760236
#DDERR_SURFACEALREADYATTACHED = $8876019A
#DDERR_SURFACEALREADYDEPENDENT = $887601A4
#DDERR_SURFACEBUSY = $887601AE
#DDERR_SURFACEISOBSCURED = $887601B8
#DDERR_SURFACELOST = $887601C2
#DDERR_SURFACENOTATTACHED = $887601CC
#DDERR_TOOBIGHEIGHT = $887601D6
#DDERR_TOOBIGSIZE = $887601E0
#DDERR_TOOBIGWIDTH = $887601EA
#DDERR_UNSUPPORTED = $80004001
#DDERR_UNSUPPORTEDFORMAT = $887601FE
#DDERR_UNSUPPORTEDMASK = $88760208
#DDERR_UNSUPPORTEDMODE = $8876024E
#DDERR_VERTICALBLANKINPROGRESS = $88760219
#DDERR_VIDEONOTACTIVE = $887602B7
#DDERR_WASSTILLDRAWING = $8876021C
#DDERR_WRONGMODE = $8876024B
#DDERR_XALIGN = $88760230
Procedure DDErrC(Value)
If Value <> #DD_OK
Select Value
Case #DDERR_ALREADYINITIALIZED : RetErr$ = "DDERR_ALREADYINITIALIZED (0x" + Hex(#DDERR_ALREADYINITIALIZED) + ")"
Case #DDERR_BLTFASTCANTCLIP : RetErr$ = "DDERR_BLTFASTCANTCLIP (0x" + Hex(#DDERR_BLTFASTCANTCLIP) + ")"
Case #DDERR_CANNOTATTACHSURFACE : RetErr$ = "DDERR_CANNOTATTACHSURFACE (0x" + Hex(#DDERR_CANNOTATTACHSURFACE) + ")"
Case #DDERR_CANNOTDETACHSURFACE : RetErr$ = "DDERR_CANNOTDETACHSURFACE (0x" + Hex(#DDERR_CANNOTDETACHSURFACE) + ")"
Case #DDERR_CANTCREATEDC : RetErr$ = "DDERR_CANTCREATEDC (0x" + Hex(#DDERR_CANTCREATEDC) + ")"
Case #DDERR_CANTDUPLICATE : RetErr$ = "DDERR_CANTDUPLICATE (0x" + Hex(#DDERR_CANTDUPLICATE) + ")"
Case #DDERR_CANTLOCKSURFACE : RetErr$ = "DDERR_CANTLOCKSURFACE (0x" + Hex(#DDERR_CANTLOCKSURFACE) + ")"
Case #DDERR_CANTPAGELOCK : RetErr$ = "DDERR_CANTPAGELOCK (0x" + Hex(#DDERR_CANTPAGELOCK) + ")"
Case #DDERR_CANTPAGEUNLOCK : RetErr$ = "DDERR_CANTPAGEUNLOCK (0x" + Hex(#DDERR_CANTPAGEUNLOCK) + ")"
Case #DDERR_CLIPPERISUSINGHWND : RetErr$ = "DDERR_CLIPPERISUSINGHWND (0x" + Hex(#DDERR_CLIPPERISUSINGHWND) + ")"
Case #DDERR_COLORKEYNOTSET : RetErr$ = "DDERR_COLORKEYNOTSET (0x" + Hex(#DDERR_COLORKEYNOTSET) + ")"
Case #DDERR_CURRENTLYNOTAVAIL : RetErr$ = "DDERR_CURRENTLYNOTAVAIL (0x" + Hex(#DDERR_CURRENTLYNOTAVAIL) + ")"
Case #DDERR_DCALREADYCREATED : RetErr$ = "DDERR_DCALREADYCREATED (0x" + Hex(#DDERR_DCALREADYCREATED) + ")"
Case #DDERR_DEVICEDOESNTOWNSURFACE : RetErr$ = "DDERR_DEVICEDOESNTOWNSURFACE (0x" + Hex(#DDERR_DEVICEDOESNTOWNSURFACE) + ")"
Case #DDERR_DIRECTDRAWALREADYCREATED : RetErr$ = "DDERR_DIRECTDRAWALREADYCREATED (0x" + Hex(#DDERR_DIRECTDRAWALREADYCREATED) + ")"
Case #DDERR_EXCEPTION : RetErr$ = "DDERR_EXCEPTION (0x" + Hex(#DDERR_EXCEPTION) + ")"
Case #DDERR_EXCLUSIVEMODEALREADYSET : RetErr$ = "DDERR_EXCLUSIVEMODEALREADYSET (0x" + Hex(#DDERR_EXCLUSIVEMODEALREADYSET) + ")"
Case #DDERR_EXPIRED : RetErr$ = "DDERR_EXPIRED (0x" + Hex(#DDERR_EXPIRED) + ")"
Case #DDERR_GENERIC : RetErr$ = "DDERR_GENERIC (0x" + Hex(#DDERR_GENERIC) + ")"
Case #DDERR_HEIGHTALIGN : RetErr$ = "DDERR_HEIGHTALIGN (0x" + Hex(#DDERR_HEIGHTALIGN) + ")"
Case #DDERR_HWNDALREADYSET : RetErr$ = "DDERR_HWNDALREADYSET (0x" + Hex(#DDERR_HWNDALREADYSET) + ")"
Case #DDERR_HWNDALREADYSET : RetErr$ = "DDERR_HWNDALREADYSET (0x" + Hex(#DDERR_HWNDALREADYSET) + ")"
Case #DDERR_HWNDSUBCLASSED : RetErr$ = "DDERR_HWNDSUBCLASSED (0x" + Hex(#DDERR_HWNDSUBCLASSED) + ")"
Case #DDERR_IMPLICITLYCREATED : RetErr$ = "DDERR_IMPLICITLYCREATED (0x" + Hex(#DDERR_IMPLICITLYCREATED) + ")"
Case #DDERR_INCOMPATIBLEPRIMARY : RetErr$ = "DDERR_INCOMPATIBLEPRIMARY (0x" + Hex(#DDERR_INCOMPATIBLEPRIMARY) + ")"
Case #DDERR_INVALIDCAPS : RetErr$ = "DDERR_INVALIDCAPS (0x" + Hex(#DDERR_INVALIDCAPS) + ")"
Case #DDERR_INVALIDCLIPLIST : RetErr$ = "DDERR_INVALIDCLIPLIST (0x" + Hex(#DDERR_INVALIDCLIPLIST) + ")"
Case #DDERR_INVALIDDIRECTDRAWGUID : RetErr$ = "DDERR_INVALIDDIRECTDRAWGUID (0x" + Hex(#DDERR_INVALIDDIRECTDRAWGUID) + ")"
Case #DDERR_INVALIDMODE : RetErr$ = "DDERR_INVALIDMODE (0x" + Hex(#DDERR_INVALIDMODE) + ")"
Case #DDERR_INVALIDOBJECT : RetErr$ = "DDERR_INVALIDOBJECT (0x" + Hex(#DDERR_INVALIDOBJECT) + ")"
Case #DDERR_INVALIDPARAMS : RetErr$ = "DDERR_INVALIDPARAMS (0x" + Hex(#DDERR_INVALIDPARAMS) + ")"
Case #DDERR_INVALIDPIXELFORMAT : RetErr$ = "DDERR_INVALIDPIXELFORMAT (0x" + Hex(#DDERR_INVALIDPIXELFORMAT) + ")"
Case #DDERR_INVALIDPOSITION : RetErr$ = "DDERR_INVALIDPOSITION (0x" + Hex(#DDERR_INVALIDPOSITION) + ")"
Case #DDERR_INVALIDRECT : RetErr$ = "DDERR_INVALIDRECT (0x" + Hex(#DDERR_INVALIDRECT) + ")"
Case #DDERR_INVALIDSTREAM : RetErr$ = "DDERR_INVALIDSTREAM (0x" + Hex(#DDERR_INVALIDSTREAM) + ")"
Case #DDERR_INVALIDSURFACETYPE : RetErr$ = "DDERR_INVALIDSURFACETYPE (0x" + Hex(#DDERR_INVALIDSURFACETYPE) + ")"
Case #DDERR_LOCKEDSURFACES : RetErr$ = "DDERR_LOCKEDSURFACES (0x" + Hex(#DDERR_LOCKEDSURFACES) + ")"
Case #DDERR_MOREDATA : RetErr$ = "DDERR_MOREDATA (0x" + Hex(#DDERR_MOREDATA) + ")"
Case #DDERR_NO3D : RetErr$ = "DDERR_NO3D (0x" + Hex(#DDERR_NO3D) + ")"
Case #DDERR_NOALPHAHW : RetErr$ = "DDERR_NOALPHAHW (0x" + Hex(#DDERR_NOALPHAHW) + ")"
Case #DDERR_NOBLTHW : RetErr$ = "DDERR_NOBLTHW (0x" + Hex(#DDERR_NOBLTHW) + ")"
Case #DDERR_NOCLIPLIST : RetErr$ = "DDERR_NOCLIPLIST (0x" + Hex(#DDERR_NOCLIPLIST) + ")"
Case #DDERR_NOCLIPPERATTACHED : RetErr$ = "DDERR_NOCLIPPERATTACHED (0x" + Hex(#DDERR_NOCLIPPERATTACHED) + ")"
Case #DDERR_NOCOLORCONVHW : RetErr$ = "DDERR_NOCOLORCONVHW (0x" + Hex(#DDERR_NOCOLORCONVHW) + ")"
Case #DDERR_NOCOLORKEY : RetErr$ = "DDERR_NOCOLORKEY (0x" + Hex(#DDERR_NOCOLORKEY) + ")"
Case #DDERR_NOCOLORKEYHW : RetErr$ = "DDERR_NOCOLORKEYHW (0x" + Hex(#DDERR_NOCOLORKEYHW) + ")"
Case #DDERR_NOCOOPERATIVELEVELSET : RetErr$ = "DDERR_NOCOOPERATIVELEVELSET (0x" + Hex(#DDERR_NOCOOPERATIVELEVELSET) + ")"
Case #DDERR_NODC : RetErr$ = "DDERR_NODC (0x" + Hex(#DDERR_NODC) + ")"
Case #DDERR_NODDROPSHW : RetErr$ = "DDERR_NODDROPSHW (0x" + Hex(#DDERR_NODDROPSHW) + ")"
Case #DDERR_NODIRECTDRAWHW : RetErr$ = "DDERR_NODIRECTDRAWHW (0x" + Hex(#DDERR_NODIRECTDRAWHW) + ")"
Case #DDERR_NODIRECTDRAWSUPPORT : RetErr$ = "DDERR_NODIRECTDRAWSUPPORT (0x" + Hex(#DDERR_NODIRECTDRAWSUPPORT) + ")"
Case #DDERR_NOEMULATION : RetErr$ = "DDERR_NOEMULATION (0x" + Hex(#DDERR_NOEMULATION) + ")"
Case #DDERR_NOEXCLUSIVEMODE : RetErr$ = "DDERR_NOEXCLUSIVEMODE (0x" + Hex(#DDERR_NOEXCLUSIVEMODE) + ")"
Case #DDERR_NOFLIPHW : RetErr$ = "DDERR_NOFLIPHW (0x" + Hex(#DDERR_NOFLIPHW) + ")"
Case #DDERR_NOFOCUSWINDOW : RetErr$ = "DDERR_NOFOCUSWINDOW (0x" + Hex(#DDERR_NOFOCUSWINDOW) + ")"
Case #DDERR_NOGDI : RetErr$ = "DDERR_NOGDI (0x" + Hex(#DDERR_NOGDI) + ")"
Case #DDERR_NOHWND : RetErr$ = "DDERR_NOHWND (0x" + Hex(#DDERR_NOHWND) + ")"
Case #DDERR_NOMIPMAPHW : RetErr$ = "DDERR_NOMIPMAPHW (0x" + Hex(#DDERR_NOMIPMAPHW) + ")"
Case #DDERR_NOMIRRORHW : RetErr$ = "DDERR_NOMIRRORHW (0x" + Hex(#DDERR_NOMIRRORHW) + ")"
Case #DDERR_NONONLOCALVIDMEM : RetErr$ = "DDERR_NONONLOCALVIDMEM (0x" + Hex(#DDERR_NONONLOCALVIDMEM) + ")"
Case #DDERR_NOOPTIMIZEHW : RetErr$ = "DDERR_NOOPTIMIZEHW (0x" + Hex(#DDERR_NOOPTIMIZEHW) + ")"
Case #DDERR_NOOVERLAYDEST : RetErr$ = "DDERR_NOOVERLAYDEST (0x" + Hex(#DDERR_NOOVERLAYDEST) + ")"
Case #DDERR_NOOVERLAYHW : RetErr$ = "DDERR_NOOVERLAYHW (0x" + Hex(#DDERR_NOOVERLAYHW) + ")"
Case #DDERR_NOPALETTEATTACHED : RetErr$ = "DDERR_NOPALETTEATTACHED (0x" + Hex(#DDERR_NOPALETTEATTACHED) + ")"
Case #DDERR_NOPALETTEHW : RetErr$ = "DDERR_NOPALETTEHW (0x" + Hex(#DDERR_NOPALETTEHW) + ")"
Case #DDERR_NORASTEROPHW : RetErr$ = "DDERR_NORASTEROPHW (0x" + Hex(#DDERR_NORASTEROPHW) + ")"
Case #DDERR_NOROTATIONHW : RetErr$ = "DDERR_NOROTATIONHW (0x" + Hex(#DDERR_NOROTATIONHW) + ")"
Case #DDERR_NOSTEREOHARDWARE : RetErr$ = "DDERR_NOSTEREOHARDWARE (0x" + Hex(#DDERR_NOSTEREOHARDWARE) + ")"
Case #DDERR_NOSTRETCHHW : RetErr$ = "DDERR_NOSTRETCHHW (0x" + Hex(#DDERR_NOSTRETCHHW) + ")"
Case #DDERR_NOSURFACELEFT : RetErr$ = "DDERR_NOSURFACELEFT (0x" + Hex(#DDERR_NOSURFACELEFT) + ")"
Case #DDERR_NOT4BITCOLOR : RetErr$ = "DDERR_NOT4BITCOLOR (0x" + Hex(#DDERR_NOT4BITCOLOR) + ")"
Case #DDERR_NOT4BITCOLORINDEX : RetErr$ = "DDERR_NOT4BITCOLORINDEX (0x" + Hex(#DDERR_NOT4BITCOLORINDEX) + ")"
Case #DDERR_NOT8BITCOLOR : RetErr$ = "DDERR_NOT8BITCOLOR (0x" + Hex(#DDERR_NOT8BITCOLOR) + ")"
Case #DDERR_NOTAOVERLAYSURFACE : RetErr$ = "DDERR_NOTAOVERLAYSURFACE (0x" + Hex(#DDERR_NOTAOVERLAYSURFACE) + ")"
Case #DDERR_NOTEXTUREHW : RetErr$ = "DDERR_NOTEXTUREHW (0x" + Hex(#DDERR_NOTEXTUREHW) + ")"
Case #DDERR_NOTFLIPPABLE : RetErr$ = "DDERR_NOTFLIPPABLE (0x" + Hex(#DDERR_NOTFLIPPABLE) + ")"
Case #DDERR_NOTFOUND : RetErr$ = "DDERR_NOTFOUND (0x" + Hex(#DDERR_NOTFOUND) + ")"
Case #DDERR_NOTINITIALIZED : RetErr$ = "DDERR_NOTINITIALIZED (0x" + Hex(#DDERR_NOTINITIALIZED) + ")"
Case #DDERR_NOTLOADED : RetErr$ = "DDERR_NOTLOADED (0x" + Hex(#DDERR_NOTLOADED) + ")"
Case #DDERR_NOTLOCKED : RetErr$ = "DDERR_NOTLOCKED (0x" + Hex(#DDERR_NOTLOCKED) + ")"
Case #DDERR_NOTPAGELOCKED : RetErr$ = "DDERR_NOTPAGELOCKED (0x" + Hex(#DDERR_NOTPAGELOCKED) + ")"
Case #DDERR_NOTPALETTIZED : RetErr$ = "DDERR_NOTPALETTIZED (0x" + Hex(#DDERR_NOTPALETTIZED) + ")"
Case #DDERR_NOVSYNCHW : RetErr$ = "DDERR_NOVSYNCHW (0x" + Hex(#DDERR_NOVSYNCHW) + ")"
Case #DDERR_NOZBUFFERHW : RetErr$ = "DDERR_NOZBUFFERHW (0x" + Hex(#DDERR_NOZBUFFERHW) + ")"
Case #DDERR_NOZOVERLAYHW : RetErr$ = "DDERR_NOZOVERLAYHW (0x" + Hex(#DDERR_NOZOVERLAYHW) + ")"
Case #DDERR_OUTOFCAPS : RetErr$ = "DDERR_OUTOFCAPS (0x" + Hex(#DDERR_OUTOFCAPS) + ")"
Case #DDERR_OUTOFMEMORY : RetErr$ = "DDERR_OUTOFMEMORY (0x" + Hex(#DDERR_OUTOFMEMORY) + ")"
Case #DDERR_OUTOFVIDEOMEMORY : RetErr$ = "DDERR_OUTOFVIDEOMEMORY (0x" + Hex(#DDERR_OUTOFVIDEOMEMORY) + ")"
Case #DDERR_OVERLAPPINGRECTS : RetErr$ = "DDERR_OVERLAPPINGRECTS (0x" + Hex(#DDERR_OVERLAPPINGRECTS) + ")"
Case #DDERR_OVERLAYCANTCLIP : RetErr$ = "DDERR_OVERLAYCANTCLIP (0x" + Hex(#DDERR_OVERLAYCANTCLIP) + ")"
Case #DDERR_OVERLAYCOLORKEYONLYONEACTIVE : RetErr$ = "DDERR_OVERLAYCOLORKEYONLYONEACTIVE (0x" + Hex(#DDERR_OVERLAYCOLORKEYONLYONEACTIVE) + ")"
Case #DDERR_OVERLAYNOTVISIBLE : RetErr$ = "DDERR_OVERLAYNOTVISIBLE (0x" + Hex(#DDERR_OVERLAYNOTVISIBLE) + ")"
Case #DDERR_PALETTEBUSY : RetErr$ = "DDERR_PALETTEBUSY (0x" + Hex(#DDERR_PALETTEBUSY) + ")"
Case #DDERR_PRIMARYSURFACEALREADYEXISTS : RetErr$ = "DDERR_PRIMARYSURFACEALREADYEXISTS (0x" + Hex(#DDERR_PRIMARYSURFACEALREADYEXISTS) + ")"
Case #DDERR_REGIONTOOSMALL : RetErr$ = "DDERR_REGIONTOOSMALL (0x" + Hex(#DDERR_REGIONTOOSMALL) + ")"
Case #DDERR_SURFACEALREADYATTACHED : RetErr$ = "DDERR_SURFACEALREADYATTACHED (0x" + Hex(#DDERR_SURFACEALREADYATTACHED) + ")"
Case #DDERR_SURFACEALREADYDEPENDENT : RetErr$ = "DDERR_SURFACEALREADYDEPENDENT (0x" + Hex(#DDERR_SURFACEALREADYDEPENDENT) + ")"
Case #DDERR_SURFACEBUSY : RetErr$ = "DDERR_SURFACEBUSY (0x" + Hex(#DDERR_SURFACEBUSY) + ")"
Case #DDERR_SURFACEISOBSCURED : RetErr$ = "DDERR_SURFACEISOBSCURED (0x" + Hex(#DDERR_SURFACEISOBSCURED) + ")"
Case #DDERR_SURFACELOST : RetErr$ = "DDERR_SURFACELOST (0x" + Hex(#DDERR_SURFACELOST) + ")"
Case #DDERR_SURFACENOTATTACHED : RetErr$ = "DDERR_SURFACENOTATTACHED (0x" + Hex(#DDERR_SURFACENOTATTACHED) + ")"
Case #DDERR_TOOBIGHEIGHT : RetErr$ = "DDERR_TOOBIGHEIGHT (0x" + Hex(#DDERR_TOOBIGHEIGHT) + ")"
Case #DDERR_TOOBIGSIZE : RetErr$ = "DDERR_TOOBIGSIZE (0x" + Hex(#DDERR_TOOBIGSIZE) + ")"
Case #DDERR_TOOBIGWIDTH : RetErr$ = "DDERR_TOOBIGWIDTH (0x" + Hex(#DDERR_TOOBIGWIDTH) + ")"
Case #DDERR_UNSUPPORTED : RetErr$ = "DDERR_UNSUPPORTED (0x" + Hex(#DDERR_UNSUPPORTED) + ")"
Case #DDERR_UNSUPPORTEDFORMAT : RetErr$ = "DDERR_UNSUPPORTEDFORMAT (0x" + Hex(#DDERR_UNSUPPORTEDFORMAT) + ")"
Case #DDERR_UNSUPPORTEDMASK : RetErr$ = "DDERR_UNSUPPORTEDMASK (0x" + Hex(#DDERR_UNSUPPORTEDMASK) + ")"
Case #DDERR_UNSUPPORTEDMODE : RetErr$ = "DDERR_UNSUPPORTEDMODE (0x" + Hex(#DDERR_UNSUPPORTEDMODE) + ")"
Case #DDERR_VERTICALBLANKINPROGRESS : RetErr$ = "DDERR_VERTICALBLANKINPROGRESS (0x" + Hex(#DDERR_VERTICALBLANKINPROGRESS) + ")"
Case #DDERR_VIDEONOTACTIVE : RetErr$ = "DDERR_VIDEONOTACTIVE (0x" + Hex(#DDERR_VIDEONOTACTIVE) + ")"
Case #DDERR_WASSTILLDRAWING : RetErr$ = "DDERR_WASSTILLDRAWING (0x" + Hex(#DDERR_WASSTILLDRAWING) + ")"
Case #DDERR_WRONGMODE : RetErr$ = "DDERR_WRONGMODE (0x" + Hex(#DDERR_WRONGMODE) + ")"
Case #DDERR_XALIGN : RetErr$ = "DDERR_XALIGN (0x" + Hex(#DDERR_XALIGN) + ")"
EndSelect
If RetErr$ = ""
MessageRequester("Error", "Error: 0x" + Hex(Value))
Else
MessageRequester("Error", RetErr$)
EndIf
EndIf
EndProcedure
Code: Alles auswählen
XIncludeFile "dderr.pb"
;MessageRequester("Lukaso's DirectDraw Overlay Test", "10-Seconds-Overlay-Example")
If OpenLibrary(0, "ddovrl.dll")
If CallFunction(0, "Overlay_Init")
Repeat
Delay(1000)
If CallFunction(0, "Overlay_SupportAviable")
If CallFunction(0, "Overlay_Init_Surfaces")
If CallFunction(0, "Overlay_Show", "Lukaso's DirectDraw Overlay Test - nVidia Sucks")
Delay(1000)
If CallFunction(0, "Overlay_Clean")
;End
EndIf
EndIf
EndIf
EndIf
ForEver
EndIf
RetVal = CallFunction(0, "Overlay_GetLastError")
DDErrC(RetVal)
RetVal = CallFunction(0, "Overlay_GetErrorCount")
MessageRequester("Error", "DirectDraw Command: " + Str(RetVal))
CloseLibrary(0)
EndIf
End
Naja, viel Spaß mit

Lukas
Nextgen Guild Wars Fanseite: Guild Wars Tactics (Pseudo-Admin + Developer)
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor
"Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht." - Unbekannter Autor