都道府県穴埋めゲーム

ファイル(もしくはフォルダ)を一つ選択してごみ箱に捨てるとき、「いいえ」を押したら別の処理をさせようとしているのですが、作ってみた関数だと上手くいきません。

どういうわけか常に 0 が返ってきます。


---------------------------------
Public Function FileToDust(FName As String) As Long
'ファイルをごみ箱へ送る
'FName --- ファイル、フォルダ名を入れる文字列変数

  Dim FOS As SHFILEOPSTRUCT

  With FOS
    .hWnd = 0
    .wFunc = FO_DELETE
    .pFrom = FName
    .fFlags = FOF_ALLOWUNDO
  End With

  FileToDust = SHFileOperation(FOS)

End Function
---------------------------------------

どこが悪いんでしょうか。本来なら、処理が中断されれば 0 以外が返ってくるらしいのですが……


0 が返ってきたとき成功したと思って前回の質問をすぐに打ち切ってしまったので、もう一度質問させていただきます。

前回の質問
http://oshiete1.goo.ne.jp/kotaeru.php3?q=466239


よろしくお願いします。

----------------
開発環境
VB6.0SP5
WinME

A 回答 (3件)

参考URLでいかがでしょうか?



ちなみに、SHFileOperationの戻り値はSHFileOperation自身の処理の
成功か失敗かの戻り値なのでキャンセルフラグとしては判定出来ません。

○コピーがキャンセルされたかどうか判定する
http://vbvbvb.com/jp/gtips/0951/gSHFileOperation …

参考URL:http://vbvbvb.com/jp/gtips/0951/gSHFileOperation …
    • good
    • 0
この回答へのお礼

>ちなみに、SHFileOperationの戻り値はSHFileOperation自身の処理の
>成功か失敗かの戻り値なのでキャンセルフラグとしては判定出来ません。

勘違いしてたみたいです。

ありがとうございます。
成功しました。

お礼日時:2003/02/07 15:02

if SHFileOperation(FOS) then


FileToDust = 0
else
FileToDust =1
end if

では ダメなのかな?

この回答への補足

付け足してみましたが、「はい」「いいえ」のどちらを押しても今度は常に 1 が返ってきます。

……どうなっているんでしょうか。サンプルから必要な部分だけを取り出してほとんど変えてないんですが……

補足日時:2003/02/07 14:05
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2003/02/07 15:02

FNameにはどの様なパラメータを入れていますか?


文字列の最後には"0"(NULL)が2つ必要になります。

この回答への補足

FNameには、ファイル、もしくはフォルダのフルパスを入れています。
それでは、駄目なんですか? 一応、削除はされているんですが……

補足日時:2003/02/07 14:01
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2003/02/07 15:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!