#contents *アプリ名の格納場所 *アプリ名の格納場所 [#g506083a] アプリ名(ランチャーなどに表示される名前)は普通、 -リソースタイプ:'tAIN'~ -リソースID:1000 に格納されている。 *アプリ名の取得方法1 *アプリ名の取得方法1 [#ve18157a] 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"はデータベース名。 *アプリ名の取得方法2 *アプリ名の取得方法2 [#p1b6f1d2] アプリケーションのリストを作成するなら、 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); } ~ RIGHT:カテゴリ : [[Palm>:Category/Palm]]
AND OR