It appears that you're running an Ad-Blocker. This site is monetized by Advertising and by User Donations; we ask that if you find this site helpful that you whitelist us in your Ad-Blocker, or make a Donation to help aid in operating costs.

1. Is there a maximum amount of characters you can store in a key in the registry (I know it's not really a VB question, but it's for a program I'm working on and I want to know if I have to have a maximum length of data allowable since I save the string in the registry).

2. How can you make a form that you load, load infront of everything else. Right now it will load in front of all other programs if you aren't doing anything. But if you are typing ,for example, in notepad, the form will load behind notepad so that notepad is still visible. How do you get it to load infront? I can't figure it out. That is, without using DirectX, and I'm sure there has to be an easier way since that is far too complicated.

Nope, code didn't work, unless I did it wrong. I put the declaration in the General-Declaration section and I put the code block in the Form Load section, and I replaced Form1 with the name of my form. Did I do it wrong or is the code wrong?

Well, the reason I asked you to tell me if it worked, is cause I've had trouble doing what you're wanting to do. This time however, I did some heavy research into the matter and found your answer - but you won't like it.

Since win98 and Win2k windows restricts what processes are allowed to use the 'SetForegroundWindow' function. While there are many functions that relates to the top/active/focused window, only 'SetForegroundWindow' does precisely what you want.

One of the following conditions must be true in order for your process to use the 'SetForegroundWindow' function.

* The process is the foreground process. * The process was started by the foreground process. * The process received the last input event. * There is no foreground process. * The foreground process is being debugged. * The foreground is not locked (see LockSetForegroundWindow). * The foreground lock time-out has expired (see SPI_GETFOREGROUNDLOCKTIMEOUT in SystemParametersInfo). * Windows 2000/XP: No menus are active.

Also, here's another interesting tidbit:

"The system automatically enables calls to SetForegroundWindow if the user presses the ALT key or takes some action that causes the system itself to change the foreground window (for example, clicking a background window)."

So after reading all those conditions, I figured it may be possible to do a 'hack' and trick the OS into letting you change the foreground window - even when another process as the focus. However, I am too lazy to bother trying so I instead gave you all the information you needed to figure out how yourself.

The use of "hacker" to mean "security breaker" is a confusion on the part of the mass media. We hackers refuse to recognize that meaning, and continue using the word to mean, "Someone who loves to program and enjoys being clever about it."--------------------"Its not a bug, its a feature" (Epic Games)

Well, I looked over some of that material, and I think that if maybe I worked at it for a long time I might be able to figure it out, but I had another idea. I looked back over the code from my game programming days (heh, those didn't get too far, but I learned some cool shit), and found some DirectX code. This code will automatically set your form to the foreground. The only thing is that the user has to have DirectX installed.

-First you have to reference DirectX 7, to do this go to Project->References->DirectX 7 Visual Basic Library, and select it.

Declarations:

Dim dx As New DirectX7 'This is the root object. DirectDraw is created from thisDim dd As DirectDraw7 'This is DirectDraw, all things DirectDraw come from here

Code:

Set dd = dx.DirectDrawCreate("") 'the ("") means that we want the default driver