Internet Explorer で使用する MFC ActiveX コントロールを開発しました。このコントロールは、ハード ドライブにファイルを作成します。コントロールを Windows 7 (32 ビット) にインストールしました。管理者として IE を実行すると、コントロールは期待どおりにファイルを作成します。しかし、UAC をオンにして通常のユーザーとして IE を実行すると、コントロールはファイルを作成しません。
以下は、ファイルを作成するコードです。
int WriteDataToFile()
{
CString Data;
int DataLength;
CString FilePath;
std::ofstream File;
// Set Data, DataLength and FilePath
try
{
File.open(FilePath, std::ios::binary | std::ios::out);
if (TRUE == File.fail())
{
return ERROR;
}
File.write((const char *)Data.GetBuffer(), DataLength);
if (TRUE == File.bad())
{
File.close();
return ERROR;
}
File.close();
}
catch (...)
{
return ERROR;
}
return SUCCESS;
}
SUCCESS
プログラムが管理者または通常のユーザーとして実行されている場合、関数は戻ります。プログラムが通常のユーザー用のファイルを作成しないのはなぜですか?
あなたが提供できるどんな助けにも感謝します。