はじめまして。
現在、SHFileOperationを使用してファイルの削除処理を行っています。
ある特定の端末のみ削除確認メッセージが表示されず
即削除されてしまう現象が発生しています。
該当端末 Windows8.1 (※8.1updateかどうかは不明)
開発環境 Delphi2007
ソースは次の通りです。
function AllowUndo(AHandle: Thandle; ATarget: string): Boolean;
var
foStruct: TSHFileOpStruct;
begin
with foStruct do
begin
wnd := AHandle;
wFunc := FO_DELETE;
pFrom := PChar(ATarget+#0);
pTo := PChar(#0);
fFlags := FOF_ALLOWUNDO;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Result := (SHFileOperation(foStruct) = 0);
end;
通常は次のようなメッセージが表示されると思っているのですが
ソースを含め何か勘違いをしているのでしょうか。
■ローカルドライブのデータが対象の場合
「ごみ箱に移動しますか?」
■ネットワークドライブ等が対象の場合
「完全に削除しますか?」
他の端末ではWindowsXP〜Windows10まで問題なく動作しているため
現象も再現できず何かヒントはないかと質問させていただきました。
よろしくお願い致します。
ちなみに、その"特定の端末"の「ごみ箱」のプロパティで、
「削除の確認メッセージを表示する」には、チェックが付いていますか?
igy さん
まさにご指摘の通りでした。
このような設定があったとは知らずお恥ずかしい限りです。
"ごみ箱に入れずに削除する"という設定もあるようですし
自前でメッセージの処理を行ったほうが確実かもしれませんね。
ありがとうございました。
ツイート | ![]() |