Vistaで動作が違います入力中の回答があります。ページを離れますか?※ページを離れると、回答が消えてしまいますページを離れるA回答を続ける入力中のお礼があります。FileCopyOperationをWindows2000で使っていたのですが、Vistaで動作させたら、若干動作が違います。コピー元のファイルがない場合、2000では、「ファイルがコピーできません・・・」というエラーメッセージが表示されるだけですが、Vistaでは、「・・・確認してから、操作を再実行してください」というメッセージで、「再試行」、「キャンセル」という二つのボタンから選べるようになっています。(再試行を選択しても何もおきません)従来のように、単なるエラーメッセージにするようにできないでしょうか。通報するこの質問への回答は締め切られました。機能が追加されるのはかまわないと思いますが。機能追加じゃないのかな・・・#今までの「OK」ボタンの機能(コピーは取りやめ)は#新しいメッセージでは、「キャンセル」ボタンで置き換えられますよね・・・#今までは「あきらめるしかなかった」のに、「再試行もできる」様になったのでしょうから。回答ありがとうございます。「再試行」を押してもコピーされません。10:52SHFileOperation(FileCopyOperation)について少し補足です。#3のサンプルコードをみればわかると思いますがSHFileOperationのpFromの終端はNULL文字が2文字必要です。(複数ファイル指定のときNULL文字が区切り文字でもあるため、終端にはNULL文字が2文字必要になります。「ファイルがコピーできません・・・」と表示されることがあります。pFromの終端にNULL文字(vbだとChr(0)かな?)を2つ付けてください。Chr(0)といった記述のようです。(もしそうしていなかったのなら旧環境では0で文字列初期化されていた為たまたま動いていただけです。vb5だとChr(0)を付けなくても動いていたようです。)またMSDNによると相対パスの指定は未定義となっているようです。フルパスを書くようにしてください。VBで検索すると同じよう質問がたくさんありました。回答ありがとうございます。13:20同じWindowsの名前がついているからといってメジャーバージョンの違う2つのOSに100%互換を期待するべきではありません。他にもIMEに関する関数もVistaとXpでは挙動が違うものがたくさんあります。>「再試行」を押してもコピーされません。それはコピー元のファイルが無いからでは?作ってもコピーされませんか?ためしにコードを書いてVistaで実行してみましたがファイルを作成して再試行ボタンを押すと動きました。(下記VC++のコード)FileCopyOperationと書いてあるということはVBか何かで呼び出してますよね?実際はshell32.dllの中にあるSHFileOperationA(Unicodeの場合はSHFileOperationW)が呼ばれています。>設計ミスではないですか?これが設計ミスなのだとするとWindows2000に対するWindowsXpも設計ミスということになります。2000とXpだって、WndProcの挙動が違ったりします。OSのメジャーバージョンアップの過程ではWindowsに限らず起きる話です。Vista対応は各社(各人)が苦しめられていると思いますが他のOSと比べればWindowsの旧バージョンとの互換性は相当高い部類です。(それがWindowsが普及している一つの理由ですし。)この件に限れば単にファイルの有無を前もってチェックしてなければ共通のダイアログを出せば解決する話だと思います。回答ありがとうございます。それはコピー元のファイルが無いからでは?作ってもコピーされませんか?コピーされません。なければ共通のダイアログを出せば解決する話だと思います。18:35そりゃまぁAPIはDLLのバージョンに依存するわけですから、OS環境が変われば(Shell32.DLLのバージョンも同様に変わるわけで)関数の仕様も変わります。VistaのShell32.DLLに古いバージョンの方式で動作するような方式がわざわざ設けられているとは思えませんので、APIは環境依存するのでこれが仕様ですで諦めるしかないかと思います。再頒布は許可されていないようですから、問題があるかもしれません。回答ありがとうございます。キャンセル」という二つのボタンになるというのは、設計ミスではないですか?機能が追加されるのはかまわないと思いますが。」に関するQ&A:ウィンドウズXP以上のOSを無料で入手する方法。ネットワーク環境でプリンターが動作しません。Tomcatをインストール後ブラウザで動作確認が出来ない。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。