⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 globals.pas

📁 del *.obj del *.dcu del *.~* del *.hpp del *.dcp del *.dpl del *.cesettings del *.log upx sy
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{       系统工具箱程序中自添加的全局变量及过程单元      }
{                                                       }
{             Copyright (c) 2005, MICHAEL               }
{    http://xuhaohome.yeah.net OR xuhaohome.2008.cc     }
{     E-Mail:x_h168@163.com   QQ:10660578 8416321       }
{                                                       }
{*******************************************************}
unit Globals;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls,Registry,ShlObj,ActiveX,ComObj,INIFiles;



//公共变量过程声明



Function  CheckProgramStart(MainFormName:string):boolean;  //检查当前程序是否正在运行
Procedure BringWindow;        //激活和当前程序同名的窗体
procedure ShowWindowMode(FormName:TForm;Const Mode:integer);       //激活显示程序窗体
function  SearchAllFile(Path:string;Ext:string):TStrings;
Function  ResultCmdFile:string;
Function  ResultNotepadFile:string;
Function  ResultDirectXFile:string;
Function  ResultRegeditFile:string;
Procedure ExitWindowsSystem(Const I:integer);
Procedure EmptyRecycleBin ;  //清空回收站



Function RegKeyExists(RootKEY:HKEY;Const Openkey,KeyName:string):boolean;
Function RegValueExists(RootKEY:HKEY;Const Openkey,KeyName:string):boolean;
Function DeleteKey(RootKEY:HKEY;Const Openkey,KeyName:string):boolean;
Function DeleteValue(RootKEY:HKEY;Const Openkey,KeyName:string):boolean;
Function GetRegStringKey(RootKEY:HKEY;Const Openkey,KeyName:string):String;
Function SetRegStringKey(RootKEY:HKEY;Const Openkey,KeyName,KeyValue:string):Boolean;
Function GetRegIntegerKey(RootKEY:HKEY;Const Openkey,KeyName:string):integer;
Function SetRegIntegerKey(RootKEY:HKEY;Const Openkey,KeyName:string;KeyValue:integer):Boolean;
Function GetRegBinaryKey(RootKEY:HKEY;Const Openkey,KeyName:string):Byte;
Function SetRegBinaryKey(RootKEY:HKEY;Const Openkey,KeyName:string;KeyValue:Byte):Boolean;
Function BooleanToInteger(Const BooleanValue:Boolean):integer;
Function IntegerToBoolean(Const IntegerValue:integer):Boolean;
Function YesNoToBoolean(Const YesNoValue:string):Boolean;
Function BooleanToYesNo(Const BooleanValue:boolean):string;
Function StringToBoolean(Const StringValue:string):Boolean;
Function BooleanToString(Const BooleanValue:boolean):string;





var
IF_CheckProgramStart:boolean=True;       //是否限制程序只启动一次

counter: Integer;
IsMinimizeAll:boolean=False;//用来标志当前是否最小化所有程序了 在执行最小化/最大化所有过程时用
IsHide:boolean=False;       //用来标志在热键进行隐藏显示本程序时的状态
IsCDROMClose:boolean=True;  //用来标志在热键进行弹出关闭光驱时光驱的状态
IsHideTaskBar:boolean=False; //用来标志在当前是否已设置隐藏了系统任务栏
shellapp: variant;    //系统外壳SHELL对象
ShowWindowHotKey:string='Ctrl+Shift+Alt+Win+Z';  //用来激活程序窗体的热键






const
Product_Name:string='系统工具箱';      //程序的名称
Product_Ver:string='V1.0 测试版';       //程序版本
Product_Writer:string='许 昊';           //程序作者
Product_CopyRight:string='MICHAEL';       //程序版权
Product_ConfigIni:string='config.dat';    //程序的配置文件名称
Home_Url:string='http://xuhaohome.yeah.net'; //主页地址
Home_UrlNew:string='http://xuhaohome.2008.cc'; //主页地址
E_mail:string='x_h168@etang.com';          //邮件地址
QQ:string='8416321 10660578';              //QQ号码
EndDate:string='2005-02-30';                 //程序完成时间
Product_About='     本应用程序在Windows 2000+Delphi7平台开发完成,绝大部分功能通用于Win98/Win2000'+#13+'/WinXP/Win2003系统。欢迎自由拷贝使用,但请注明原版权!使用本程序所造成的一切后果作者'+#13+'将不负任何责任!欢迎有任何问题欢迎跟我联系。';


IEActiveXList:array[0..48] of string=('B83FC273-3522-4CC6-92EC-75CC86678DA4::3721网络实名第一版',
                                      '4522DBFE-14CD-4A59-AC2A-54BADFDD6D53::3721网络实名第二版',
                                      '8D898B17-976D-44C1-84E6-AF38842AC9EC::3721网络实名第三版',
                                      'FC327B3F-377B-4CB7-8B61-27CD69816BC3::WeatherCAST',
                                      '1B0E7716-898E-48CC-9690-4E338E8DE1D3::3721上网助手老版',
                                      '7CA83CF1-3AEA-42D0-A4E3-1594FC6E48B2::3721上网助手新版',
                                      '4EDBBAEA-F509-49F6-94D1-ECEC4BE5B686::3721中文邮',
                                      '9A578C98-3C2F-4630-890B-FC04196EF420::CNNIC中文网址',
                                      'BC207F7D-3E63-4ACA-99B5-FB5F8428200C::百度搜索伴侣',
                                      '9BBC1154-218D-453C-97F6-A06582224D81::百度搜霸',
                                      'CF051549-EDE1-40F5-B440-BCD646CF2C25::网易泡泡',
                                      '15DDE989-CD45-4561-BF99-D22C0D5C2B74::新浪点点通',
                                      '98FA5667-513F-4F15-8A15-C171477B8847::新浪IE通',
                                      'CE7C3CF0-4B15-11D1-ABED-709549C10000::搜狐搜索工具1',
                                      '484FF54A-CC44-467E-9C31-5B89FC753007::搜狐搜索工具2',
                                      '2D0C7226-747E-11D6-83F0-00E04C4A2F90::搜狐视频播放器',
                                      '48FE89A0-486C-48DF-9DEC-BED22BDC6057::新浪go',
                                      'CD1A82F2-3770-4509-8355-0D2F45158F21::新浪igame',
                                      'DBAE7000-01EC-4162-8FEB-8A27AC937CA0::新浪gane',
                                      '36CB6B28-FC08-4373-8F54-1A02E3C15B7D::藏琼阁',
                                      'F504CF55-2AA9-4752-B2DD-01D06A81D93E::迅彩图铃通',
                                      '58CDB34C-B4D7-418B-A0FB-C4C8A01C2F0E::51.net',
                                      '8135EF31-FE8C-4C6E-A18A-F59944C3A488::dudu',
                                      '54F8C0E2-34F9-474F-B47F-2CFCFE2300A2::imuChat',
                                      '4B106874-DD36-11D0-8B44-00A024DD9EFF::ADODB.Stream 2.5',
                                      '00000566-0000-0010-8000-00AA006D2EA4::ADODB.Stream 2.7',
                                      '8522F9B3-38C5-4AA4-AE40-7401F1BBC851::Ahmm Dialers',
                                      '69A72A8A-84ED-4A75-8CE7-263DBEF3E5D3::Alexa Toolbar',
                                      '0E1230F8-EA50-42A9-983C-D22ABC2EED3B::cmpro',
                                      '03C543A1-C090-418F-A1D0-FB96380D601D::Holistyc',
                                      'E8EDB60C-951E-4130-93DC-FAF1AD25F8E7::Mtree Dialers1',
                                      'FC87A650-207D-4392-A6A1-82ADBC56FA64::Mtree Dialers2',
                                      'D6862A22-1DD6-11D3-BB7C-444553540000::Portal Toolbar',
                                      '65B818E1-F4D8-4F96-A1DF-35F3D1C86194::Roings',
                                      '3717DF57-0396-463D-98B7-647C7DC6898A::SearchIt Toolbar',
                                      '7EB2A76C-97AE-4CF3-9C6A-EA0F61F137E1::Sexxx',
                                      '10954C80-4F0F-11D3-B17C-00C0DFE39736::thebugs',
                                      '018B7EC3-EECA-11D3-8E71-0000E82C6C0D::xxxToolbar1',
                                      'EF86873F-04C2-4A95-A373-5703C08EFC7B::xxxToolbar2',
                                      '12398DD6-40AA-4C40-A4EC-A42CFC0DE797::xxxToolbar3',
                                      '6BF52A52-394A-11D3-B153-00C04F79FAA6::Windows Media Player',
                                      'CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA::Real One Player',
                                      'D27CDB6E-AE6D-11CF-96B8-444553540000::Flash Player',
                                      'D7F0CC2E-FB09-4B38-B9A7-6807CBCD4859::新浪iGame 2',
                                      '32B88AFD-33DA-4E17-BE89-1029DE44DED6::每步直达网址',
                                      '051299DE-2CFD-4EA8-A432-F0429B4E7A5D::信天搜霸',
                                      'A8739816-022C-11D6-A85D-00C04F9AEAFB::WebEye',
                                      '5FCEA0BA-123B-469a-A27B-8EFF96FEA71D::爱思美中文邮',
                                      '8601658B-9360-00C1-AE00-00C03EA25D91::Alibaba 1');


//热键操作的类型
HotKeyActions:array[0..15] of String=('执行程序',           //0
                                      '打开命令行',         //1
                                      '打开记事本程序',     //2
                                      '打开资源管理器',     //3
                                      '显示运行对话框',     //4
                                      '显示搜索文件对话框', //5
                                      '最小化所有窗口',     //6
                                      '隐藏/显示程序窗体',  //7
                                      '启动屏幕保护程序',   //8
                                      '弹出/关闭光驱',      //9
                                      '显示关机对话框',     //10
                                      '退出程序',           //11
                                      '关闭显示器',         //12
                                      '注销登陆',           //13
                                      '重启系统',           //14
                                      '关闭系统');          //15
//默认热键操作的热键
DefaultHotKey:array[1..15] of String=('Ctrl+Alt+Shift+C',
                                      'Ctrl+Alt+Shift+N',
                                      'Ctrl+Alt+Shift+E',
                                      'Ctrl+Alt+Shift+R',
                                      'Ctrl+Alt+Shift+F',
                                      'Ctrl+Alt+Shift+D',
                                      'Ctrl+Alt+Shift+S',
                                      'Ctrl+Alt+Win+P',
                                      'Ctrl+Alt+Shift+J',
                                      'Ctrl+Alt+Win+Q',
                                      'Ctrl+Alt+Shift+Q',
                                      'Ctrl+Alt+Shift+P',
                                      'Ctrl+Alt+Win+L',
                                      'Ctrl+Alt+Win+R',
                                      'Ctrl+Alt+Win+S');
         


implementation


uses sysifo,HotKeyManager;




Function CheckProgramStart(MainFormName:string):boolean;
var Mutex:THandle;
begin //检查当前程序是否正在运行并激活它,如果在运行反回True否则为False(MainFormName为程序主窗体名称最好用Application.MainForm)
  try
  Mutex:=CreateMutex(NIL,True,Pchar(Product_Name+Product_Writer));
  IF GetLastError<>ERROR_ALREADY_EXISTS THEN  //如果不存在另一实例
  begin
    Result:=False;
  end  else
  begin
  Result:=True;
  ReleaseMutex(Mutex);
  end;
  Finally
  end;
end;

Procedure BringWindow;
  function AnsiContainsText(const AText, ASubText: string): Boolean;
  begin
    Result := AnsiPos(AnsiUppercase(ASubText), AnsiUppercase(AText)) > 0;
  end;
  function AnsiReplaceText(const AText, AFromText, AToText: string): string;
  begin
    Result := StringReplace(AText, AFromText, AToText, [rfReplaceAll, rfIgnoreCase]);
  end;
  function GetVKKeyName(HotKey: String):Char;
  var     //从热键的组合中取出单独的键名(只取单键,不能区别功能键)
    I: Integer;
  begin
   HotKey:=AnsiReplaceText(HotKey,'Ctrl','');
   HotKey:=AnsiReplaceText(HotKey,'Shift','');
   HotKey:=AnsiReplaceText(HotKey,'Alt','');
   HotKey:=AnsiReplaceText(HotKey,'Win','');
   HotKey:=AnsiReplaceText(HotKey,'+','');
   HotKey:=AnsiReplaceText(HotKey,' ','');
   Result:=((HotKey[1]));
  end;
var
TheWindow: HWND;
I:integer;
begin
 //下面这段被注释掉的代码是自动提取取另自定义的程序激活热键
if (ShowWindowHotKey='')and(FileExists(ExtractFilePath(paramstr(0))+Product_ConfigIni)) then
   with TIniFile.Create(ExtractFilePath(paramstr(0))+Product_ConfigIni) do
   begin
     For i:=-1 to strtoint(ReadString('HotKeyList','Count','-1')) do
     begin
     if AnsiContainsText(ReadString('HotKeyList','HotKeyAction'+inttostr(I),''),HotKeyActions[7]) then ShowWindowHotKey:=ReadString('HotKeyList','TheHotKey'+inttostr(I),'-1');
     end;
   end else if ShowWindowHotKey='' then ShowWindowHotKey:=DefaultHotKey[7];
if AnsiContainsText(ShowWindowHotKey,'Ctrl')  THEN keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
if AnsiContainsText(ShowWindowHotKey,'Alt')   THEN keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
if AnsiContainsText(ShowWindowHotKey,'Shift') THEN keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), 0, 0);
if AnsiContainsText(ShowWindowHotKey,'Win')   THEN keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
keybd_event(ord(GetVKKeyName(ShowWindowHotKey)), MapVirtualKey(ord(GetVKKeyName(ShowWindowHotKey)), 0), 0, 0);   //处理不成自动取键值
keybd_event(ord(GetVKKeyName(ShowWindowHotKey)), MapVirtualKey(ord(GetVKKeyName(ShowWindowHotKey)), 0), KEYEVENTF_KEYUP, 0);
if AnsiContainsText(ShowWindowHotKey,'Win')   THEN keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
if AnsiContainsText(ShowWindowHotKey,'Shift') THEN keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), KEYEVENTF_KEYUP, 0);
if AnsiContainsText(ShowWindowHotKey,'Alt')   THEN keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
if AnsiContainsText(ShowWindowHotKey,'Ctrl')  THEN keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);
Thewindow:=FindWindow(nil,Pchar(Product_Name));
SendMessage(Thewindow,WM_SYSCOMMAND,SC_RESTORE,0);
ShowWindow(Thewindow,SW_SHOW);
ShowWindow(Thewindow,SW_SHOWNORMAL);
SetWindowLong(Thewindow, GWL_EXSTYLE,
        not (GetWindowLong(Thewindow, GWL_EXSTYLE)
        or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW));
