Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Accessing a running instance of a program

Accessing a running instance of a program

Scheduled Pinned Locked Moved C / C++ / MFC
c++visual-studioarchitecturequestion
2 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    rbrunton
    wrote on last edited by
    #1

    I am trying to restrict operation to a single instance of my program (per user). Specifically, I create a shortcut in the "Send To" folder. If the program (an MDI program based on the MFC Doc/View architecture) is NOT running, right-clicking on a file in the Send-To context menu correctly runs the program with the file name as a command line argument. It I select the program again from the context Send-To menu a new instance of my program starts. What I would like to happen is that the new file is opened by the running instance of the program in a new MDI window. Could someone point me in the right direction for this? I did find code that prevents a second instance of the program from running. Unfortunately, it doesn't default to the OpenDocument option in the running instance of my program. (I'm using VS 2005, C++, MFC) TIA Ron

    M 1 Reply Last reply
    0
    • R rbrunton

      I am trying to restrict operation to a single instance of my program (per user). Specifically, I create a shortcut in the "Send To" folder. If the program (an MDI program based on the MFC Doc/View architecture) is NOT running, right-clicking on a file in the Send-To context menu correctly runs the program with the file name as a command line argument. It I select the program again from the context Send-To menu a new instance of my program starts. What I would like to happen is that the new file is opened by the running instance of the program in a new MDI window. Could someone point me in the right direction for this? I did find code that prevents a second instance of the program from running. Unfortunately, it doesn't default to the OpenDocument option in the running instance of my program. (I'm using VS 2005, C++, MFC) TIA Ron

      M Offline
      M Offline
      Mark Salsbery
      wrote on last edited by
      #2

      First, maybe check this out: Avoiding Multiple Instances of an Application[^] Once you determine an instance of your application is already running, you'll need a way to pass the commandline parameters from the process launched by the Windows shell to the already-running process. Some form of interprocess communication can do this, like a named pipe or sockets. See Interprocess Communications[^] When the already-running instance of the application receives a command from the shell-launched instance, then it can open the file as usual. The shell-launched instance can terminate. Mark

      Mark Salsbery Microsoft MVP - Visual C++ :java:

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups