6

I've got this legacy software that only allows you to run one copy at a time, it detects that you have another session opened and it won't allow you to open a second instance. The problem is this is a cpu intensive program and it only use a single core. Is there any hacks or tweaks so I can trick it and open more than one instance? This would allow me to retire about 5 servers... I'm using Windows 2008 R2.

I had to use cff explorer to enable the use more than 2GB RAM as the program crashes when it tries to use more than 2GB.

lbanz
  • 1,609
  • 5
  • 20
  • 30
  • 4
    You should look into virtualization. – Michael Hampton Sep 11 '12 at 09:03
  • I got 8 physicals and 3 virtuals just to run this software. I just want to check to make sure there isn't a better way as I think it's a bit overkill to install so many servers just for this one program. – lbanz Sep 11 '12 at 09:15

4 Answers4

8

Limiting a program to just one instance isn't an OS function: it has to be coded right inside the code.

This means the correct answer is: it depends on how the program performs the single instance detection. There are several ways of doing this:

  • Using a mutex. This is the simplest way and the most commonly used. In its simplest incarnation, a mutex will be limited to the current user context which means that you can trick the program to run multiple times by creating different services instance to run the program and run each of them in the context of a different user. This assumes, of course, that you can automate the program completely. It's also usually possible to write a "wrapper" app that manipulates the mutex and will change it i a way that allow other instances to run.

  • Checking the exe name in the process list. Trivial: rename the exe, run.

  • Lock a specific file. This can be trivial or difficult depending on the file's location.

  • Lock a local resource (TCP port, etc). This is usually the hardest to work around since there is no easy way to trick the application into not using that resource (in particular if it is really used, not just locked for preventing concurrency).

In all cases, the simplest thing to do is to ask the developers to lift that limitation.

Stephane
  • 6,432
  • 3
  • 26
  • 47
  • "In all cases, the simplest thing to do is to ask the developers to lift that limitation." I would disagree with that. It's a legacy application - even if the company who wrote the software still exists it's highly unlikely that they would crack open the source to make changes for you. As myself and Michael Hampton have stated, virtualization is probably the best way to go here. – Chris McKeown Sep 11 '12 at 10:10
  • I tried renaming the .exe and it still detected a second copy so it's probably using mutex as Stephane said. I contacted the developer and they said they no longer support the software and that my option is to install more copies as there is no limit with my license. Looks like I'll just have to virtualise them all! – lbanz Sep 11 '12 at 10:37
  • As per my answer, look at App-V - you won't need to build multiple virtual servers. – Chris McKeown Sep 11 '12 at 11:11
4

Sandboxie isn't designed with this use in mind but due to the way it runs processes in a virtual "bottle" it can be used to run multiple instances of an application that will normally only allow one instance to be run.

Another possible option: Programs that only allow a single instance normally do so by creating a mutex. When a new instance is started the existence of the mutex is checked and execution stops if it is found. It is possible to write a program that can start an instance and then delete its mutex. Be warned though that applications that don't expect more than one concurrent instance may well be problematic with this approach, so some level of virtualisation is preferable, just so each instance doesn't know or interact with others.

John Gardeniers
  • 27,458
  • 12
  • 55
  • 109
3

App-V would possibly help you here. It allows you to run multiple instances of the same virtualised program, each isolated from the other.

Chris McKeown
  • 7,168
  • 1
  • 18
  • 26
-1

Ctrl + Shift + Double Click App Shortcut Icon

It will open New Instance of application

  • 1
    Read the other answers to understand why your answer is false. – Sven Mar 21 '17 at 07:48
  • You missed a short tutorial on cracking the app limits with something like IDA, after which it would easily launch as you suggested :) – Anubioz Mar 21 '17 at 07:55
  • Welcome to the community. I recommend you remove your answer since it is not a technical answer, and it is not what the OP was looking for. Wish you luck and success :) –  Mar 25 '17 at 05:49