Windows Media セットアップのセットアップ状態の検出
[このページWindows メディア プレーヤー SDK に関連付けられている機能は、レガシ機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は SDK ではなく MediaPlayerWindows メディア プレーヤー使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
次のコードは、Windows メディア プレーヤー再配布パッケージと共に使用できます。 インストールの状態は、次のサブキーの 下の InstallResult レジストリ エントリに格納されます。
HKEY_CURRENT_USER\Software\Microsoft\MediaPlayer\Setup
InstallResultレジストリ エントリの形式は次のとおりです。
Name | Type | 値 |
---|---|---|
InstallResult | REG_DWORD | インストールWindows メディア プレーヤー成功したかどうか、および再起動が必要かどうかを示す HRESULT。 |
呼び出し元のセットアップ アプリケーションに組み込むことができる C++ コードの例を次に示します。 このコードでは、コンポーネント再配布パッケージの Windows メディア プレーヤー Setup によって記述された HRESULT 値に基づいて、 変数と fRebootNeeded
変数を true または false に設定fSuccess
します。
#include <windows.h>
#include <stdio.h>
// If NS_S_REBOOT_REQUIRED is undefined, use 0xD2AF9.
#ifndef NS_S_REBOOT_REQUIRED
#define NS_S_REBOOT_REQUIRED 0xd2af9
#endif
int main( void )
{
HKEY hKey = NULL;
BOOL fSuccess = FALSE;
BOOL fRebootNeeded = FALSE;
if( ERROR_SUCCESS == RegOpenKeyExA(
HKEY_CURRENT_USER,
"Software\\Microsoft\\MediaPlayer\\Setup",
0, KEY_QUERY_VALUE, &hKey ))
{
char szResult[64];
DWORD dwResult = sizeof( szResult );
if( ERROR_SUCCESS == RegQueryValueExA(
hKey, "InstallResult", NULL, NULL,
(LPBYTE)szResult, &dwResult ) )
{
sscanf_s( szResult, "%x", &dwResult );
fSuccess = SUCCEEDED( dwResult );
fRebootNeeded = ( NS_S_REBOOT_REQUIRED == dwResult );
}
RegCloseKey( hKey );
}
if( fSuccess )
{
printf( "Setup Succeeded..." );
if( fRebootNeeded )
printf( "A restart IS required...\n" );
else
printf( "A restart IS NOT required...\n" );
}
else
{
printf( "Setup Failed..." );
if( fRebootNeeded )
printf( "A restart IS required...\n" );
else
printf( "A restart IS NOT required...\n" );
}
return 0;
}
関連トピック
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示