t);
begin
Randomize;
CheckBox1Click(Sender);
end;
procedure TForm1.btnStartClick(Sender: TObject);
var
pmii: MENUITEMINFO;
buf: array[0..255] of char;
s: string;
begin
hSweep := FindWindow(nil, '扫雷');
if hSweep<=0 then
begin
FillChar(buf, SizeOf(buf), #0);
GetSystemDirectory(buf, 255);
s := buf;
WinExec(PChar(s+'\winmine.exe'), SW_SHOW);
hSweep := FindWindow(nil, '扫雷');
end;
// atomSweep := GlobalAddAtom('ForWinMine');
// RegisterHotKey(Handle, atomSweep, MOD_CONTROL or MOD_ALT or MOD_SHIFT, $41);
// showmessage(inttostr(getlasterror));
BringWindowToTop(hSweep);
mSweep := GetMenu(hSweep);
mSweep := GetSubMenu(mSweep, 0);
RadioGroup1Click(Sender);
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
var
mID: DWORD;
begin
if (mSweep<=0)or(hSweep<=0) then
Exit;
case RadioGroup1.ItemIndex of
0:
begin
mID := GetMenuItemID(mSweep, 2);
ColNum := 9;
RowNum := 9;
UpDown1.Max := 3;
end;
1:
begin
mID := GetMenuItemID(mSweep, 3);
ColNum := 16;
RowNum := 16;
UpDown1.Max := 5;
end;
2:
begin
mID := GetMenuItemID(mSweep, 4);
ColNum := 30;
RowNum := 16;
UpDown1.Max := 10;
end;
else
Exit;
end;
SendMessage(hSweep, WM_COMMAND, mID, 0);
btnContinue.Enabled := true;
if not CheckBox1.Checked then
Exit;
for mID:=1 to UpDown1.Position do
ClickIt(Round(Random(ColNum)+1), Round(Random(RowNum)+1));
btnContinueClick(sender);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if hSweep>0 then
SendMessage(hSweep, WM_CLOSE, 0, 0);
// UnRegisterHotKey(Application.Handle, atomSweep);
// GlobalDeleteAtom(atomSwee
p);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
r, c: short;
begin
if hSweep<=0 then
Exit;
BringWindowToTop(hSweep);
dcSweep := GetDC(hSweep);
with StringGrid1 do
begin
ColCount := ColNum + 2;
RowCount := RowNum + 2;
for c:=0 to ColNum+1 do
begin
Cells[c, 0] := ' ';
Cells[c, RowNum+1] := ' ';
end;
for r:=0 to RowNum+1 do
begin
Cells[0, r] :=