SetForegroundWindow(Thewindow);
BringWindowToTop(TheWindow);
end;


procedure ShowWindowMode(FormName:TForm;const Mode:integer);
begin    //显示程序窗体    Mode为要把窗体控制显示成的类型,功能未完成
try
  case Mode of
    0:begin//隐藏程序窗体
      //FormName.Visible:=False;
      ShowWindow(Application.Handle, SW_HIDE);
      ShowWindow(Application.MainForm.Handle, SW_HIDE);
      FormName.Hide;
      end;
    1:begin//最前端显示程序窗体
      if Application.MainForm <> nil then
        begin   // Restore the app, but don't automatically show its taskbar icon
          ShowWindow(Application.Handle, SW_SHOW);
          //在任务栏上显示应用程序窗口
          ShowWindow(Application.MainForm.Handle,SW_SHOW);
          ShowWindow(FormName.handle, SW_SHOW);
          SetWindowLong(Application.Handle, GWL_EXSTYLE,not (GetWindowLong(Application.handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW));
          Application.Restore;   // Show the form itself
          if Application.MainForm.WindowState = wsMinimized then  Application.MainForm.WindowState := wsNormal;    // Override minimized state
          Application.MainForm.Visible := True;     // Bring the main form (or its modal dialog) to the foreground
          Application.MainForm.SetFocus;
          SetForegroundWindow(Application.Handle);
          Application.BringToFront;
          Application.MainForm.BringToFront;
        end;
      end;
    2:begin
      ;
      end;
  end;
except
end;
end;

Function  ResultCmdFile:string;
begin
if FileExists(myGetSystemDirectory+'\Cmd.exe') then Result:=myGetSystemDirectory+'\Cmd.exe' else
if FileExists(myGetWindowsDirectory+'\Cmd.exe') then Result:=myGetWindowsDirectory+'\Cmd.exe' else
if FileExists(myGetSystemDirectory+'\Command.com') then Result:=myGetSystemDirectory+'\Command.com' else
if FileExists(myGetWindowsDirectory+'\Command.com') then Result:=myGetWindowsDirectory+'\Command.com'
else Result:='Command';
end;

Function ResultNotepadFile:string;
begin
if FileExists(myGetSystemDirectory+'\notepad.exe') then Result:=myGetSystemDirectory+'\notepad.exe' else
if FileExists(myGetWindowsDirectory+'\notepad.exe') then Result:=myGetWindowsDirectory+'\notepad.exe'
else Result:='notepad';
end;

Function ResultDirectXFile:string;
begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -