Version/System checks



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

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

    User Information:
    Cinema 4D Version:   R12 
    Platform:   Windows  ;   Mac OSX  ; 
    Language(s) :     C++  ;

    ---------
    I can't check since all of my versions are registered.  Yeah, I could uninstall and reinstall, making sure that the Registry for C4D is clear and so on.  Since Maxon doesn't give developers a switch so we can test this information, I'm putting a user through some paces.

    Here is what I have.  Is it correct?  Thanks for the examples and explanations no one included anywhere...

    #ifdef    C4D_R12  
      VERSIONTYPE    vtype =        GeGetVersionType();  
      SYSTEMINFO    stype =        GeGetSystemInfo();  
      if ((vtype == VERSIONTYPE_NET_SERVER_3) || (vtype == VERSIONTYPE_NET_SERVER_UNLIMITED) || (vtype == VERSIONTYPE_NET_CLIENT))    network = TRUE;  
      if        (stype & SYSTEMINFO_DEMO)                                                                GePrint("C4D Demo");  
      else if (stype & (SYSTEMINFO_SAVABLEDEMO|SYSTEMINFO_SAVABLEDEMO_ACTIVE))                        GePrint("C4D Savable Demo");  
      else if (stype & SYSTEMINFO_COMMANDLINE)                                                        GePrint("C4D CommandLine");  
      else if ((vtype == VERSIONTYPE_NET_SERVER_3) || (vtype == VERSIONTYPE_NET_SERVER_UNLIMITED))    GePrint("C4D Server");  
      else if (vtype == VERSIONTYPE_NET_CLIENT)                                                        GePrint("C4D Client");  
      else  
      {  
          // serial number check  
          if (!(ippSerial && ippSerial->registered)) return FALSE;  
      }
    


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

    On 22/09/2010 at 08:00, xxxxxxxx wrote:

    Hmm, I would assume that you should rather check for stype==SYSTEMINFO_DEMO as the transition pdf says it´s now a specific enumeration and not a flag anylonger. Otherwise this looks correct to me.



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

    On 22/09/2010 at 08:32, xxxxxxxx wrote:

    GeGetVersionType() is using specific enumerations.  GeGetSystemInfo() is using flags.  Though, SYSTEMINFO_DEMO is deprecated, I still included it anyway.

    SYSTEMINFO GeGetSystemInfo(void) :

    Returns system information flags.



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

    On 22/09/2010 at 08:45, xxxxxxxx wrote:

    So the docs have the right info. I thought you said there´s no info?. Hmm, then what is your question exactly Kuro?



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

    On 22/09/2010 at 08:51, xxxxxxxx wrote:

    I just checked the docs and SYSTEMINFO is an enum.



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

    On 22/09/2010 at 08:54, xxxxxxxx wrote:

    But the information in the PDF is not explicit and there has been some conflicting information from other sources.  Not enough info and one single, tiny example would have sufficed to remove all doubt. :)



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

    On 22/09/2010 at 09:15, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    Since Maxon doesn't give developers a switch so we can test this information

    Demo and Time restricted demo are different binaries, there is no switch; NET and command line versions can be started by using a command line parameter that you specify.

    Originally posted by xxxxxxxx

    I'm putting a user through some paces.Here is what I have.  Is it correct?

    Yes



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

    On 22/09/2010 at 09:17, xxxxxxxx wrote:

    If SYSTEMINFO is an enum (and I believe you), then what about this: _

    SYSTEMINFO_SAVABLEDEMO_ACTIVE_
    Activated savable demo version, SYSTEMINFO_SAVABLEDEMO is still set.
    You cannot have two values set if they are not | together (boolean operator).
    As I said: conflicting information.  Need example or explicitly clear documentation.



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

    On 22/09/2010 at 09:17, xxxxxxxx wrote:

    SYSTEMINFO is a flag set (please take at a look at the end of an enum: ENUM_END_FLAGS vs. ENUM_END_LIST). More infos can be found in the R12 transition document under 1.3 Constants and Flags



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

    On 22/09/2010 at 09:18, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    Originally posted by xxxxxxxx

    Since Maxon doesn't give developers a switch so we can test this information

    Demo and Time restricted demo are different binaries, there is no switch; NET and command line versions can be started by using a command line parameter that you specify.

    Can the demo version (which I downloaded yesterday) be install along side the registered version without an ill consequences?

    Thanks! :)



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

    On 22/09/2010 at 09:19, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    As I said: conflicting information.

    Please point me to where there is any conflicting information?



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

    On 22/09/2010 at 09:19, xxxxxxxx wrote:

    Thanks for clearing that up, Philip!  As I said, not as explicit as it at first appears.



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

    On 22/09/2010 at 09:21, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    Can the demo version (which I downloaded yesterday) be install along side the registered version without an ill consequences?Thanks! :)

    Yes - you can have multiple folders with all kinds of different C4D installations (Demo, NET, different versions and builds).



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

    On 22/09/2010 at 09:30, xxxxxxxx wrote:

    There was some post somewhere that I read that said not to use boolean operators on the SYSTEMINFO returned.  And reading the transition PDF it is possible to interpret it that way:

    _Before R12 GeGetVersionType returned a flag set that could combine several values. Now
    you'll get exactly one enumeration value, specifying what version of C4D is running.
    For a precise overview which features are present in all editions please visit the official
    website www.maxon.net

    ...

    Independent of GeGetVersionType you can retrieve the following information from
    GeGetSystemInfo:
    _
    There is no explicit notation that GeGetSystemInfo() is flags or singular enumerations.

    After looking at the SDK Docs, it says 'flags' so I assumed that this was more official and the reason that I went that way.

    Similarly, you assume Cinema 4D is running 64-bit and don't display that on the splash during load but you show [32-bit] otherwise.  Why not remove ALL ambiguity and simply have [32-bit] or [64-bit] displayed.  Since you've reverse this notation from previous versions, I'll wager that you will have confused users.  If I've learned anything while developing, explicit, while boring, is always better than implicit.  Never ass-u-me.



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

    On 22/09/2010 at 09:31, xxxxxxxx wrote:

    Thanks for the info and the pointer to the 1.3 chapter. Well, I found it a bit confusing too probably because the information on GeGetVersionType and GeGetSystemInfo are so near with a statement of a specific enumeration. But 1.3 indeed clears it up. thx



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

    On 23/09/2010 at 13:58, xxxxxxxx wrote:

    As a somewhat more "casual" coder I do find these small changes
    a bit confusing.

    So Roberts examples covers -ALL- versions?
    Trying to see/understand the different needed options:

    For GeGetVersionType() we must use a compare "=="
    and for GetSystemInfo() we must use bolean "&"   ???

    What about SysGetUserInfo() to return "0" (for regular Cinema)
    and SysGetUserInfo() to return "6" for MutiLicenseServer?

    Is SysGetUserInfo() still valid returning 0 or 6?

    It is also a bit complicated to check every aspect since
    as far as I can tell the NET versions are not in par
    (NET 12.016 App 12.021)

    Cheers
    Lennart



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

    On 23/09/2010 at 14:39, xxxxxxxx wrote:

    With SysGetUserInfo() I meant:

    SysGetUserInfo(0) returns the local "normal" Cinema serial
    and SysGetUserInfo(6) returns the MultiLicense serial.

    Cheers
    Lennart


Log in to reply