desktop bild
Übersicht

onkelz89Betreff: desktop bild |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
gibt es einen befehl oder eine möglichkeit den desktophintergrund kurz vor programmstart (beim doppelklick) als pic ins programm zu hohlen? mfg onkelz |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm, mit B3D wohl überhaupt nicht,
Bei BP könntest du auf den Desktop-Buffer schalten, und ihn speichern, aber direkt an das Bild kommse so nicht. |
||
![]() |
SoNenTyp |
![]() Antworten mit Zitat ![]() |
---|---|---|
Irgendwo in der Registry steht der Link auf das Bild. Mir fällt jetzt nur nicht genau ein wo das ist. | ||
Gruss Der Typ.
User posted image |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab was:
Arbeitsplatz\HKEY_CURRENT_USER\Control Panel\Desktop\ConvertedWallpaper Dadrin steht der Pfad zum aktuellen WallPapaer Arbeitsplatz\HKEY_CURRENT_USER\Control Panel\Desktop\OriginalWallpaper Dadrin steht der PFad zum WallPaper im BMP-Format und mit anderem Namen ![]() ![]() ![]() |
||
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
diesen ordner gibts bei mir garnicht (hab win xp pro.) naja vielleicht ist er ja wo anders... aber hab ja auch angefangen mich mit c++ zu beschäftigen denke das es da möglich ist (wird aber noch en weilchen dauern)
thx für die antworten mfg onkelz |
||
![]() |
SoNenTyp |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sind keine Ordner sondern Schlüssel ![]() Start->Ausführen->"Regedit" eingeben->Und der rest erklärt sich von selbst |
||
Gruss Der Typ.
User posted image |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
@onkelz: geht es dir darum, einen Screenshot vom gesamten Desktop zu machen (z.B. für einen Screensaver) oder willst du nur das Wallpaper laden, also ohne Icons etc.? | ||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
ich weiß wie alt der Thread ist, aber ich hab mal irgendwo gelesen das es besser ist auf alte Treads zu schreiben. Das aber nur nebenbei. Mich würde es interessieren wie man von B3D aus ein Bildschirmfoto machen kann mit Icons,Maus,etc. Also wenn irgendjemand weiß ob das geht und wie das geht und ihr mir das sagen würdet, dann wäre ich euch sehr verbunden. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...=3837#3837
Das wär ne Möglichkeit. Hat mich genau 2min 42 Sekunden Suchzeit gekostet, und das ohne der erweiterten Suche. MfG |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir kommt bei dem Code die Fehlermeldung:
Zitat: Function not Found
bei Code: [AUSKLAPPEN] hWnd=GetActiveWindow()
|
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du brauchst auch die Lib dazu.
Bitte beim Link weiter nach oben scrollen. |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo bekomme ich die her?
EDIT: Ich hab sie jetzt aber es funktioniert immernochnicht. Ich hab die *.decls im Userlib-Verzeichnis (C:\Programme\Blitz3D\userlibs) und die *.dll im Ordner wo ich das Prog. gespeichert habe. Mache ich etwas falsch? Wenn ja was? |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
An der verlinkten Adressen hat Vertex diese auch gleich als Zitat mitgegeben.
Ich zitiere also nochmal: Zitat: .lib "User32.dll"
GetActiveWindow%() : "GetActiveWindow" ShowWindow(hWnd,nCmdShow) : "ShowWindow" GetDC%(hWnd) : "GetDC" ReleaseDC(hWnd,hDC) : "ReleaseDC" .lib "gdi32.dll" GetPixel%(hDC,x,y) : "GetPixel" GetDeviceCaps%(hDC,nIndex) : "GetDeviceCaps" Denn Inhalt z.B. mit Notepad in dein Blitz3D\Userlibs reinkopieren und als Dateiendung .decls bennenen. Blitz3D dabei schliessen und wieder neu starten. Bei IDEal über ''Compile -> Edit Userlibs -> Refresh definations'' neu einlesen lassen. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich ja aber es funzt net. Gibt es irgendeine Sache die ich beim benennen der Userlibs beachlen muss. Ich hab die "user32.decls" und "gdi32.decls" genannt. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, der Fehler war, ausser einem Tippfehler einer Variable auch noch die API - ShowWindow - die nur ein paar Bytes erlaubte aus dem Desktopbuffer zu lesen. Folgende Funktion geht nun, allerdings sieht man auch das 400x300 große Fenster von Blitz im Bild. Ausserdem musst du noch alle ''api_'' durch nichts ersetzen, da ich andere Userlibs verwende.
Code: [AUSKLAPPEN] Local hWnd = api_GetActiveWindow()
;api_ShowWindow(hWnd,0) Local hDC = api_GetDC(0) Local Width = api_GetDeviceCaps(hDC,8) Local Height = api_GetDeviceCaps(hDC,10) Local Bank = CreateBank(Width * Height * 4) Local X,Y,RGB,R,G,B For X = 0 To Width -1 For Y = 0 To Height - 1 RGB = api_GetPixel(hDC,X,Y) PokeByte Bank,(X + Y * Width) * 4 + 2,(RGB Shr 16) And $FF PokeByte Bank,(X + Y * Width) * 4 + 1,(RGB Shr 8) And $FF PokeByte Bank,(X + Y * Width) * 4 + 0,(RGB And $FF) Next Next api_ReleaseDC(hWnd,hDC) Graphics 640,480,32,2 SetBuffer BackBuffer() AppTitle "Screenshot" ;api_ShowWindow(hWnd,5) Local Image = CreateImage(Width,Height) LockBuffer ImageBuffer(Image) For X = 0 To Width -1 For Y = 0 To Height - 1 R = PeekByte(Bank,(X + Y * Width) * 4 + 0) G = PeekByte(Bank,(X + Y * Width) * 4 + 1) B = PeekByte(Bank,(X + Y * Width) * 4 + 2) RGB = R * $10000 + G * $100 + B WritePixelFast X,Y,RGB,ImageBuffer(Image) Next Next UnlockBuffer ImageBuffer(Image) FreeBank Bank While Not KeyHit(1) ; DrawBlock Image,Rnd(-8,8),Rnd(-8,8) DrawBlock Image,0,0 Flip Cls Wend End |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da kommt immernoch die gleiche Fehlermeldung.
EDIT: Hier sind meine Dlls und Userlibs und der Code. https://www.blitzforum.de/upload/file.php?id=2568 Den Userlibordner hab ich im Blitzverzeichnis mit dem Namen "Userlibs". |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die .decls-Dateien müssten direkt in den Blitz3D/userlibs Ordner, nicht in ein Unterverzeichnis davon. Die beiden DLLs sind bei Windows dabei und du brauchst sie nicht extra dazu tun.
Außerdem ist die Methode, jeden Pixel einzeln zu lesen schon unter XP verdammt langsam und unter Vista gar nicht mehr zu gebrauchen. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group