| エクスプローラで表示されるアイコンを実イメージに 難易度‥1 便利度‥1 | |
| キー | HKEY_CLASSES_ROOT\Paint.Picture\DefaultIcon |
| 値 | "C:\WINDOWS\SYSTEM\cool.dll,41" → "%1" |
| これで固定だったビットマップのアイコンが、実際のイメージを縮小したものになります。ただしビットマップファイルの多いフォルダーへのアクセス速度が遅くなります。特にFDの場合は待ち切れないほど遅くなりますので注意して下さい。 | |
| 使用者名の変更 難易度‥1 便利度‥2 | |
| キー | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion |
| 値 | "RegisteredOwner"="旧名" → "RegisteredOwner"="新名" |
| コントロールパネル・システム・情報・使用者名がこれで変更されます。 | |
| プロダクトIDを調べる 難易度‥1 便利度‥2 | |
| キー | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion |
| 値 | "ProductId"="????????????" |
| 使用者名の変更とほぼ同じですが、プロダクトIDを変更する必然性はなく、書類にプロダクトIDを記入する場合などにCDがなくてもここを見ればわかる、ということです。もっとも、それだけのことならコントロールパネル・システム・情報・システムを見ても同じですが・・・。なお、PLUSがインストールされていれば "Plus! ProductId" にPLUSのプロダクトIDが保持されています。 | |
| デスクトップのアイコン非表示 難易度‥3 便利度‥1 | |
| キー | HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer |
| 値 | "NoDesktop" 1(DWORD)を追加 |
| これによりデスクトップのアイコンを非表示にできます。綺麗な壁紙を邪魔ものなしで見たい場合にはいいかも知れません。一部の書面には、これは危険なので行わないようにと注意書きがあります。私が試した限りでは何ら問題はありませんでしたが、危険を冒してまで行うほどの効果はありません。余談ですが、デスクトップのアイコンを非表示にしたら、パワートーイのデスクトップアイコンを常駐させておくと便利です。 | |
| タイムラグを無くす 難易度‥3 便利度‥2 | |
| キー | HKEY_CURRENT_USER\ControlPanel\Desktop |
| 値 | "MenuShowDelay" 数値(DWORD) デフォルト400を追加 |
| 実はWindowsはこの数値によりスタートメニュー等の動きをただ遅らせているのです。ただあまり速くすると返って使い辛くなるので程良い数値を探して見て下さい。もちろん数値が小さいほど速くなります。 | |
| ペイントブラシの使用ファイルの履歴消去 難易度‥2 便利度‥1 | |
| キー | HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Paint\Recent File List |
| 値 | 履歴ファイルの名前を削除 |
| アプリケーションファイルの多くは履歴を残します。普段は便利ですが、何らかの理由により消したい場合もあります。ほとんどはINIファイルに書かれるのですが、ペイントブラシはレジストリに書かれます。従って、履歴の消去をするにはレジストリをさわる必要があります。 | |
| 起動時の自動実行 難易度‥2 便利度‥3 | |
| キー | HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\run |
| 値 | 自動実行するプログラム名 |
| スタートアップにもなくWIN.INIにもないのに起動時に自動実行されるプログラムが95にはあります。ここに自動実行するプログラム名が書かれている場合です。スタートアップを利用しても同様の結果が得られますが、ショートカットが不要であることと、レジストリをさわらない限り変更されないといった利点があります。似たものに、次回起動時1回のみ実行される [KEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] があり、インストーラーなどはしばしばここを利用しています。 | |
#include <windows.h>
#include <stdio.h>
int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs, int nWinMode) {
HKEY hKeyResult = 0;
long lRtn;
char ErrMsg[64];
lRtn = RegOpenKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\Recent File List",
0, KEY_ALL_ACCESS, &hKeyResult);
if (lRtn != ERROR_SUCCESS) {
sprintf(ErrMsg, "エラーが発生しました\n戻り値は%ld\n", lRtn);
MessageBox( (HWND)NULL , ErrMsg, "RegOpenKeyEx" , MB_OK ) ;
return 1;
}
RegDeleteValue(hKeyResult, "File1");
RegDeleteValue(hKeyResult, "File2");
RegDeleteValue(hKeyResult, "File3");
RegDeleteValue(hKeyResult, "File4");
RegCloseKey(hKeyResult);
return 0;
}
|
#include <windows.h>
#include <stdio.h>
int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs, int nWinMode) {
HKEY hKeyResult = 0;
long lRtn;
char ErrMsg[64];
char PathCacheData[4] = {(char)0x40, (char)0x00, (char)0x00, (char)0x00};
char NameCacheData[4] = {(char)0xA9, (char)0x0A, (char)0x00, (char)0x00};
long PType, NType;
long PReadSize = 64L, NReadSize = 64L;
char PathCacheBuff[64];
char NameCacheBuff[64];
int Hantei;
char *Tytle = "初期Win95 レジストリ情報修正ツール(サーバー)";
lRtn = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\FS Templates\\Server",
0, KEY_ALL_ACCESS, &hKeyResult);
if (lRtn != ERROR_SUCCESS) {
sprintf(ErrMsg, "エラーが発生しました\n戻り値は%ld\n", lRtn);
MessageBox( (HWND)NULL , ErrMsg, "RegOpenKeyEx" , MB_OK ) ;
return 1;
}
lRtn = RegQueryValueEx(hKeyResult, "PathCache", 0, &PType,
(char *)PathCacheBuff, &PReadSize);
if (lRtn != ERROR_SUCCESS) {
sprintf(ErrMsg, "エラーが発生しました\n戻り値は%ld\n", lRtn);
MessageBox( (HWND)NULL , ErrMsg, "RegQueryValue" , MB_OK ) ;
return 1;
}
lRtn = RegQueryValueEx(hKeyResult, "NameCache", 0, &NType,
(char *)NameCacheBuff, &NReadSize);
if (lRtn != ERROR_SUCCESS) {
sprintf(ErrMsg, "エラーが発生しました\n戻り値は%ld\n", lRtn);
MessageBox( (HWND)NULL , ErrMsg, "RegQueryValue" , MB_OK ) ;
return 1;
}
if (PReadSize != 4L || NReadSize != 4L || PType != REG_BINARY || NType != REG_BINARY) {
Hantei = 0;
} else if (!(memcmp((char *)PathCacheData, PathCacheBuff, 4)) &&
!(memcmp((char *)NameCacheData, NameCacheBuff, 4))) {
Hantei = 1;
} else if (!(memcmp((char *)PathCacheData, NameCacheBuff, 4)) &&
!(memcmp((char *)NameCacheData, PathCacheBuff, 4))) {
Hantei = 2;
} else {
Hantei = 0;
}
if (Hantei == 0) {
if (IDOK == MessageBox( (HWND)NULL , "ユーザー独自の設定になっています\n変更しますか",
Tytle , MB_OKCANCEL ))
Hantei = 2;
}
if (Hantei == 1) {
MessageBox( (HWND)NULL , "既に修正済みです", Tytle , MB_OK ) ;
}
if (Hantei == 2) {
lRtn = RegSetValueEx(hKeyResult, "PathCache", 0, REG_BINARY, (char *)PathCacheData, 4L);
if (lRtn != ERROR_SUCCESS) {
sprintf(ErrMsg, "エラーが発生しました\n戻り値は%ld\n", lRtn);
MessageBox( (HWND)NULL , ErrMsg, "RegSetValue" , MB_OK ) ;
return 1;
}
lRtn = RegSetValueEx(hKeyResult, "NameCache", 0, REG_BINARY, (char *)NameCacheData, 4L);
if (lRtn != ERROR_SUCCESS) {
sprintf(ErrMsg, "エラーが発生しました\n戻り値は%ld\n", lRtn);
MessageBox( (HWND)NULL , ErrMsg, "RegSetValue" , MB_OK ) ;
return 1;
}
MessageBox( (HWND)NULL , "レジストリ情報を修正しました", Tytle, MB_OK ) ;
}
RegCloseKey(hKeyResult);
return 0;
}
|