desktop bild

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

onkelz89

Betreff: desktop bild

BeitragSo, Dez 04, 2005 2:07
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Dez 04, 2005 10:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Dez 04, 2005 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Dez 04, 2005 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Laughing Laughing Laughing
 

onkelz89

BeitragSo, Dez 04, 2005 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Dez 04, 2005 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sind keine Ordner sondern Schlüssel Very Happy


Start->Ausführen->"Regedit" eingeben->Und der rest erklärt sich von selbst
Gruss Der Typ.

User posted image

x-pressive

BeitragMo, Dez 05, 2005 11:17
Antworten mit Zitat
Benutzer-Profile anzeigen
@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

BeitragSa, Jan 19, 2008 9:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 19, 2008 9:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 19, 2008 10:14
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 19, 2008 10:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Du brauchst auch die Lib dazu.
Bitte beim Link weiter nach oben scrollen.

Der Eisvogel

BeitragSa, Jan 19, 2008 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Jan 19, 2008 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 19, 2008 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
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.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Jan 19, 2008 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 19, 2008 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 19, 2008 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group