User plugin serial number issue



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 21/10/2010 at 11:35, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   11.5 
    Platform:      Mac OSX  ; 
    Language(s) :

    ---------
    Howdy,

    This may not be an SDK issue, but I have a user who is having trouble registering one of my plugins in R11 on Mac OS. He is typing the correct serial number into the registration field, but no file is being written to his user/Library/Preferences folder.

    I had him check for read/write permissions in that directory and he has assured me that he has administrator privileges and read/write permissions, but the mca11_xxxxxxx file is not being written. I also had him do a HD search for that file to see if it is anywhere on his HD, but it is nowhere to be found.

    Any ideas?

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 08:03, xxxxxxxx wrote:

    Howdy,

    I'm beginning to think the guy is trying to run a con, because now he's asking for a refund because he can't get it to work. 

    He claims he's on a Mac machine, but his home directory is mounted over NFS off a network. He says that Cinema 4D is installed on his machine. Something doesn't sound right here.

    Can someone please advise me on this?

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 14:48, xxxxxxxx wrote:

    Hi Dan,

    unfortunately cannot say anything about why it´s not writing the file (never had this situation) but in such cases (it happens from time to time that something during personalisation is not working as it should) I definetly always instruct the customer to make a screen capture of the whole procedure showing exactly how it is not working and how he goes through the whole procedure (the cap showing the corresponding folders, permission settings, c4d start up, registration dialog, him entering the serial number etc. so everything that kind of is related to the whole process) before a radical step like a refund is done. Also make sure he is really typing in the serial manually and does NOT copy & paste the number. In my case at least when a serial is not working it is (till today) 100% that the user copy & pastes it and a non-breaking space or similar is copied along.

    Otherwise you´ll never get out of the guessing if everything is done as it should (customers do crazy things and sometimes simply do not follow the instructions correctly).

    Hope you can figure it out
    Samir



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 17:34, xxxxxxxx wrote:

    Howdy,

    OK, after talking with their network guy, it looks like they've got Cinema 4D on a multi-license.

    My plugin is using ReadPluginInfo() and WritePluginInfo() for the plugin serial number, is this causing a problem?

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 17:46, xxxxxxxx wrote:

    Jap, you must use Read/WriteRegInfo() in a license server environment.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 17:53, xxxxxxxx wrote:

    Howdy,

    Hmmmm, how do you know when a user has a license server or not?

    I'm searching the forum now for answers but nothing is making any sense. 

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 18:03, xxxxxxxx wrote:

    https://plugincafe.maxon.net/topic/4905/4814_registrations-using-readplugininfo-on-115



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 18:15, xxxxxxxx wrote:

    Howdy,

    Thanks for that, but I've already seen that and it's not helping me figure this out. Confused
    Something just isn't clicking.

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/10/2010 at 18:34, xxxxxxxx wrote:

    Howdy,

    OK, hold on I think I'm getting it. 🙂

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 23/10/2010 at 12:21, xxxxxxxx wrote:

    Could you finally figure it out dan?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 23/10/2010 at 12:25, xxxxxxxx wrote:

    Howdy,

    Well, I think so, but I'll have to wait to hear from the user to see if it worked. 😉

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 06:24, xxxxxxxx wrote:

    Howdy,

    The user is saying it's still not working.

    Here's what I did. I created my own function calls like this:

    Bool myReadPluginInfo(LONG pluginid, void *buffer, LONG size)
    {
    SerialInfo si;
    GeGetSerialInfo(SERIAL_MULTILICENSE, &si);

    if(si.nr.Content())
    	return ReadRegInfo(pluginid,buffer,size); // multi license
    else
    	return ReadPluginInfo(pluginid,buffer,size); // single license
    

    }

    Bool myWritePluginInfo(LONG pluginid, void *buffer, LONG size)
    {
    SerialInfo si;
    GeGetSerialInfo(SERIAL_MULTILICENSE, &si);

    if(si.nr.Content())
    	return WriteRegInfo(pluginid,buffer,size); // multi license
    else
    	return WritePluginInfo(pluginid,buffer,size); // single license
    

    }

    Seems like that should work, shouldn't it?

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 06:36, xxxxxxxx wrote:

    yep, looks right to me. Did he provide you with the license server serial number?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 06:45, xxxxxxxx wrote:

    Howdy,

    He provided the normal Cinema 4D serial number, BUT in my routine for checking the Cinema 4D serial number I use this:

    SerialInfo si;
    GeGetSerialInfo(SERIAL_CINEMA4D,&si);

    So, the previous code I posted is simply using

    GeGetSerialInfo(SERIAL_MULTILICENSE, &si);

    to check if it's a mult license or single license and then calling the appropriate c4d function to fill the buffer.

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 07:21, xxxxxxxx wrote:

    Well, that might be the problem. If the c4d license is in a license server environment then afaik you should use the license server serial number (as not the c4d serial number is used for running that c4d license in that case) which at the same time means you must license the amount of seats to them and you cannot license individual seats or a limited number of seats. So if they have 20 seats they must buy 20 licenses from you (of course you could trust them that they will only use your plugin with that one c4d seat but well...really?).

    But I think only Matthias can give you an official answer on this.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 07:42, xxxxxxxx wrote:

    Howdy,

    I've sent Matthias a private message asking him to look at this thread.

    This whole multi license thing has been confusing to me. I never really cared to make a customer pay for using the plugin on each seat in their multi license, so I thought if I just left the old code as is, looking for the Rx.0 number, everything would be fine. Up until now, everything has been fine (no customers with multi licenses), but it looks like it has turned around and bitten me in the upholstery. :frowning2:

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 08:14, xxxxxxxx wrote:

    Don't know if this helps but from earlier threads I use
    SysGetUserInfo(6) for MLS and
    SysGetUserInfo(0) for main app running local number.

    I've asked the MLS users I have with R12, and it seems to be ok.

    Cheers
    Lennart

      
    var eleven; // the app serials   
    var licensetype;   
      
    if(SysGetUserInfo(6) && sizeof(SysGetUserInfo(6)) > 0 )   
    {   
    eleven = SysGetUserInfo(6);   
    licensetype = "LICENSE SERVER";   
    }   
      
    if(SysGetUserInfo(0) && sizeof(SysGetUserInfo(0)) > 0 )   
    {   
    eleven = SysGetUserInfo(0);   
    licensetype = "Cinema R12";   
    }
    


  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 08:22, xxxxxxxx wrote:

    Howdy,

    But that is coffee code. 😕

    Adios,
    Cactus Dan



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 08:39, xxxxxxxx wrote:

    Yup, but I just wondered if SysGetUserInfo() might be useful / available for C++ as well,
    but that I can't tell....

    Cheers
    Lennart



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/10/2010 at 09:20, xxxxxxxx wrote:

    Howdy,

    Well, no that function isn't in the C++ SDK.

    The code I posted was based on the example code in the R11.5 C++ SDK documentation:

    void GeGetSerialInfo(LONG type, [SerialInfo](file:///Users/danlibisch/Documents/C4D%20Manuals/R11.5%20SDK/pages/c4d_general/struct_SerialInfo1204.html)* si)_<_h4_>_

    Get the registration information for CINEMA 4D.

    A multi-license has the following formating:
    201 **[100]** 00519-ABCDEF

    The third, fourth and fifth digits equal the number of licenses, in the above example it's 100 licenses.

    Example:
    `  
    SerialInfo si;
    GeGetSerialInfo(SERIAL_MULTILICENSE, &si);

    if(si.nr.Content())
    {
      //multi-license, do something
    }
    else
    {
      GeGetSerialInfo(SERIAL_CINEMA4D, &si);

    //single-license, do something
    }
    `

    That's basically what I was doing in my code, except that my code was only using that to find out whether to call Read/WritePluginInfo() or Read/WriteRegInfo().

    Edit:
    Well, I reckon the problem is that I don't have a beta tester who is on a multi license, who can check to see if it's working. 😠

    Adios,
    Cactus Dan


Log in to reply