« 前回の新規ヌルオブジェクトをポイントやポリゴンに追加配置するユーザスクリプトに「オブジェクトモード」を追加する | トップページ | C4D COFFEEの配列変数をfor()で走査するとき、条件式にsizeof(配列変数)を使う? »

インストールしたC4DやインストールされたPCの情報の取得

プラグインを配布して特定のユーザにだけ使用させる為に、プロテクトの解除キーを別に配布するわけですね。
そんな時、インストールされたC4Dの頭11桁のシリアル番号をC.O.F.F.E.E.で取得して、解除キーと比較する事でしょう。

残念ながら、ここでは11桁のシリアル番号を暗号化して解除キーを作成する説明ではありません。

C4DやPCの情報をC.O.F.F.E.E.で取得して表示するスクリプトの紹介です。

では、C4Dのバージョン、シリアルやユーザ名と住所、OSなどの情報を取得してコンソールに表示する全く実用的ではないスクリプトです。

/*
C4Dの情報をコンソールに表示
2009.5.28
*/

main(doc , op)
{
  var i;

  //データの取得
  var ver = GetC4DVersion();      //C4Dバージョンの取得
  var os = GeGetCurrentOS();      //OSの取得
  var cpu = GetCPUCount();        //CPUの個数の取得
  var byteoder = GeGetByteOrder();//バイトオーダの取得
  var eol = GeGetLineEnd();       //改行の取得
  //ユーザ情報の取得
  var userinfo = new(array , 6);
  for(i = 0 ; i < 6 ; i++)userinfo[i] = SysGetUserInfo(i);



  //データ表示
  println("--- data ---");


  //OSの表示
  if(os == GE_WIN)
    println("os : Windows");
  else if(os == GE_MAC)
      println("os : MacOS");


  //バイトオーダの表示
  if(byteoder == GE_MOTOROLA)
    println("ByteOrder : big endian");
  else if(byteoder == GE_INTEL)
      println("ByteOrder : little endian");


  //改行コードの表示
  if(sizeof(eol) == 2)
    println("LineEnd : CR/LF");
  else if(eol[0] == 10)
    println("LineEnd : LF");
      else println("LineEnd : CR");


  println("CPU COUNT : " , cpu);  //CPU数の表示


  println("Cinema 4D version : " , ver);//C4Dバージョンの表示


  //ユーザ情報の表示
  println("Serial Number : " , userinfo[0]);
  println("User Name : " , userinfo[1]);
  println("Company : " , userinfo[2]);
  println("Street : " , userinfo[3]);
  println("City : " , userinfo[4]);
  println("Country : " , userinfo[5]);


  println("--- end ---");
}

特にコメントする必要はないですね。

GetC4DVersion()で取得できるC4Dのバージョンは、実際の数値の1000倍の整数です。

SysGetUserInfo(number)で取得できるユーザ情報は、C4Dのインストール時にユーザが入力したデータなので、正確な情報で無い場合があります。

|

« 前回の新規ヌルオブジェクトをポイントやポリゴンに追加配置するユーザスクリプトに「オブジェクトモード」を追加する | トップページ | C4D COFFEEの配列変数をfor()で走査するとき、条件式にsizeof(配列変数)を使う? »