Aktuelle Zeit: 26.01.2021 10:47

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 30 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 12.01.2021 11:56 
Offline
Benutzeravatar

Registriert: 08.09.2004 20:18
Wohnort: Dachsen
Hallo,

ich möchte den Handler, beziehungsweise die Adresse im Speicher wissen, wo der Aktuelle Desktophintergrund zu finden ist.

Ich möchte den Desktop Hintergrund als Zeichenfläche verwenden. Jemand ne Idee?

Gruss TFT

_________________
TFT

W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 12.01.2021 13:14 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Früher war das Window-Handle des Desktops einfach 0. Da konntest du mit GetDC_(0) einfach den Device Context des Desktops bekommen. Aber das ist alles, was ich noch weiß. Ich kann mir vorstellen, dass das unter Windows 10 heutzutage nicht mehr so einfach ist.

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 12.01.2021 13:15 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Hab was gefunden: https://www.codeproject.com/Articles/856020/Draw-Behind-Desktop-Icons-in-Windows-plus

_________________

Links:
PureBasic Discord
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 12.01.2021 15:01 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Wird natürlich mit dem nächsten Ausgabe überschrieben
Code:
;-TOP
Define hDesktop, hDesktopDC

hDesktop = GetDesktopWindow_()
If hDesktop
  hDesktopDC = GetDC_(hDesktop)
 
  If hDesktopDC
    TextOut_(hDesktopDC, 1000, 40, "Hello, Windows!", 15)
    InvalidateRect_(hDesktop, 0, 0)
  EndIf
 
EndIf

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.7x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 12.01.2021 15:51 
Offline
Benutzeravatar

Registriert: 23.07.2011 02:08
Interessant.
Dachte er malt auf den Hintergrund, aber er mal einfach auf den Desktop über(!) die Symbole

_________________
Signatur und so


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 12.01.2021 21:22 
Offline
Benutzeravatar

Registriert: 08.09.2004 20:18
Wohnort: Dachsen
Ich brauche den Zeiger auf die Adresse des Hintergrundbildes.
Dort kann ich dann einen eigenen eintragen.
Ich kann jetzt das Bild Verändern. Und muss dann einen Refresh befehl senden, damit die Anzeige erneuert wird.
So die Theory ......

_________________
TFT

W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 13.01.2021 22:27 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
tft hat geschrieben:
Ich brauche den Zeiger auf die Adresse des Hintergrundbildes.
...

Schon versucht das SysListView32 bzw. WorkerW Fenster zu bekommen?

_________________

Links:
PureBasic Discord
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 14.01.2021 14:57 
Offline
Benutzeravatar

Registriert: 08.09.2004 20:18
Wohnort: Dachsen
äää nein ....

_________________
TFT

W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 14.01.2021 15:10 
Offline
Benutzeravatar

Registriert: 29.08.2004 08:37
Geht das aus dem CodeArchiv nicht mehr?

http://www.purearea.net/pb/CodeArchiv/W ... Painter.pb

Oder war das zum zeichnen darüber? (Kann es grad nicht testen, kein Windows hier)

_________________
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Desktop Hintergrund DC ermitteln
BeitragVerfasst: 14.01.2021 22:34 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
Hallo!

Bekommt das jemand zum laufen?
(Das hinter die Icons gezeichnet wird)

Code:
Procedure FindDTWindow()
  Protected.i hWnd, hwndWorkW, hView, h, dResult
  hwnd = FindWindow_(@"Progman"), @"Program Manager"))
 
  SendMessageTimeout_(hWnd, $052C, 0, #Null, #SMTO_NORMAL, 1000, @dResult)
 
  hwndWorkW = #Null
  Repeat
    hwndWorkW = FindWindowEx_(#Null, hwndWorkW, @"WorkerW", #Null);
    If hwndWorkW = #Null
      Continue
    EndIf
   
    hView = FindWindowEx_(hwndWorkW, #Null, @"SHELLDLL_DefView", #Null);
    If hView = #Null
      Continue
    EndIf
   
    h = FindWindowEx_(#Null, hwndWorkW, @"WorkerW", #Null)
    While h <> #Null
      SendMessage_(h, #WM_CLOSE, 0, 0)
      h = FindWindowEx_(#Null, hwndWorkW, @"WorkerW", #Null);
    Wend
    Break
   
  Until #True
 
  ProcedureReturn hWnd ;Auch schon verschiedene "WinSpy" - Handles durchprobiert! (unter Win10)
EndProcedure

Global Ecki.rect
Ecki\bottom = 10
Ecki\left = 10
Ecki\right = 110
Ecki\top = 110

Global dc = GetDCEx_(FindDTWindow(), #Null, $403)
Debug dc
If dc <> 0
  FillRect_(dc, Ecki, CreateSolidBrush_(RGB(255,0,0)))
  InvalidateRect_(dc, Ecki, 0)
  ReleaseDC_(FindDTWindow(), dc)
EndIf


_________________
Betriebssysteme: MX Linux 19 / Windows 10 / Mac OS 10.15.7 / Android 7.0 ;)

Manchmal muß das Rad neu erfunden werden.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 30 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 11 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye