Hi Jeremy, I was going to be lazy 'cause I used to have the source code for a bunch of the sysinternals utils, from back in the days that Mark and Bryce provided the source code as well. Looks like I've managed to lose it so I'll actually have to do some real work. Judging by the name of the mutex, it's definitely a recent code addition. You can speed up your script a bit by skipping the file redirections, eg. FOR /F "tokens=3 delims= " %%A IN ('handle -a -u -p qw.exe ^| find "%username%" ^| find "qw.exe"') DO SET PID=%%A ::Find the hexadecimal handle number for the mutex FOR /F "tokens=1 delims=:" %%A IN ('handle -a -p %PID% ^| find "QW is Running"') DO SET MUTEX=%%A ::Remove leading spaces SET MUTEX=%MUTEX: =% ::Close the handle echo Y| handle -c %MUTEX% -p %PID% But it's not bad as is ;-) regards, Rick Ulrich Mack Volante Systems ________________________________ From: thin-bounce@xxxxxxxxxxxxx on behalf of Jeremy Saunders Sent: Fri 17/02/2006 1:09 To: thin@xxxxxxxxxxxxx Subject: [THIN] Re: Help with an app - Quicken Cashbook 2005 Hi Rick, Yep...I've been playing with it. It took a bit of getting used to, but I've got it working with the following script. ---------------Start of script-------------- ::After Quicken 2005 has been launched we need to find the PID of the qw.exe process for the user. handle -a -u -p qw.exe | find "%username%" | find "qw.exe" >pid.txt FOR /F "tokens=3 delims= " %%A IN (pid.txt) DO SET PID=%%A ::Find the hexadecimal handle number for the mutex handle -a -p %PID% | find "QW is Running" >mutex.txt FOR /F "tokens=1 delims=:" %%A IN (mutex.txt) DO SET MUTEX=%%A ::Remove leading spaces SET MUTEX=%MUTEX: =% ::Close the handle ::Note: It is possible that two different processes may have different handles to different objects with the same values. ::Therefore it's important to reference the PID when closing the handle. This makes sure that the correct handle is closed. echo Y| handle -c %MUTEX% -p %PID% ---------------End of script-------------- Contents of the pid.txt file... qw.exe pid: 2196 DOMAIN\administrator Contents of the mutex.txt file... DC: Mutant \BaseNamedObjects\QW is Running Could you do this any better? I wouldn't mind doing it in C without needing to rely upon the handle.exe util. Cheers. Kind regards, Jeremy Saunders Senior Technical Specialist Integrated Technology Services & Cerulean IBM Australia Level 2, 1060 Hay Street West Perth WA 6005 Visit us at http://www.ibm.com/services/au/its P: +61 8 9261 8412 F: +61 8 9261 8486 M: TBA E-mail: jeremy.saunders@xxxxxxxxxxx "Rick Mack" <Rick.Mack@volant e.com.au> To Sent by: <thin@xxxxxxxxxxxxx> thin-bounce@freel cc ists.org Subject [THIN] Re: Help with an app - 16/02/2006 07:24 Quicken Cashbook 2005 PM Please respond to thin Hi Jeremy, Have a look at the Handle utility from sysinternals. Not sure whether it'll close a mutex, but if it does... All you'd have to do is a bit of scripting to run handle after quicken. That gets around any privileges issues. In the mean time I'll see if I can dig up some code for you. regards, Rick Ulrich Mack Volante Systems ________________________________ From: thin-bounce@xxxxxxxxxxxxx on behalf of Jeremy Saunders Sent: Thu 16/02/2006 10:21 To: thin@xxxxxxxxxxxxx Subject: [THIN] Re: Help with an app - Quicken Cashbook 2005 Hi Rick, Yes...you were right. Our e-mails crossed in the night. Closing the handle for one of the Mutex's fixes the problem. Can I be cheeky and ask you to point me in the direction of the C code? I can quite happily code in C, but I'm not sure I'm following you...if you know what I mean. Cheers. Kind regards, Jeremy Saunders Senior Technical Specialist Integrated Technology Services & Cerulean IBM Australia Level 2, 1060 Hay Street West Perth WA 6005 Visit us at http://www.ibm.com/services/au/its P: +61 8 9261 8412 F: +61 8 9261 8486 M: TBA E-mail: jeremy.saunders@xxxxxxxxxxx "Rick Mack" <Rick.Mack@volant e.com.au> To Sent by: <thin@xxxxxxxxxxxxx> thin-bounce@freel cc ists.org Subject [THIN] Re: Help with an app - 15/02/2006 08:53 Quicken Cashbook 2005 PM Please respond to thin Hi Jeremy, Been looking at a single instance executable (a service). Process Explorer should give you exactly what you need. Check the mutant handles with "mutex" in the name. Try closing them individually (careful, may crash your machine) and starting up another instance of quicken. If there aren't any with mutex in the name, try closing the mutants and semaphores one by one (restarting App in between trying to start up another instance). When you find the right one then you're a bit of C code away from running Quicken multi-user. regards, Rick Ulrich Mack Volante Systems ________________________________ From: thin-bounce@xxxxxxxxxxxxx on behalf of Jeremy Saunders Sent: Wed 15/02/2006 19:45 To: thin@xxxxxxxxxxxxx Subject: [THIN] Help with an app - Quicken Cashbook 2005 Hi All, I've installed Quicken Home and Business 2005/06 (AKA Quicken Cashbook 2005) onto a test Windows 2003 PS4 box for a customer and have found that when more than one copy of the application is run up the user is prompted with a message box that says "Another user is already running this application." When the user clicks okay, the program ends. So I installed the whole app into an AIE hoping that it would then be isolated. But unfortunately this problem is still occurring. I'm 99% sure that I've got the AIE configured correctly. I've tried everything I know of, such as... 1. Creating multiple executables qw.exe, qw2.exe, etc. 2. Enabling security auditing in-case filemon is missing something 3. Filemon - there are no sharing violations 4. Regmon 5. Process Explorer 6. Enabled all sorts of auditing 7. Excluding the program from Memory Optimisation 8. Installing more than one copy of the program into different folders and used a qw.exe.local file Process Explorer showed me what dll's were open at the time the 2nd user received the error, so I used reshack to find which dll contained the StringTable with the text "Another user is already running this application.". Sure enough when I change this text the user gets a different prompt. The original line in reshacker is... 2029, "Another user is already running this application." What is the number 2029 referencing? I want to somehow suppress this error so that the program will continue on its own accord, but I'm running out of ideas on how this can be achieved. Of course Quicken support are no help, as the program is not written for multiuser environments. It's funny that Quicken Cashbook 8, 2003 and 2004 work 100% on PS4, but the latest version seems to be quite locked down. As I'm writing this e-mail I'm thinking about the Application Compatibility Toolkit. I haven't tried that one yet. Any ideas would be much appreciated? Cheers. Kind regards, Jeremy Saunders Senior Technical Specialist Integrated Technology Services & Cerulean IBM Australia Level 2, 1060 Hay Street West Perth WA 6005 Visit us at http://www.ibm.com/services/au/its P: +61 8 9261 8412 F: +61 8 9261 8486 M: TBA E-mail: jeremy.saunders@xxxxxxxxxxx ************************************************ For Archives, RSS, to Unsubscribe, Subscribe or set Digest or Vacation mode use the below link: //www.freelists.org/list/thin ************************************************ ##################################################################################### This e-mail, including all attachments, may be confidential or privileged. Confidentiality or privilege is not waived or lost because this e-mail has been sent to you in error. If you are not the intended recipient any use, disclosure or copying of this e-mail is prohibited. If you have received it in error please notify the sender immediately by reply e-mail and destroy all copies of this e-mail and any attachments. All liability for direct and indirect loss arising from this e-mail and any attachments is hereby disclaimed to the extent permitted by law. ##################################################################################### (See attached file: winmail.dat) ##################################################################################### This e-mail, including all attachments, may be confidential or privileged. Confidentiality or privilege is not waived or lost because this e-mail has been sent to you in error. If you are not the intended recipient any use, disclosure or copying of this e-mail is prohibited. If you have received it in error please notify the sender immediately by reply e-mail and destroy all copies of this e-mail and any attachments. All liability for direct and indirect loss arising from this e-mail and any attachments is hereby disclaimed to the extent permitted by law. ##################################################################################### (See attached file: winmail.dat) ##################################################################################### This e-mail, including all attachments, may be confidential or privileged. Confidentiality or privilege is not waived or lost because this e-mail has been sent to you in error. If you are not the intended recipient any use, disclosure or copying of this e-mail is prohibited. If you have received it in error please notify the sender immediately by reply e-mail and destroy all copies of this e-mail and any attachments. All liability for direct and indirect loss arising from this e-mail and any attachments is hereby disclaimed to the extent permitted by law. #####################################################################################