Pass arguments to running application

Viewed 27823

I am making an image uploader (upload image to image hosting website) and I'm having some issues passing an argument (image location to an already running application)

  • First of all let's say MyApp.exe is always running
  • Whenever I right click on an image I have added an item in the default windows context menu that says "Upload image".
  • When that's clicked it needs to pass the location to the already running application.

My program.cs:

static class Program
{
    [DllImport("user32.dll")]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    [DllImport("user32.dll")]
    static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, UIntPtr
    wParam, IntPtr lParam);

    [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    static extern uint RegisterWindowMessage(string lpString);

    [STAThread]
    static void Main(params string[] Arguments)
    {
        if (Arguments.Length > 0)
        {
    //This means that the the upload item in the context menu is clicked
    //Here the method "uploadImage(string location)"
    //of the running application must be ran
        }
        else
        {
    //just start the application
            Application.Run(new ControlPanel());
        }
    }
}

Note that the ControlPanel class doesn't have a visible form, only a tray icon is present since a form is not needed.

Could I get any help on how to do this?

5 Answers
Related