How to use MM COM objects with a test MM database?

This forum is for questions / discussions regarding development of addons / tweaks for MediaMonkey for Windows 4.

Moderators: Gurus, Addon Administrators

Barry4679
Posts: 2398
Joined: Fri Sep 11, 2009 8:07 am
Location: Australia
Contact:

How to use MM COM objects with a test MM database?

Post by Barry4679 »

I am testing an external (python) application using MM automation objects.

ie. SDB = win32com.client.Dispatch("SongsDB.SDBApplication")

If MM is not already running, it is invoked, and its database is pointed at my production MM database, as per the MediaMonkey.ini found at C:\Users\xxxx\AppData\Roaming\MediaMonkey

Is there a way to override which inifile is used, so that I can point it at a test MM database?
Want a dark skin for MM5? This is the one that works best for me .. elegant, compact & clear.
Barry4679
Posts: 2398
Joined: Fri Sep 11, 2009 8:07 am
Location: Australia
Contact:

Re: How to use MM COM objects with a test MM database?

Post by Barry4679 »

a workaround is to try to remember to pre-start MM with a inifile override on the command line.
Want a dark skin for MM5? This is the one that works best for me .. elegant, compact & clear.
Peke
Posts: 17446
Joined: Tue Jun 10, 2003 7:21 pm
Location: Earth
Contact:

Re: How to use MM COM objects with a test MM database?

Post by Peke »

Hi,
Have you tried to install MMW as Service?
Best regards,
Peke
MediaMonkey Team lead QA/Tech Support guru
Admin of Free MediaMonkey addon Site HappyMonkeying
Image
Image
Image
How to attach PICTURE/SCREENSHOTS to forum posts
Barry4679
Posts: 2398
Joined: Fri Sep 11, 2009 8:07 am
Location: Australia
Contact:

Re: How to use MM COM objects with a test MM database?

Post by Barry4679 »

Peke wrote:Have you tried to install MMW as Service?
No.
Could you explain how that would help me?

I want to:
* use MM normally, with it pointing to my production database
* but when testing the COM app, I want that test run to be updating my test MM.db

My workaround, is to:
* close down MM prior to the test
* restart MM using a command line, which overrides to a testing ini file, pointing to the test MM.db
* test the COM application ... it uses the running invocation, ie. the test MM.db
* close down MM after the test, and then restart MM with the regular ini file

I was just wondering if there was something more idiot-proof.

Are you meaning that I can get the COM connection to attach to a testing secondary MM invocation?
something other than SDB = win32com.client.Dispatch("SongsDB.SDBApplication")?
How would I start|name this secondary invocation, and how would I get it to use a testing ini file?


Maybe it would be best to do my testing inside a VM?
Want a dark skin for MM5? This is the one that works best for me .. elegant, compact & clear.
rivorson
Posts: 594
Joined: Thu Jul 25, 2013 4:17 am

Re: How to use MM COM objects with a test MM database?

Post by rivorson »

Running a VM is always a good option but I think you've got the right approach. One thing you might change is allowing multiple instances of MM so you wouldn't need to close the instance running your production database before opening the instance with your test database.

The option is Tools --> Options --> General --> Allow just one instance of MediaMonkey.
Barry4679
Posts: 2398
Joined: Fri Sep 11, 2009 8:07 am
Location: Australia
Contact:

Re: How to use MM COM objects with a test MM database?

Post by Barry4679 »

rivorson wrote:One thing you might change is allowing multiple instances of MM so you wouldn't need to close the instance running your production database before opening the instance with your test database.
Thanks.

My COM knowledge doesn't extend much beyond the supplied MediaMonkey documentation. I am just following the advice showing how to establish a connection using Python, ie.
SDB = win32com.client.Dispatch("SongsDB.SDBApplication")

If I had a 2nd version of MM running how would I connect to the correct instance?
Want a dark skin for MM5? This is the one that works best for me .. elegant, compact & clear.
Just Guessing
Posts: 64
Joined: Mon Sep 03, 2012 12:06 pm

Re: How to use MM COM objects with a test MM database?

Post by Just Guessing »

If I had a 2nd version of MM running how would I connect to the correct instance?
ALSO INTERESTED.

I experimented for 2/3 days with such a pursuit and concluded its not gonna happen without major experimental hacking of installation registry files. I'd love it if someone can share/reveal a clean method to use multiple MM windows through scripting or command line.
Peke
Posts: 17446
Joined: Tue Jun 10, 2003 7:21 pm
Location: Earth
Contact:

Re: How to use MM COM objects with a test MM database?

Post by Peke »

Hi,
You can get iDispatch address from MMW internal Script start so that access works even on MMW portable.
Best regards,
Peke
MediaMonkey Team lead QA/Tech Support guru
Admin of Free MediaMonkey addon Site HappyMonkeying
Image
Image
Image
How to attach PICTURE/SCREENSHOTS to forum posts
Barry4679
Posts: 2398
Joined: Fri Sep 11, 2009 8:07 am
Location: Australia
Contact:

Re: How to use MM COM objects with a test MM database?

Post by Barry4679 »

Peke wrote:Hi,
You can get iDispatch address from MMW internal Script start so that access works even on MMW portable.
I just noticed this.

I am sorry. I don't understand.

In a Python context, I do the following (from docs)

SDB = win32com.client.Dispatch("SongsDB.SDBApplication")

How do I apply your advice?
Want a dark skin for MM5? This is the one that works best for me .. elegant, compact & clear.
Peke
Posts: 17446
Joined: Tue Jun 10, 2003 7:21 pm
Location: Earth
Contact:

Re: How to use MM COM objects with a test MM database?

Post by Peke »

And windows determine which instance it will return we have never found the way to control it.
Best regards,
Peke
MediaMonkey Team lead QA/Tech Support guru
Admin of Free MediaMonkey addon Site HappyMonkeying
Image
Image
Image
How to attach PICTURE/SCREENSHOTS to forum posts
Post Reply