Как войти в режим Windows Flip 3D в Windows Vista и выше? - PullRequest
13 голосов
/ 24 ноября 2011

Можно ли программно вызвать Flip 3D mode в Windows Vista над системами?

enter image description here

Это то же самое, что если вы нажмете вручную CTRL + WIN + TAB

1 Ответ

18 голосов
/ 24 ноября 2011

Объект Shell имеет метод WindowSwitcher, который может вызывать этот режим.

Вот пример кода Delphi:

uses
  ComObj;

procedure EnterWindowSwitcherMode;
var
  Shell: OleVariant;
begin
  try
    Shell := CreateOleObject('Shell.Application');
    Shell.WindowSwitcher;
  finally
    Shell := Unassigned;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Win32MajorVersion >= 6 then // are we at least on Windows Vista ?
  begin
    try
      EnterWindowSwitcherMode;
    except
      on E: Exception do
        ShowMessage(E.ClassName + ': ' + E.Message);
    end;
  end;
end;


Обновление:

Или, как упомянуто здесь Норберт Вильгельм , существует также объект IShellDispatch5интерфейс, который фактически вводит метод WindowSwitcher.Итак, вот еще одна версия того же ...

Следующий фрагмент кода требует модуля Shell32_TLB.pas, который вы можете создать в Delphi таким образом (обратите внимание, что у вас должна быть хотя бы Windows Vistaгде интерфейс IShellDispatch5 использовался в первый раз):

  • перейти в меню Компонент / Импорт компонента
  • продолжить с выбранного Импорт библиотеки типов
  • выберите Microsoft Shell Controls and Automation и завершите работу мастера

И код:

uses
  Shell32_TLB;

procedure EnterWindowSwitcherMode;
var
  // on Windows Vista and Windows 7 (at this time :)
  // is Shell declared as IShellDispatch5 object interface
  AShell: Shell;
begin
  try
    AShell := CoShell.Create;
    AShell.WindowSwitcher;
  finally
    AShell := nil;
  end;
end;
...