Feeds:
文章
留言

Archive for 十一月 24th, 2005

Borland C++ Builder 提供一個相當方便的 TRegister VCL 元件,方便開發者讀寫系統登錄檔,這個元件的功能比 VB 提供的 RegXXX 系列的函數功能強的多,使用前必須先引入 #include <Registry.hpp> 才能使用 TRegister ,下面是的程式範例是讀取登錄檔中的 Run 和 Runonce 紀錄,透過 callback 方式顯示資料。
 

// callback
typedef void (*EventListRunValues)(const char* key, const char* value);
typedef void (*EventListRunOnceValues)(const char* key, const char* value);
 
/* 列舉系統開機自動執行(每次)
 *
 * 參數:
 *   EventListRunValues: callback 函數,第一個參數為 key 名稱,第二個參數為 key 的值
 *
 * 備註:開機自動執行的 Key
 *   HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
 */
void listRunKeys(EventListRunValues callback){
  AnsiString S;
  TRegistry *Registry = new TRegistry();
  TStringList* itemSet = new TStringList();
  try{
    Registry->RootKey = HKEY_CURRENT_USER;
    Registry->OpenKey("Software\Microsoft\Windows\CurrentVersion\Run", false);
    Registry->GetValueNames(itemSet);

    for(int i=0; i<itemSet->Count; ++i){
       S = Registry->ReadString(itemSet->Strings[i]);
        callback(itemSet->Strings[i].c_str(), S.c_str());
    }
  }__finally
  {
    delete itemSet;
    delete Registry;
  }
}
/* 列舉系統開機自動執行(一次)
 *
 * 參數:
 *   EventListRunValues: callback 函數,第一個參數為 key 名稱,第二個參數為 key 的值
 *
 * 備註:開機自動執行的 Key
 *   HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunonce
 */
void listRunOncesKeys(EventListRunOnceValues callback){
  AnsiString S;
  TRegistry *Registry = new TRegistry();
  TStringList* itemSet = new TStringList();
  try{
    Registry->RootKey = HKEY_CURRENT_USER;
    Registry->OpenKey("Software\Microsoft\Windows\CurrentVersion\Runonce", false);
    Registry->GetValueNames(itemSet);

    for(int i=0; i<itemSet->Count; ++i){
       S = Registry->ReadString(itemSet->Strings[i]);
        callback(itemSet->Strings[i].c_str(), S.c_str());
    }
  }__finally
  {
    delete itemSet;
    delete Registry;
  }
}
 
 

Read Full Post »

雖然這個工具的頁面上說明不支援 Windows 2000,但是我將該工具上安裝在 Windows 2000 依然可以運作,有興趣的人可以下載安裝試試看。可以方便你分析網頁結構、便於除錯。
 

Read Full Post »

粉有趣的 photoshop 教學…

一定要開音響啊…. 粉好笑的配音
請點選下面的超連結
 
 
 

Read Full Post »