[VB / API?] Tekenen op de desktop

Pagina: 1
Acties:

  • WhiteDog
  • Registratie: Juni 2001
  • Laatst online: 21-05 21:05

WhiteDog

met zwarte hond

Topicstarter
Al geruime tijd ben ik op zoek naar een manier om te tekenen op desktop. Ik bedoel hiermee op de laag tussen de icoontjes en de achtergrond.

Ik heb al veel gezocht en geprobeerd (google, psc, ...) maar vind eigenlijk enkel voorbeelden om op de bovenste laag te tekenen (dus boven de icoontjes op de desktop).

Ik heb deze techniek werkend gezien in 2 programma's (dus het moet mogelijk zijn) maar helaas bleven mijn mails aan de makers ervan onbeantwoord :/

Ik vermoed niet dat er een werkend voorbeeld bestaat voor VB, maar als iemand me in de richting van de juiste api's kan duwen kom ik er vast zelf wel uit :)

EDIT:
met tekenen bedoel ik door het programma gegeneerde plaatjes op de desktop zetten, niet met de muis zelf krabbelen ofzo. Even voor de duidelijkheid :)

[ Voor 13% gewijzigd door WhiteDog op 22-03-2004 17:06 ]


  • ShadowrunR
  • Registratie: Maart 2002
  • Laatst online: 22-05 23:53
Je kunt simpel via het register de huidige achtergrond ophalen, die dan bewerken, en dan de bewerkte versie terugzetten. Dan 'lijkt' het of je de 'laag' tussen de icoontjes en de desktopachtergrond bewerkt hebt.

Of bedoel je iets anders? Is het misschien de active desktop waarin je wil werken ofzo?

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Misschien idd de active desktop, of anders zou je een window onder die icoontjes kunnen maken, want in feite zitten die icoontjes gewoon in een ListView. Kijk met Spy++ of een ander programma waarmee je alle windows kunt bekijken naar een window met de titel "Program manager" en zn children.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • WhiteDog
  • Registratie: Juni 2001
  • Laatst online: 21-05 21:05

WhiteDog

met zwarte hond

Topicstarter
ShadowrunR schreef op 23 maart 2004 @ 15:18:
Je kunt simpel via het register de huidige achtergrond ophalen, die dan bewerken, en dan de bewerkte versie terugzetten. Dan 'lijkt' het of je de 'laag' tussen de icoontjes en de desktopachtergrond bewerkt hebt.

Of bedoel je iets anders? Is het misschien de active desktop waarin je wil werken ofzo?
Dat is inderdaad een oplossing (hoeft zelfs niet via het register). Alleen wik ik de achtergrond elke seconde gaan verversen en dan is een dergelijke techniek een beetje te traag en PC-intensief :)

  • WhiteDog
  • Registratie: Juni 2001
  • Laatst online: 21-05 21:05

WhiteDog

met zwarte hond

Topicstarter
Korben schreef op 24 maart 2004 @ 06:44:
Misschien idd de active desktop, of anders zou je een window onder die icoontjes kunnen maken, want in feite zitten die icoontjes gewoon in een ListView. Kijk met Spy++ of een ander programma waarmee je alle windows kunt bekijken naar een window met de titel "Program manager" en zn children.
Ik vermoed ook dat het op dergelijke manier moet gebeuren. Alleen bevind er zich niets onder die ListView.... ik vraag me dus eigenlijk af, welk process is verantwoordelijk voor de achtergrond :?

Met:
code:
1
Declare Function PaintDesktop Lib "user32" (ByVal hdc As Long) As Long


haal je de achtergrond op. Als ik nu eens wist op welke layer die werkte... kon ik em mss met FindWindow te pakken krjgen ofzo...

[ Voor 3% gewijzigd door WhiteDog op 24-03-2004 12:08 ]