|
お手数かけてすみません。
一応こちらではうまく動いてるのですけど、もっとちゃんとテストして、とい
うか、Aspellを他のフォルダにインストールしてテストしてみます。
あと、
> Aspell.exeの場所は、「HKEY_LOCAL_MACHINE\SOFTWARE\Aspell」では無くて、
>
> 「HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Aspell」でした。
一応その点は僕も認識出来てて、64bit版ではRegOpenKeyExする時の
パラメータにKEY_WOW64_32KEYってのを指定してて、テストして通ってはいた所
でした。
(むしろ、32bit版Windows上でテストしてない)
下のような処理をしてたつもりではありますけども、これがダメなのやら?。
もうちょっと調べます。
{
HKEY hkey;
if( RegOpenKeyExA( HKEY_LOCAL_MACHINE, "SOFTWARE\\Aspell\\Path", 0
#ifdef _WIN64
, KEY_READ | KEY_WOW64_32KEY
#else
, KEY_READ
#endif
, &hkey ) == ERROR_SUCCESS ) {
DWORD dwType;
DWORD cbData = sizeof(szAspellPath);
LONG nRet = RegQueryValueExA( hkey, NULL, NULL, &dwType, (BYT
E*)szAspellPath, &cbData );
RegCloseKey( hkey );
if( nRet == ERROR_SUCCESS ) {
WIN32_FIND_DATA findbuf;
HANDLE hfind = FindFirstFile( szAspellPath, &findbuf );
if( hfind != INVALID_HANDLE_VALUE ) {
FindClose( hfind );
if( (findbuf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTOR
Y) == 0 ) {
return TRUE;
}
}
}
}
}
|
|