問題:我的C++程序在重新啓動後無法寫入文件,因爲它被拒絕訪問。登錄時由Windows自動啓動時的C++文件權限
程序將被添加到註冊表中的以下位置,從而使其能夠在啓動期間:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
的代碼內的下列剪斷類似於一個引起該問題:
ofstream myfile;
myfile.open ("example.txt", ios:app);
myfile << "Writing this to a file.\n";
myfile.close();
因爲這段代碼在一個循環內運行,文件被重複打開和關閉,但是當計算機重新啓動時,程序似乎失去了對它的文件許可,而.open表示它獲得了Acess Denied錯誤文件。
這裏有什麼問題?如果程序在沒有管理員權限的情況下啓動時運行得如何,但在Windows啓動時沒有運行該程序?
壞主意。將自己已知的bug代碼作爲「SYSTEM」運行是一種安全風險。 – MSalters 2015-02-23 08:33:31
我同意,從安全的角度來看,這不是一個完美的解決方案,但如果它工作並沒有其他選擇,它可以謹慎使用 – VolAnd 2015-02-23 08:44:16