これは確かに奇妙なものです。
コマンドプロンプトウィンドウを直接開くと(スタートでcmdを検索し、右クリック>ここでコマンドウィンドウを開く、batファイル内でcmdなど)、入力したすべてのコマンドが完全に正常に実行されます。
system("cmd");
C++ アプリケーション (など)内からコマンド プロンプト ウィンドウを開くと、入力QProcess::startDetached("cmd");
したコマンドでエラーがスローされます。
私のアプリから開いたコマンドで機能しないいくつかのコマンドを次に示します。
vssadmin delete shadows /all
vssadmin list shadows
wmic
shadowcopy
など...私はいたるところClass not registered
でInitialization failure
エラーを受け取ります。シャドウ コピーに関係することはまったく機能していません。しかし、繰り返しになりますが、奇妙なことに、cmd が伝統的に (プログラムからではなく) 開かれた場合、これらの同じコマンドは完全に正常に機能します。cmd の両方のインスタンスに管理者権限があります。
私の質問は、cmd を開く方法が、一部のコマンドが機能するかどうかに影響するのはなぜですか? 私が見ることができるすべては、違いはないはずだと言っています。