如何在Windows Vista及更高版本上进入Windows Flip 3D模式?

时间:2011-11-24 11:04:50

标签: windows delphi winapi desktop windows-shell

是否可以通过编程方式在Windows Vista上面的系统上触发Flip 3D mode

enter image description here

这与手动按 CTRL + WIN + TAB

相同

1 个答案:

答案 0 :(得分:18)

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;


更新

或者如此处提到的Norbert Willhelm,还有IShellDispatch5对象接口实际上引入了WindowSwitcher方法。所以这是另一个版本的相同......

下面的代码需要Shell32_TLB.pas单元,你可以在Delphi中创建这种方式(注意,你必须至少拥有第一次使用IShellDispatch5接口的Windows Vista): / p>

  • 转到菜单组件/导入组件
  • 继续选择导入类型库
  • 选择 Microsoft Shell控件和自动化并完成向导

代码:

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;