Hi to all.
Can i make a Window,who have a power to be always active but invisible for me?How?

iamthwee commented: Sounds like a keylogger to me! -2
Aia commented: Unrighteous given negative reputation balancer +4

Recommended Answers

All 10 Replies

No. A window must be visibe to be active (i.e. in order to receive user input events).

Even though the window is inactive, your application is still running though, and can receive other events.

You can set a system hook to capture events you are interested in, using SetWindowsHookEx(). System-wide event hooks usually require a DLL.

Hope this helps.

I read it a whole thing and it is not a easy.Yes it is help a little bit.
Because i need to learn this. :(
Do you have anything in C/C++ what monitoring the keyboard?
Thanks for your effort.

You'll have to look at the documentation for SetWindowsHookEx(). The hook type you want is WH_KEYBOARD, if you intend it intercept and maybe change the keyboard input, or WH_JOURNALRECORD just to monitor it.

You can google all of this over at MSDN.

Good luck.

You'll have to look at the documentation for SetWindowsHookEx(). The hook type you want is WH_KEYBOARD, if you intend it intercept and maybe change the keyboard input, or WH_JOURNALRECORD just to monitor it.

You can google all of this over at MSDN.

Good luck.

WH_JOURNALRECORD and WH_KEYBOARD Is Windows 95/98/Me function.
And SetWindowsHookEx() is Windows 95/98/Me function.
Only i can use WH_KEYBOARD_LL and CallNextHookEx() but how without setwindowshookex() . :(

How do you figure? SetWindowsHookEx() is a Win32 function, and is supported on every Windows OS since.

I am not really certain but at the end of the Page of SetWindowsHookEx() write what OS supprot.

Listen, I'm not making this stuff up.

Here's the official Microsoft Documentation.

At the end of the page here it says that you need at least Windows 95 or NT 3.1 (both the basic Win32 platforms). I've used hook procedures on XP, and they are still valid in Vista.

If you want to capture input when you application is not active, you have only two choices: use SetWindowsHookEx(), or hack the kernel.

Now please go and try to do it before complaining that it won't work. And remember, if you want a system-wide hook, you will need to put your hook callback in a DLL.

HI , I use Dev-C++
I using LowLevelKeyboardProc
In SetWindowHookEx()

When i need to point dll file,
do i need to point User32.dll ?or what ,how?

Do i need in Win32 Application to put all of this?

No, you need to compile your code into a DLL file of your own making. Windows won't let normal applications gain system-wide hooks because they can terminate anytime they like. A DLL, however, terminates only when the system is done with it. So when you set the hook, it must point to a hook procedure in a specific DLL.

So, you will need to create two projects: one to create the DLL which contains your KeyboardProc (and which you'll probably want to export other functions to give information about the hook) and one to create your EXE application which uses the DLL from the first project.

I know its a pain... but it is the only way to actually modify keyboard input when your application is not active. I'm sure there is a lot of sample code on the web to do just that...

Hope this helps.

This is really ehaustive ,i will try it again when i finish with my turtorial about win32.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.