| 1 |
UNIT Unit1; |
| 2 |
INTERFACE |
| 3 |
USES |
| 4 |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
| 5 |
Dialogs, StdCtrls, CrossEdit, Math, ExtCtrls; |
| 6 |
|
| 7 |
TYPE |
| 8 |
TForm1 = Class(TForm) |
| 9 |
grp_center: TGroupBox; |
| 10 |
group_setxy: TGroupBox; |
| 11 |
btn_center: TButton; |
| 12 |
edit_x: TCrossEdit; |
| 13 |
edit_y: TCrossEdit; |
| 14 |
btn_setxy: TButton; |
| 15 |
group_black: TGroupBox; |
| 16 |
btn_black: TButton; |
| 17 |
timer_check: TTimer; |
| 18 |
PROCEDURE timer_checkTimer(Sender: TObject); |
| 19 |
PROCEDURE btn_blackClick(Sender: TObject); |
| 20 |
PROCEDURE btn_setxyClick(Sender: TObject); |
| 21 |
PROCEDURE FormCreate(Sender: TObject); |
| 22 |
PROCEDURE btn_centerClick(Sender: TObject); |
| 23 |
PROCEDURE Button1Click(Sender: TObject); |
| 24 |
PRIVATE |
| 25 |
PUBLIC |
| 26 |
END; |
| 27 |
|
| 28 |
VAR |
| 29 |
Form1: TForm1; |
| 30 |
|
| 31 |
IMPLEMENTATION |
| 32 |
USES Unit2; |
| 33 |
{$R *.dfm} |
| 34 |
VAR |
| 35 |
ONIHandle:LongWord; |
| 36 |
|
| 37 |
PROCEDURE TForm1.Button1Click(Sender: TObject); |
| 38 |
BEGIN |
| 39 |
ONIHandle:=FindWindow(PChar('ONI '),PChar('ONI ')); |
| 40 |
Form1.Caption:=IntToStr(ONIHandle); |
| 41 |
END; |
| 42 |
|
| 43 |
PROCEDURE TForm1.btn_centerClick(Sender: TObject); |
| 44 |
VAR |
| 45 |
Handle,NewX,NewY:LongWord; |
| 46 |
Screen,Cur:TRect; |
| 47 |
ScreenWidth,ScreenHeight,Width,Height:LongWord; |
| 48 |
BEGIN |
| 49 |
Handle:=FindWindow(PChar('ONI '),PChar('ONI ')); |
| 50 |
IF Handle>0 THEN BEGIN |
| 51 |
GetWindowRect(Handle,Cur); |
| 52 |
GetWindowRect(GetDesktopWindow,Screen); |
| 53 |
ScreenWidth:=Screen.Right-Screen.Left; |
| 54 |
ScreenHeight:=Screen.Bottom-Screen.Top; |
| 55 |
Width:=Cur.Right-Cur.Left; |
| 56 |
Height:=Cur.Bottom-Cur.Top; |
| 57 |
IF (Width<ScreenWidth) AND (Height<ScreenHeight) THEN BEGIN |
| 58 |
NewX:=(ScreenWidth DIV 2)-(Width DIV 2); |
| 59 |
NewY:=(ScreenHeight DIV 2)-(Height DIV 2); |
| 60 |
IF NOT SetWindowPos(Handle,0,NewX,NewY,0,0,SWP_NOSIZE OR SWP_NOACTIVATE OR SWP_NOZORDER) THEN |
| 61 |
ShowMessage('Couldn''t set the position of ONIs window!'); |
| 62 |
END ELSE ShowMessage('ONIs window is at fullscreen!'); |
| 63 |
END ELSE ShowMessage('Couldn''t find ONIs window!'); |
| 64 |
END; |
| 65 |
|
| 66 |
PROCEDURE TForm1.FormCreate(Sender: TObject); |
| 67 |
VAR |
| 68 |
Screen:TRect; |
| 69 |
BEGIN |
| 70 |
GetWindowRect(GetDesktopWindow,Screen); |
| 71 |
edit_x.Max:=Screen.Right; |
| 72 |
edit_y.Max:=Screen.Bottom; |
| 73 |
edit_x.BorderStyle:=bsSingle; |
| 74 |
edit_y.BorderStyle:=bsSingle; |
| 75 |
END; |
| 76 |
|
| 77 |
PROCEDURE TForm1.btn_setxyClick(Sender: TObject); |
| 78 |
VAR |
| 79 |
Handle:LongWord; |
| 80 |
BEGIN |
| 81 |
IF edit_x.CheckError THEN BEGIN |
| 82 |
ShowMessage('x-value has to be between 0 and '+IntToStr(Floor(edit_x.Max))+'!'); |
| 83 |
Exit; |
| 84 |
END; |
| 85 |
IF edit_y.CheckError THEN BEGIN |
| 86 |
ShowMessage('y-value has to be between 0 and '+IntToStr(Floor(edit_y.Max))+'!'); |
| 87 |
Exit; |
| 88 |
END; |
| 89 |
Handle:=FindWindow(PChar('ONI '),PChar('ONI ')); |
| 90 |
IF Handle>0 THEN BEGIN |
| 91 |
IF NOT SetWindowPos(Handle,0,edit_x.GetInteger,edit_y.GetInteger,0,0,SWP_NOSIZE OR SWP_NOACTIVATE OR SWP_NOZORDER) THEN |
| 92 |
ShowMessage('Couldn''t set the position of ONIs window!'); |
| 93 |
END ELSE ShowMessage('Couldn''t find ONIs window!'); |
| 94 |
END; |
| 95 |
|
| 96 |
PROCEDURE TForm1.btn_blackClick(Sender: TObject); |
| 97 |
BEGIN |
| 98 |
IF FindWindow(PChar('ONI '),PChar('ONI '))>0 THEN BEGIN |
| 99 |
Form2.Visible:=NOT Form2.Visible; |
| 100 |
SetForeGroundWindow(FindWindow(PChar('ONI '),PChar('ONI '))); |
| 101 |
END; |
| 102 |
END; |
| 103 |
|
| 104 |
PROCEDURE TForm1.timer_checkTimer(Sender: TObject); |
| 105 |
BEGIN |
| 106 |
IF Form2.Visible THEN BEGIN |
| 107 |
IF FindWindow(PChar('ONI '),PChar('ONI '))=0 THEN Form2.Visible:=False; |
| 108 |
END; |
| 109 |
END; |
| 110 |
|
| 111 |
END. |