![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
c++で作ったツールにてファイルコピーを行おうとしています。
explorerからexeを直接実行すると成功しますが、phpからexeを起動するとコピーに失敗する問題が出ています。
GetLastErrorにてエラー理由を調べてみると、下記エラーでした。
0x00000005:アクセスが拒否されました。
権限絡みの問題かと考えているのですが知識不足で、コピー元ファイルへのアクセス権の問題なのか、コピー先フォルダへのアクセス権の問題なのか、どちらもあり得るのか、等々分かりません。
何かご存じの方は教えていただけないでしょうか。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
0x00000005はアクセス拒否ですね。
#1さんは0xC0000005と勘違いされているのでは?0xC0000005ならメモリアクセス違反です。で、PHP経由で実行するときにexeの実行アカウントが何になっているかチェックされてはどうでしょう?
エクスプローラでダブルクリック実行しているときは、特に設定しなければログインアカウントで実行されていますが、PHP経由で実行したときに、現在のアカウントで実行されているとは限らないからです。
回答ありがとうございます。
アカウント名を取得してみたところ、エクスプローラから実行時はwindowsログオン時に入力した通りのアカウント名でしたが、php実行時は"SYSTEM"なるアカウント名でした。
test programを作って確認したところ、コピー先のパスが"c:~"のような場合は正常終了し、IPアドレス等で指定するとそれが自端末であろうと失敗するようです。
してみると、「現在のアカウントの権限ではネットワーク上のマシンへのファイルコピーが許されない」というのが問題のミソかと思うのですが...
自端末はもちろん他端末にもコピーできるようにしなくてはいけないので...
セキュリティ的にNGな設定にでもしないことには実現できない気がしてきました。
NGな設定にすれば実現可能かすらも分かりませんけど。
ともあれ一歩前進したように思います。
ありがとうございます。
No.1
- 回答日時:
いってることの意味がまるでわかりませんが、
一般的にアクセス違反は NULLポインタアクセスなど
メモリ確保されていないポインタへのアクセス時に発生することが多かったと思います。
デバッガ等を使って
そのツール内でアクセスしているファイル名などの
ポインタ周りを見直すと直るかもしれませんね。
エクスプローラーで発生しないのはただの偶然だと思います。
回答ありがとうございます。
コーディング上のケアレスミスについては既にチェック済みのつもりですが、再三確認してみます。
コンパイルし直しても現象に変化が無く、アプリケーションエラーのような致命的動作とならないことから不正メモリアクセスによるものではないのではないかと考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 20:11
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- その他(クラウドサービス・オンラインストレージ) OneDriveファイルのコピー時に容量不足エラー 2 2022/11/27 14:06
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Windows 10 OpenFile(アクセスが拒否されました。5) 1 2022/09/14 14:36
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
pythonスクリプトを管理者権限...
-
VScodeのエラー解決法 Pythonの...
-
WESTERN DIGITAL製HDDのローレ...
-
VBSでバッチを実行できません。
-
exeファイルを実行するとコマン...
-
シェルで5分前の時間を取得したい
-
これってパソコンの最適化が完...
-
Excel(エクセル) VBA プロシー...
-
imacroで組んだマクロをバッチ...
-
powershellをバックグラウンド実行
-
「読み取りと実行」と「読み取...
-
Vba ShellObj.Run でアプリケー...
-
再起動が止まらない・・
-
CHKDSKユーティリティとは
-
Access の VBA 実行中に他の操...
-
コマンドプロンプトを管理者と...
-
Excelのセルの内容をコマンドプ...
-
[teraterm] waitコマンドで停止...
-
vbscriptを用いて他のVBSファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
バッチファイルの内容を表示さ...
-
「読み取りと実行」と「読み取...
-
VBscriptが起動しない?
-
[teraterm] waitコマンドで停止...
-
エクセル フォルダの画像を画...
-
Excel VBA ステップインが途中...
-
PDFファイルを開き、印刷し、閉...
-
バッチファイルで以下のような...
-
VScodeのエラー解決法 Pythonの...
-
VBScriptでコマンドプロンプト...
-
バッチファイルが不正終了して...
-
複数のbatファイルを自動実行し...
-
pythonスクリプトを管理者権限...
-
これってパソコンの最適化が完...
-
ネットワーク名が見つかりません
-
VBS実行時にコマンドプロンプト...
-
メッセージを他のPCに出したい
-
VB.NETでのDOSコマンドを実行に...
おすすめ情報