PROGRAM WINEX3;
{$MODE DELPHI}
USES Windows,Classes,SysUtils,ShellApi;
VAR StrList:TStringlist;
Function SearchWndCallback(dwWND:DWORD;liParam:LongInt):BOOL;StdCall;
Var arrChar: Array[0..255] Of Char;
Begin
Result:= False;
If GetClassName(dwWND,arrChar,255) <> 0
Then
Begin
If Pos('CabinetWClass',String(arrChar)) <> 0
Then StrList.Add(IntToStr(dwWND));
Result:= True;
End;
End;
Procedure MinAllWnds;
Begin
Keybd_Event(VK_LWIN,0,0,0);
Keybd_Event(Byte('M'),0,0,0);
Keybd_Event(Byte('M'),0,KEYEVENTF_KEYUP,0);
Keybd_Event(VK_LWIN,0,KEYEVENTF_KEYUP,0);
End;
Procedure StartEx;
Var strDir:String;R:TRect;
Begin
If DirectoryExists('I:\')
Then strDir:= 'I:\'
Else strDir:= 'D:\';
ShellExecute(0,Nil,'EXPLORER.EXE','SHELL:MyComputerFolder',Nil,SW_SHOW);
ShellExecute(0,Nil,PChar(strDir),Nil,Nil,SW_SHOW);
ShellExecute(0,Nil,PChar('C:\'),Nil,Nil,SW_SHOW);
Repeat
StrList.Clear;
EnumWindows(@SearchWndCallback,0);
Until StrList.Count >= 3;
SystemParametersInfo(SPI_GETWORKAREA,0,@R,0);
MoveWindow(StrToInt(StrList[0]),R.Left,R.Top,R.Right,R.Top+243,True);
MoveWindow(StrToInt(StrList[1]),R.Left,R.Top+243,
((R.Right-R.Left) Div 2),(R.Bottom-R.Top-243),True);
MoveWindow(StrToInt(StrList[2]),((R.Right-R.Left) Div 2),
R.Top+243,((R.Right-R.Left) Div 2),(R.Bottom-R.Top-243),True);
End;
BEGIN
StrList:= TStringlist.Create;
Try
MinAllWnds;
StartEx;
Finally
StrList.Free;
End;
END.