2

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run起動時にアプリケーションを実行するために、の下にレジストリ値を設定しようとしています。次の関数はを返しTRUEていますが、値が表示されていません。

BOOL InstallRunOnStartup(const char* applicationName)
{
  HKEY key;
  char filePath[MAX_PATH];
  long result;
  BOOL ret = FALSE;

  result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0L, KEY_ALL_ACCESS, &key); 
  if (result == ERROR_SUCCESS)
  {
    if (GetModuleFileNameA(NULL, filePath, MAX_PATH) != 0)
      if (RegSetValueEx(key, applicationName, 0, REG_SZ, filePath, strlen(filePath) + 1) == ERROR_SUCCESS)
        ret = TRUE;
    RegCloseKey(key);
  }
  return ret;
}

どんな助けでも大歓迎です。

4

1 に答える 1

3

プログラムが32ビットで64ビットOSで実行されている場合、HKLM\SOFTWAREへのアクセスはHKLM\SOFTWARE\Wow6432Nodeにリダイレクトされます。これに関する詳細はMSDNにあります:レジストリ内の32ビットおよび64ビットのアプリケーションデータ

于 2013-02-11T18:17:54.520 に答える