Run a C# .NET Compact Framework Application in Background

Posted on 2008-09-30
Last Modified: 2013-11-17

I am writing a SMS/Contact backup application, it need to run in the background (may be with an icon in the notification area)? What can I do to achieve it? Say FormBackup need to stay in memory, with a timer, that checks for new SMS etc and does the backup. How can I prevent user from clicking the X button to close it, and only Hide the form.

Question by:retinax
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
LVL 15

Expert Comment

ID: 22603783
In your Form_Load put the following:

            this.ControlBox = false; // Hides the minimize, X etc at the top of your form
            this.Hide();             // Will hide the form

Author Comment

ID: 22603898
Ok cool, thanks.

Any idea on the Notification area icon thing?

LVL 11

Expert Comment

ID: 22613698
Create NotifyIcon and ContextMenuStrip controls on the form.
Set setNotifyIcon's ContextMenuStrip property to your context menu.
Set NotifyIcon's Icon property to icon of your choice and set it's Visible property to true.
Create a 'Show form' menu in your context menu strip and fill it with this code:

        private void showFormToolStripMenuItem_Click(object sender, EventArgs e)
            this.WindowState = FormWindowState.Normal;
            this.Visible = true;

Open in new window


Author Comment

ID: 22615125
Thanks, are those controls available only in WM6 professional sdk not standard edition??
LVL 11

Accepted Solution

dbrckovi earned 400 total points
ID: 22615959
I'm sorry for wrong information. I didn't see you were programming in Compact framework.
However you can download notifyicon example for Compact Framework from this page:

Unfortunately I didn't manage to make it show the icon in Pocket PC emulator, but maybe it will work on other version of OS's or on a real device.

You can use it in your project by importing NotifyIcon.cs file, adding reference to Microsoft.WindowsCE.Forms, and using code in code snippet.

I hope this helps.
        private NotifyIcon notifyIcon;
        public Form1()
            notifyIcon = new NotifyIcon();
            notifyIcon.Click += new EventHandler(notifyIcon_Click);
        private void button1_Click(object sender, EventArgs e)
            IntPtr hIcon = LoadIcon(GetModuleHandle(null), "notify.ico");
        private void button2_Click(object sender, EventArgs e)
        internal static extern IntPtr LoadIcon(IntPtr hInst, string IconName);
        internal static extern IntPtr GetModuleHandle(String lpModuleName);
        private void notifyIcon_Click(object sender, EventArgs e)
            MessageBox.Show("Icon Clicked!");

Open in new window


Featured Post

Give Your Engineering Team a Productivity Boost

Learn why container technology is so powerful and how it can provide your team with productivity gains and other benefits.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question