Is it possible to trigger the Flip 3D mode
on Windows Vista above systems programmatically?
It is the same as if you manually press CTRL + WIN + TAB
A feature of the earlier Aero interface in Windows that displayed the desktop and open apps in 3D. Pressing Windows key + Tab key invoked Flip 3D, and continually pressing Windows-Tab rotated the windows from back to front.
drag the 3D view with the CTRL key held down. In shaded views only, you can rotate about the viewer position (as opposed to rotating about the view centre) by holding down the ALT key (as well as the CTRL key) whilst dragging. use the rotate buttons . Hold the SHIFT key down to reverse the direction of rotation.
Keyboard shortcuts to flip your screen in WindowsCTRL + ALT + Up Arrow for landscape. CTRL + ALT + Right Arrow for portrait. CTRL + ALT + Down Arrow for reverse-landscape. CTRL + ALT + Left Arrow for reverse-portrait.
The Shell
object has the WindowSwitcher
method which can invoke this mode.
Here is the Delphi code example:
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;
Update:
Or as Norbert Willhelm mentioned here, there is also IShellDispatch5
object interface which in fact introduces the WindowSwitcher
method. So here's another version of the same...
The following piece of code requires the Shell32_TLB.pas unit, which you can in Delphi create this way (note, that you must have at least Windows Vista where the IShellDispatch5
interface was used the first time):
And the code:
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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With