How to write on desktop over wallpapper by subclassing

Started by Rockphorr, June 01, 2009, 07:49:38 AM

Previous topic - Next topic

Rockphorr

I have got hwnd of desktop by getdesktopwindow
After I try subclss it by replace windproc of desktop but no effcet.
I have replaced succesfuly wndproc of child button.
Strike while the iron is hot - Бей утюгом, пока он горячий

donkey

The desktop (Explorer) is a separate process and cannot be subclassed by simply using SetWindowLong as you would with a child control. You cannot subclass a window or class that belongs to another process. The reason for this is that the two processes (yours and the desktop) exist in their own address spaces and the address you pass to the desktop process does not contain the same data within that process as it does in yours. The methods used to subclass windows in other processes involve code injection and discussing such coding here skirts dangerously close to violating the rules, if not an outright violation.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

BlackVortex

Best solution would be something like what WindowBlinds does, set a global hook so that our dll gets injected on all running and future processes automatically.

? Profit ?

hutch--

It is actually easier to use a transparent window created with CreateWindowEx() using the desktop window handle as its parent. This way you can do anything you like on the desktop without trying to get around the problem of a seperate running process in seperate memory space.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

ecube

I hope one day, the forum rules here on api hooking can be reduced as the practice can be used for a great deal of good. Microsoft themselves feared such things for awhile, but now they openly imbrace it with their detour library. Myself I use it occasionally on some of my favorite applications to add that extra functionality I always wish they had but don't. Api hooking lets me add what I want strickly in memory which doesn't violate copyright terms etc...as I don't actually modify the original software in anyway on disk, to remove any changes its as simple as closing the application.

dedndave

i would take the easy way out
find their wallpaper image and glue my stuff in it - lol


Rockphorr

Quote from: dedndave on June 01, 2009, 03:10:49 PM
i would take the easy way out
find their wallpaper image and glue my stuff in it - lol
Do you mean a Zara ???
What is she ???
Strike while the iron is hot - Бей утюгом, пока он горячий

hutch--

Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

Rockphorr

Strike while the iron is hot - Бей утюгом, пока он горячий

Rockphorr

Strike while the iron is hot - Бей утюгом, пока он горячий

dedndave

she is my star - lol
she has worked in movie production, but i doubt you have ever seen her
she was just low enough on the totem-pole to not get her name in credits
well - on some of the documentaries she worked on, maybe

Rockphorr

Quote from: dedndave on November 03, 2009, 11:34:02 AM
she is my star - lol
she has worked in movie production, but i doubt you have ever seen her
she was just low enough on the totem-pole to not get her name in credits
well - on some of the documentaries she worked on, maybe

For short, to make her your wife is your target(dream)  :bg
Strike while the iron is hot - Бей утюгом, пока он горячий

baltoro

If you are INCREDIBLY LAZY (like me), you can just use BGInfo from SysInternals (TechNet).   
It uses the DAVE TECHNIQUE:   
Quotei would take the easy way out
find their wallpaper image and glue my stuff in it - lol
http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx
Baltoro

dedndave