WebBrowserで表示するエクスプローラーでグループ表示化


新保  2023-11-01 04:34:46  No: 151206  IP: [192.*.*.*]

教えてください。
Windows10のエクスプローラーで表示の最近詳細表示画面でフォルダ内を見るとアイコンが「今日() ,今週に入って(機能は含めず)
という横線でアイコンが分断表示されるようになり、これはエクスプローラーの
表示→グループ化→なし で無効化できましたが、
我がDelphi6 のWebbrowserで作成したエクスプローラは、この横棒を消せません。
なにか方法がありましたら教えて頂きたいです。
しかしMicrosoftはなんでこんなことをするんですか理解できないです。
フォルダ内のアイコンが順番に並んでいるのが当たり前だと思うのですが。



編集 削除
take  2023-11-01 23:40:45  No: 151207  IP: [192.*.*.*]

Delphiの問題ではなくWindowsの問題のように思いますが
まずエクスプローラーに関してはダウンロードフォルダが頻繁にグループ表示に戻ります
Microsoftが推奨してるのかな?
そして設定でグループ化無効にもできますがこのフォルダ設定は5,000箇所?まで対応なので
それ以降はグループ表示を解除できません
レジストリを触れば増やせます

さて問題のWebbrowserでグループ化解除ですが
他のブラウザで解除してもブラウザ毎にグループ化の設定を覚えているのでグループ化の設定が引き継がれません
そしてWebbrowserはグループ化を想定していないのでその設定のON/OFFが出来ません
レジストリにもその設定項目が見つかりません

Webbrowserでどのような操作を行っているのかがわかりませんが
代替方法があれば移行も考えないと行けないかも

編集 削除
AAAAA  2023-11-02 08:33:46  No: 151208  IP: [192.*.*.*]

Windows10 Delphi11 
   WebBrowser1.Navigate('C:\'); で表示したやつだよね?

ポップアップメニューの   グループで表示(P)   の中に なし(N) が あるけど?

編集 削除
mam  2023-11-06 03:13:12  No: 151213  IP: [192.*.*.*]

かなり強引にできないことはないみたいですが、強引すぎますよね。

uses shlobj;

procedure TForm1.Button1Click(Sender: TObject);
var pw:PWideChar;
    path:string;
begin
  getmem(pw,1024);
  try
    ZeroMemory(pw,1024);
    SHGetSpecialFolderPath(handle,pw,CSIDL_PROFILE,false);
    path:=pw;
  finally
    freemem(pw);
  end;
  WebBrowser1.Navigate(path+'\Downloads');
end;

procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
var p:TPoint;
    i:Integer;
begin
  p:=WebBrowser1.ClientToScreen(Point(0,0));
  SetCursorPos(p.X+1,p.Y+80);
  mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
  mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);

  keybd_event(ord('V'), 0, 0, 0);
  keybd_event(ord('V'), 0, KEYEVENTF_KEYUP, 0);
  keybd_event(ord('D'), 0, 0, 0);
  keybd_event(ord('D'), 0, KEYEVENTF_KEYUP, 0);

  mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
  mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);

  keybd_event(ord('P'), 0, 0, 0);
  keybd_event(ord('P'), 0, KEYEVENTF_KEYUP, 0);
  keybd_event(ord('N'), 0, 0, 0);
  keybd_event(ord('N'), 0, KEYEVENTF_KEYUP, 0);
end;

編集 削除