Click here to Skip to main content
15,889,863 members
Articles / Desktop Programming / Windows Forms
Article

Subliminal Messaging

Rate me:
Please Sign up or sign in to vote.
3.07/5 (15 votes)
24 Nov 2004GPL32 min read 41.9K   1.4K   10   3
Displays subliminal messages.

Setup Dialog

Introduction

This application flashes text on the screen for a split second, embedding the message into your subconscious where it will alter your conscience mind secretly. This is not intended for evil use, but rather good use on yourself. You can use this to change yourself for the better. As far as the legitimacy of subliminal messages in general, look it up. I believe they can affect you, so does the government (subliminal advertising has been outlawed). Make your own judgments. I'll just play with the idea of messing with people's minds.

Background

To use subliminal messages is nothing. Type in a message you want to pass along to your subconscious. It'll get it. To use them properly (and get your subconscious to interpret the messages properly) takes some thought. Say you want to quit smoking. Adding the message "I do not need to smoke." is a bad move. Your subconscious will see the word 'smoke' and assign that to the 'I need a cigarette' thought that is near impossible to get rid of. Instead, use the phrase, 'I am strong willed.' or something. Never use negative phrases or words, and always use present tense and first person. I would research a bit more on the subject before getting too fancy with it.

Using the code

The code is simple and highly commented. You're welcome. Use it for whatever, except for evil. All I ask is for a quick email letting me know its use so I can see where it goes, if anywhere.

Points of Interest

This is a background-running task, so having it crowd the task bar was a bit annoying. I did disable that, but that left me with no way to exit it other than the task manager, or Alt+Tab to it and press 'q' or 'Esc' (that code has been removed). So I learned about the notify icon and combined that with a context menu, and BOOM! An icon in the system tray. Beautiful.

Image 2

History

Other than what's described above, nothing has changed yet. Ideas? Questions? Changes you've made? I'd love to hear/answer/see them! armwareinc@hotmail.com.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Software Developer (Senior)
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralGood Pin
run149226-Oct-05 4:11
run149226-Oct-05 4:11 
AnswerRe: Good Pin
Civilised Barbarian20-May-09 3:30
Civilised Barbarian20-May-09 3:30 
I know this is an old thread, but I just came across it today.

I think there's a problem with the use of DoEvents. With a fast processor on an idle machine, DoEvents might conceivably be so short that the message is not present for at least one screen refresh period, so the messages might hardly ever appear.

Conversely, when the CPU is heavily loaded it might be possible for the timer to fire again before DoEvents returns.

I have modified to the code in the timer routine to control how long the message is present on the screen and to eliminate re-entry:

Replace the timer body with the following code:

{
	///
	//this timer that shows the message
	///

        //disable the timer to prevent re-entry
        tmr.Enabled = false;
	//create a random generator
	Random rand = new Random();

	//set the label up...
	lbl.Text = messages[rand.Next(messages.Length)];
	lbl.Top = rand.Next(Screen.PrimaryScreen.WorkingArea.Height - lbl.Height - 10);
	lbl.Left = rand.Next(Screen.PrimaryScreen.WorkingArea.Width);
	//makes the label visible
	lbl.Visible = true;

	//force the label to be redrawn
        lbl.Refresh();
        //suspend the task long enough for the label to show up on the monitor
        System.Threading.Thread.Sleep(20);
	//then hide the label
	lbl.Visible = false;

	//set the next tick to happen sometime between 2.5 and 10 seconds
	tmr.Interval = rand.Next(2500, 10000);
        //re-enable the timer
        tmr.Enabled = true
};


This will make sure the message is present for at least 20 milliseconds. Anything over 17ms should be long enough to be sure that the label will appear on at least one screen refresh on a 60Hz monitor. It might be nice to make this value into a variable that can be altered on the setup page, but for simplicity of presenting the modified code, I didn't bother to illustrate this.

The nice thing about this modification is that for test purposes you can increase the timing to say 500 milliseconds and see the messages appearing and disappearing from the screen. Don't forget to set it back to 20 or so to get the proper subliminal effect. It won't work if you are aware of the message because your conscious mind will invoke it's present programming to override the new. OMG | :OMG:

I wonder if there might be any merit in using a larger font size or different colors for the messages. Any thoughts?

Thanks for a nice simple implementation of a life-changing concept.
GeneralI AM HAPPY! Pin
Al Forno17-Feb-05 13:32
Al Forno17-Feb-05 13:32 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.