Windowsのレジストリからキーを読み込む

そういえばC言語Windowsレジストリからキーを読み出すのが今週末の宿題になってたんだったと思い出しサンプルコードを作成。


#include <stdio.h>
#include "windows.h"

int main(int argc, char* argv[])
{
HKEY h;
DWORD n;
char s[1024];
n = sizeof s;

if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\Wmi", 0,
KEY_READ, &h) != ERROR_SUCCESS)
{
strcpy(s, "レジストリキーのオープンに失敗しました");
} else {
if (RegQueryValueExA(h, "Description", NULL, NULL, (LPBYTE)s, &n) != ERROR_SUCCESS) {
strcpy(s, "レジストリの値の取得に失敗しました");
}
RegCloseKey(h);
}

printf("%s\n", s);
return 0;
}

(参考)
RegOpenKeyEx
RegQueryValueEx


・・しかしサーバ屋の現場に立てば、このくらいのことができればまるで神秘の秘法を知っているかの如き扱いをしかも結構良い確率で受けてしまうのはほんとにちょろいですねというか最近はマジでC言語使えるプログラマ人口少ないんですねというかなんというか、張り合いが無くてさびしい。重宝はされるんだけど。