📄 mainpas.pas
字号:
unit Mainpas;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin, Menus, ExtCtrls, Registry, ShellAPI, StdCtrls, Imm,
MMSystem, ExtDlgs, ImgList, Xeduser;
const
WM_TRAYNOTIFY = WM_USER + 1000;
MY_TRAY_ICON = WM_USER + 1001;
type
TA00Form = class(TForm)
MMenu1: TMainMenu;
Timer1: TTimer;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N51: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
aaaa1: TMenuItem;
aa1: TMenuItem;
Image1: TImage;
aaa1: TMenuItem;
aaa2: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
aaaa2: TMenuItem;
DFNO01: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
Button1: TButton;
aa2: TMenuItem;
LimitMouse: TMenuItem;
RelaxMouse: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
aaaa3: TMenuItem;
PrintDBGrid: TMenuItem;
F1Book1: TMenuItem;
N19: TMenuItem;
PMenu1: TPopupMenu;
cccc1: TMenuItem;
CDROM1: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
DllForm1: TMenuItem;
N24: TMenuItem;
SaveDialog1: TSavePictureDialog;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
N33: TMenuItem;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
N28: TMenuItem;
LimitSysKey: TMenuItem;
RelaxKey: TMenuItem;
N38: TMenuItem;
N39: TMenuItem;
N40: TMenuItem;
N41: TMenuItem;
N42: TMenuItem;
SB: TStatusBar;
N37: TMenuItem;
ListView1: TListView;
N43: TMenuItem;
N44: TMenuItem;
Dialog1: TOpenPictureDialog;
N45: TMenuItem;
N46: TMenuItem;
N47: TMenuItem;
N48: TMenuItem;
ImageList1: TImageList;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
N49: TMenuItem;
N50: TMenuItem;
F1: TMenuItem;
ToolButton6: TToolButton;
Button2: TButton;
N52: TMenuItem;
N53: TMenuItem;
Button3: TButton;
N54: TMenuItem;
Html1: TMenuItem;
N55: TMenuItem;
procedure Minimize(Sender: TObject);
procedure Maximize(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure GetWinProductID(Sender: TObject);
procedure GetAppIcon(Sender: TObject);
procedure GetAllColor(Sender: TObject);
procedure ShutDown(Sender: TObject);
procedure GetNetUserName(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure DFNO01Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SetMouse(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure SetWinRgn(Sender: TObject);
procedure PrintTable(Sender: TObject);
procedure F1Book1Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure CDROM1Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N23Click(Sender: TObject);
procedure DllForm1Click(Sender: TObject);
procedure N24Click(Sender: TObject);
procedure N25Click(Sender: TObject);
procedure N28Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ProceedSysKey(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N38Click(Sender: TObject);
procedure SetDispMode(Sender: TObject);
procedure N42Click(Sender: TObject);
procedure cccc1Click(Sender: TObject);
procedure N44Click(Sender: TObject);
procedure N45Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure ShowThisWindow(Sender: TObject);
procedure N49Click(Sender: TObject);
procedure FileCheck(Sender: TObject);
procedure ShutMonitor(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Html1Click(Sender: TObject);
procedure N55Click(Sender: TObject);
private
{ Private declarations }
procedure OnIdle(Sender: TObject; var Done: Boolean);
procedure MyMenu(var msg: twmmenuselect); message wm_syscommand;
procedure AllowMove(var Msg: TMessage); message WM_NCHITTEST;
procedure WMQueryEnd(var Msg: Tmessage); message WM_QueryEndSession;
procedure GexInfo(var message: twmgetminmaxinfo); message wm_getminmaxinfo;
procedure WMTrayNotify(var Msg: TMessage); message WM_TRAYNOTIFY;
procedure NoPosChange(var Msg: TWMWindowPosMsg); message WM_WINDOWPOSCHANGing;
procedure DrawCaptButton;
procedure LoadNTCur(Sender: TObject);
procedure DisplayHint(Sender: TObject);
procedure DeActTool(Sender: TObject);
procedure HandleMe(Sender: TObject; E: Exception);
public
CaptionBtn: TRect;
NTIcon: TNotifyIconData;
NewWinProc,
OldWinProc: Pointer;
SetWay: string;
Curs: Integer;
CanMove: Boolean;
{ Public declarations }
end;
var
A00Form: TA00Form;
implementation
uses Cleaner, StopProc, Canvas01, LogPas, PRINDB01, F1Book1, Draw01, imme01,
GetField, MyAbout, FindPas, Disp01, Speed1, AttrPas, FilePas, HtmlPas,
GetIcon;
{$R *.DFM}
{$R NTCursor.RES}
const
htCaptionBtn = htSizeLast + 1;
procedure TA00Form.Minimize(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_Hide);
end;
procedure TA00Form.Maximize(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_Show);
SetForeGroundWindow(Handle);
end;
procedure TA00Form.AllowMove(var Msg: TMessage);
begin // 禁止随意移动
inherited;
// if Msg.Result = htCaption then Msg.Result := htClient;
//Msg.Result := htCaption; Msg.Result := 0;
end;
procedure TA00Form.NoPosChange(var Msg: TWMWindowPosMsg);
begin // 禁止改变位置大小
inherited; exit;
if not CanMove then
with Msg.WindowPos^ do
Flags := Flags or SWP_NOMOVE or SWP_NOSIZE;
end;
procedure TA00Form.GexInfo;
begin exit;
with message.MinMaxInfo^ do
begin
ptMaxSize.X := 640;
ptMaxSize.Y := 480;
ptMaxPosition.X := 0;
ptMaxPosition.Y := 0;
end;
message.Result := 0;
inherited;
end;
procedure TA00Form.WMQueryEnd(var Msg: Tmessage);
var
Answer: Integer;
begin // 禁止随意关机
Answer := MessageBox(Handle, '是要关闭计算机吗', '关机提示', MB_YESNO);
Msg.Result := ID_NO - Answer;
end;
procedure TA00Form.N2Click(Sender: TObject);
begin
Application.CreateForm(TProcForm, ProcForm);
ProcForm.Showmodal;
ProcForm.Free;
Application.OnHint := DisplayHint;
end;
procedure TA00Form.N4Click(Sender: TObject);
begin
Application.CreateForm(TDrawForm, DrawForm);
DrawForm.Showmodal;
DrawForm.Free;
end;
procedure TA00Form.N5Click(Sender: TObject);
begin
Application.CreateForm(TCanForm, CanForm);
CanForm.Showmodal;
CanForm.Free;
end;
function GetWindowsProductID: string;
var
reg: TRegistry;
begin
Result := '';
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
OpenKey('Software\Microsoft\Windows\CurrentVersion', False);
Result := ReadString('ProductID');
end;
reg.Free;
end;
procedure TA00Form.GetWinProductID(Sender: TObject);
begin
Showmessage(GetWindowsProductID);
end;
procedure TA00Form.GetAppIcon(Sender: TObject);
var filename: string;
begin
Filename := Paramstr(0);
Image1.Picture.Icon.Handle :=
ExtractIcon(Hinstance, pchar(FileName), 0);
end;
function GetSysColorNum: Cardinal;
var
ScreenDc: HDC;
NumBitsPixel: Integer;
begin
ScreenDc := GetDC(0);
NumBitsPixel := GetDeviceCaps(ScreenDc, BITSPIXEL);
ReleaseDC(0, ScreenDC);
Result := NumBitsPixel;
end;
procedure TA00Form.GetAllColor(Sender: TObject);
begin
Showmessage(Inttostr(GetSysColorNum) + '位');
end;
procedure TA00Form.ShutDown(Sender: TObject);
var
Send, Ex: UInt;
begin
Send := 5;
if SEND = 1 then EX := EWX_FORCE else
if SEND = 2 then EX := EWX_LOGOFF else
if SEND = 3 then EX := EWX_POWEROFF else
if SEND = 4 then EX := EWX_REBOOT else
if SEND = 5 then EX := EWX_SHUTDOWN else EXIT;
ExitWindowsEx(EWX_POWEROFF or EWX_SHUTDOWN or EWX_FORCE, 0);
end;
function GetUserNameB: AnsiString;
var
lpName: PAnsiChar;
lpUserName: PAnsiChar;
lpnLength: DWORD;
begin
lpnLength := 100;
WNetGetUser(nil, nil, lpnLength); // 取得字串所需的長度
if lpnLength = 0 then Exit;
GetMem(lpUserName, lpnLength);
lpName := '\\dfno0';
if WNetGetUser(lpName, lpUserName, lpnLength) = NO_ERROR
then Result := lpUserName else Result := '根本没有登录过网络';
FreeMem(lpUserName, lpnLength);
end; { GetNetUserName }
procedure TA00Form.GetNetUserName(Sender: TObject);
begin
Showmessage(GetUserNameB);
end;
procedure TA00Form.N8Click(Sender: TObject);
begin
WNetCancelConnection2('dfno0', 0, True);
end;
procedure TA00Form.DFNO01Click(Sender: TObject);
begin
Application.CreateForm(TLogForm, LogForm);
LogForm.Showmodal;
LogForm.Free;
end;
procedure TA00Form.LoadNTCur(Sender: TObject);
begin exit;
screen.cursors[1] := LoadCursor(hInstance, pChar('CURSOR_1'));
screen.cursors[2] := LoadCursor(hInstance, pChar('CURSOR_2'));
screen.cursors[3] := LoadCursor(hInstance, pChar('CURSOR_3'));
screen.cursors[4] := LoadCursor(hInstance, pChar('CURSOR_4'));
screen.cursors[5] := LoadCursor(hInstance, pChar('CURSOR_5'));
screen.cursors[6] := LoadCursor(hInstance, pChar('CURSOR_6'));
screen.cursors[7] := LoadCursor(hInstance, pChar('CURSOR_7'));
screen.cursors[8] := LoadCursor(hInstance, pChar('CURSOR_8'));
screen.cursors[9] := LoadCursor(hInstance, pChar('CURSOR_9'));
screen.cursors[10] := LoadCursor(hInstance, pChar('CURSOR_10'));
screen.cursors[11] := LoadCursor(hInstance, pChar('CURSOR_11'));
screen.cursors[12] := LoadCursor(hInstance, pChar('CURSOR_12'));
Curs := 0;
end;
procedure TA00Form.FormCreate(Sender: TObject);
var
R: TRegistry;
DeskBMP: string;
begin
ListView1.Hide;
ListView1.Align := alClient;
CanMove := True;
R := TRegIniFile.Create('Control Panel');
R.OpenKey('Desktop', False);
SetWay := R.ReadString('WallPaperStyle');
if SetWay <> '2' then
SetWay := R.ReadString('TileWallPaper');
DeskBMP := R.ReadString('Wallpaper');
R.Free;
SetWay := '1';
Image1.Hide;
if FileExists(DeskBMP) then begin
Image1.Picture.LoadFromFile(DeskBMP);
end;
with NTIcon do begin
cbSize := Sizeof(TNOTIFYICONDATA);
Wnd := Handle;
UID := MY_TRAY_ICON;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallBackMessage := WM_TRAYNOTIFY;
hIcon := LoadIcon(HInstance, 'MAINICON');
szTip := '这里是例子管理程序的图标'#0;
end;
Shell_NotifyIcon(NIM_ADD, @NTIcon);
LoadSite(Self, 'Xed Tools');
Show; Update;
CanMove := False;
LoadNTCur(Self);
Hint := '本范例程序版本号:' + FileVersion(ParamStr(0));
//Application.OnDeactivate := DeActTool;
Application.OnHint := DisplayHint;
Application.OnMinimize := Minimize;
Application.OnRestore := Maximize;
Application.OnIdle := OnIdle;
Application.OnHelp := OnHelp;
Application.OnActivate := onActivate;
Application.OnException := HandleMe;
Application.HelpFile := 'Win32s.HLP';
end;
procedure TA00Form.HandleMe(Sender: TObject; E: Exception);
begin
E.Message := '程序出现异常错误:'#13#13 + E.Message;
Application.ShowException(E);
end;
procedure TA00Form.DeActTool(Sender: TObject);
begin
Application.Minimize;
end;
procedure TA00Form.OnIdle(Sender: TObject; var Done: Boolean);
begin
exit; Done := True;
inc(Curs);
if Curs > 12 then
begin
Curs := 1;
end;
screen.cursor := Curs;
end;
procedure TA00Form.DisplayHint(Sender: TObject);
begin
SB.Panels[0].Text := Application.Hint;
end;
procedure TA00Form.WMTrayNotify(var Msg: TMessage);
var
PT: TPoint;
begin
case MSG.lParam of
WM_LBUTTONUP, WM_RBUTTONUP:
if IsWindowVisible(Handle) then begin
Application.Minimize;
// ShowWindow(Self.Handle, sw_Hide);
end else begin
Application.Restore;
// ShowWindow(Application.Handle, sw_Show);
if MSG.lParam = WM_RBUTTONUP then begin
GetCursorPos(Pt);
PMenu1.Popup(PT.X, PT.Y);
end;
end;
end;
end;
procedure TA00Form.N9Click(Sender: TObject);
begin
Close;
end;
procedure MyGetImeList(AList: TStrings);
const
nHKL_LIST = 20;
{var
iHandleCount: integer;
pList: array[0..nHKL_LIST] of HKL;
szFileName: array[0..MAX_PATH] of char;
i: integer;}
begin
{ ComBoBox1.Items.Assign(Screen.Imes);
ComBoBox1.ItemIndex := 0;
if AList = nil then Exit;
AList.Clear;
iHandleCount := GetKeyboardLayoutList(nHKL_LIST, pList);
for i := 0 to iHandleCount - 1 do
begin
if ImmGetIMEFileName(pList[I], szFileName, MAX_PATH) > 0 then
begin
// AList.Add(StrPas(szFileName)); // 這是各 IME 的檔名
if ImmEscape(pList[i], 0,
IME_ESC_IME_NAME, @szFileName) > 0 then
AList.Add(Copy(StrPas(szFileName), 1, 30));
end;
end;}
end;
procedure TA00Form.N10Click(Sender: TObject);
var
S: TStringList;
I: Integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -