| 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. |