アプリ名(ランチャーなどに表示される名前)は普通、
リソースタイプ:'tAIN' リソースID:1000
に格納されている。
db = DmOpenDatabaseByTypeCreator (type, creator, mode);
などで、データベースを開いた直後に、
MemHandle resH; Char *resP; Char name[dmDBNameLength]; resH = DmGet1Resource (ainRsc, ainID); if (resH) { resP = (Char *)MemHandleLock (resH); if (resP != NULL) { // アプリ名(resP)を文字列nameにコピー // StrCopy (name, resP); MemHandleUnlock (resH); } DmReleaseResource (resH); }
と、こんな感じ(で良いと思う)。nameにアプリ名が格納される。
DmCloseDatabase (db);
を忘れずに。
ちなみに、
DmDatabaseInfo (cardNo, dbID, &name, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
で得られる"name"はデータベース名。
アプリケーションのリストを作成するなら、
SysCreateDataBaseList (type, creator, &dbCount, &dbIDs, lookupName);
で取得するのが簡単確実。
サンプル (アプリ名のリストを作成して、リストオブジェクト(listID)にセット)
SysDBListItemType *dbListIDsP; Boolean status; UInt16 dbCount; MemHandle dbIDs; Char **listArray ListPtr listP; status = SysCreateDataBaseList (sysFileTApplication, NULL, &dbCount, &dbIDs, true); if (status == true && dbCount > 0) { dbListIDsP = MemHandleLock (dbIDs); for (i = 0; i < dbCount; i ++) listArray[i] = dbListIDsP[i].name; listP = (ListPtr)GetObjectPtr (listID); LstSetListChoices (listP, listArray, dbCount); LstSetHeight (listP, dbCount); ... MemHandleUnlock (dbIDs); }
AND OR
アプリ名の格納場所
アプリ名(ランチャーなどに表示される名前)は普通、
に格納されている。
アプリ名の取得方法1
などで、データベースを開いた直後に、
と、こんな感じ(で良いと思う)。nameにアプリ名が格納される。
を忘れずに。
ちなみに、
で得られる"name"はデータベース名。
アプリ名の取得方法2
アプリケーションのリストを作成するなら、
で取得するのが簡単確実。
サンプル (アプリ名のリストを作成して、リストオブジェクト(listID)にセット)