?»??»?ÎÊ:ÈçºÎÈÃdel+CTRL+ALT¿´²»¼û³ÌÐòÔËÐÐ? ´ð:ΪÁËÈóÌÐòÓÃALT+DEL+CTRL¿´²»¼û,ÔÚimplementationºóÌí¼ÓÉùÃ÷: function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL'; ÔÙÔÚÉÏÃæµÄ´°¿ÚCreateʼþ¼ÓÉÏÒ»¾ä£ºRegisterServiceProcess(GetCurrentProcessID, 1);//Òþ²Ø Ò²¿ÉÒÔʹÓÃÏÂÃæµÄº¯Êý: function My_SelfHide: Boolean; type TRegisterServiceProcess = function(dwProcessID, dwType: DWord): DWORD; stdcall; var hNdl: THandle; RegisterServiceProcess: TRegisterServiceProcess; begin Result := False; if Win32Platform <> VER_PLATFORM_WIN32_NT then //²»ÊÇNT begin hNdl := LoadLibrary('KERNEL32.DLL'); RegisterServiceProcess := GetProcAddress(hNdl, 'RegisterServiceProcess'); RegisterServiceProcess(GetCurrentProcessID, 1); FreeLibrary(hNdl); Result := True; end else Exit; end; ÎÊ:×ÔÎÒ¿½±´·¨ÔõôÑùʹÓÃ? ´ð:ÕâÖÖ·½·¨µÄÔ­ÀíÊdzÌÐòÔËÐÐʱÏȲ鿴×Ô¼ºÊDz»ÊÇÔÚÌض¨Ä¿Â¼ÏÂ,Èç¹ûÊǾͼÌÐøÔËÐÐ,Èç¹û²»ÊǾͰÑ×Ô¼º¿½±´µ½Ìض¨Ä¿Â¼ÏÂ,È»ºóÔËÐÐгÌÐò,ÔÙÍ˳ö¾É³ÌÐò. ´ò¿ªDelphi,н¨Ò»¸ö¹¤³Ì,ÔÚ´°¿ÚµÄCreateʼþÖÐд´úÂë: procedure TForm1.FormCreate(Sender: TObject); var myname: string; begin myname := ExtractFilename(Application.Exename); //»ñµÃÎļþÃû if application.Exename <> GetWindir + myname then //Èç¹ûÎļþ²»ÊÇÔÚWindows\System\ÄÇô.. begin copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{½«×Ô¼º¿½±´µ½Windows\System\ÏÂ} Winexec(pchar(GetWindir + myname), sw_hide);//ÔËÐÐWindows\System\ϵÄÐÂÎļþ application.Terminate;//Í˳ö end; end; ÆäÖÐGetWinDirÊÇ×Ô¶¨Ò庯Êý,Æð¹¦ÄÜÊÇÕÒ³öWindows\System\µÄ·¾¶. function GetWinDir: String; var Buf: array[0..MAX_PATH] of char; begin GetSystemDirectory(Buf, MAX_PATH); Result := Buf; if Result[Length(Result)]<>'\' then Result := Result + '\'; end; ÎÊ:ÈçºÎ±ÜÃâͬʱÔËÐжà¸öÏàͬ³ÌÐò? ´ð:ΪÁ˱ÜÃâͬʱÔËÐжà¸ö³ÌÐòµÄ¸±±¾(½ÚԼϵͳ×ÊÔ´Ò²),³ÌÐòÒ»°ã»áŪ³Éÿ´ÎÖ»ÄÜÔËÐÐÒ»¸ö.ÕâÓÖÓм¸ÖÖ·½·¨. Ò»ÖÖ·½·¨ÊdzÌÐòÔËÐÐʱÏȲéÕÒÓÐûÓÐÏàͬµÄÔËÐÐÁË,Èç¹ûÓÐ,¾ÍÁ¢¿ÌÍ˳ö³ÌÐò. ÐÞ¸ÄdprÏîÄ¿Îļþ£¬ÐÞ¸ÄbeginºÍendÖ®¼äµÄ´úÂëÈçÏ£º begin Application.Initialize; if FindWindow('TForm1','Form1')=0 then begin //µ±Ã»ÓÐÕÒµ½Form1ʱִÐÐÏÂÃæ´úÂë Application.ShowMainForm:=False; //²»ÏÔʾÖ÷´°¿Ú Application.CreateForm(TForm1, Form1); Application.Run; end; end. ÁíÒ»ÖÖ·½·¨ÊÇÆô¶¯Ê±»áÏÈͨ¹ý´°¿ÚÃûÀ´È·¶¨ÊÇ·ñÒѾ­ÔÚÔËÐУ¬Èç¹ûÊÇÔò¹Ø±ÕÔ­ÏȵÄÔÙÆô¶¯¡£¡°±ùºÓ¡±¾ÍÊÇÓÃÕâÖÖ·½·¨µÄ¡£ ÕâÑù×öµÄºÃ´¦ÔÚÓÚ·½±ãÉý¼¶.Ëü»á×Ô¶¯ÓÃа汾¸²¸Ç¾É°æ±¾. ·½·¨ÈçÏÂ:ÐÞ¸ÄdprÏîÄ¿Îļþ uses Forms,windows,messages, Unit1 in 'Unit1.pas' {Form1}; ÎÊ:ÈçºÎÄÜʹ³ÌÐòÄÜÔÚwindowsÆô¶¯Ê±×Ô¶¯Æô¶¯? ´ð:ΪÁ˳ÌÐòÄÜÔÚWindowsÿ´ÎÆô¶¯Ê±×Ô¶¯ÔËÐÐ,¿ÉÒÔͨ¹ýÁùÖÖ;¾¶À´ÊµÏÖ.¡°±ùºÓ¡±ÓÃ×¢²á±íµÄ·½Ê½¡£ ¼ÓÈëRegistryµ¥Ôª,¸ÄдÉÏÃæµÄ´°¿ÚCreateʼþ,¸ÄдºóµÄ³ÌÐòÈçÏÂ: procedure TForm1.FormCreate(Sender: TObject); const K = '\Software\Microsoft\Windows\CurrentVersion\RunServices'; var myname: string; begin {Write by Lovejingtao,http://Lovejingtao.126.com,Lovejingtao@21cn.com} myname := ExtractFilename(Application.Exename); //»ñµÃÎļþÃû if application.Exename <> GetWindir + myname then //Èç¹ûÎļþ²»ÊÇÔÚWindows\System\ÄÇô.. begin copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{//½«×Ô¼º¿½±´µ½Windows\System\ÏÂ} Winexec(pchar(GetWindir + myname), sw_hide);//ÔËÐÐWindows\System\ϵÄÐÂÎļþ application.Terminate;//Í˳ö end; with TRegistry.Create do try RootKey := HKEY_LOCAL_MACHINE; OpenKey( K, TRUE ); WriteString( 'syspler', application.ExeName ); finally free; end; end; ÎÊ:Ôõô²ÅÄÜ°Ñ×Ô¼ºµÄ³ÌÐòɾ³ýµô? ´ð:ºÜ¼òµ¥,¿ÉÒÔдһ¸öBATÎļþ ÀýÈç:a.bat del %0 ÕâÑù¾Í°Ña.batɾ³ýµôÁË! ·ÅÒ»¸öÀý×Ó: ÓùýDOSµÄÅóÓÑÓ¦¸Ã»¹¼ÇµÃÅú´¦ÀíÎļþ°É£¬Ð½¨Ò»¸öÅú´¦ÀíÎļþa.bat£¬±à¼­ÆäÄÚÈÝΪ:del %0,È»ºóÔËÐÐËü£¬ÔõôÑù£¿a.bat°Ñ×Ô¼ºÉ¾³ýµôÁË£¡£¡£¡ºÃ£¬ÎÒÃǾÍÓÃËüÀ´½øÐгÌÐòµÄ¡°×Ôɱ¡±£¡ ÕÒÒ»¸öEXE¿ÉÖ´ÐÐÎļþ£¬±ÈÈç˵abc.exe,н¨Ò»¸öÅú´¦ÀíÎļþa.bat£¬±à¼­ÆäÄÚÈÝΪ£º :pp del abc.exe if exist abc.exe goto pp del %0 ÏÈÔËÐÐabc.exe£¬ÔÙÔËÐÐa.bat£¬È»ºó½«abc.exeÍ˳ö£¬Äã»á·¢ÏÖa.exeºÍa.bat¶¼Ã»ÓÐÁË£¡£¡£¡°´ÕÕÕâ¸ö˼·£¬ÎÒÃÇ¿ÉÒÔÔÚ³ÌÐòÖиù¾ÝÎļþÃû³Æдһ¸öÅú´¦Àí£¬½«ÉÏÃæµÄabc.exe»»³É×Ô¼ºµÄEXEÎļþÃû¾Í¿ÉÒÔÁË¡£ÔËÐÐDelphi£¬Ð½¨Ò»¸ö¹¤³Ì£¬Ìí¼ÓÒ»¸öButtonµ½´°ÌåÉÏ£¬µã»÷Button£¬Ð´ÏÂÈçÏ´úÂ룺 procedure TForm1.Button1Click(Sender: TObject); var Selfname,BatFilename,s1,s2:string; BatchFile: TextFile; begin Selfname:=Extractfilename(application.exename);//È¡EXEÎļþ×Ô¼ºµÄÃû³Æ BatFilename:=ExtractFilePath(Application.ExeName)+ 'a.bat';//Åú´¦ÀíÎļþÃû³Æ S1:='@del '+Selfname; S2:='if exist '+Selfname+' goto pp'; assignfile(BatchFile,BatFilename); rewrite(BatchFile); writeln(BatchFile,':pp'); writeln(BatchFile,S1); writeln(BatchFile,S2); writeln(BatchFile,'@del %0'); closefile(BatchFile); winexec(pchar(BatFilename),sw_hide);//Òþ²Ø´°¿ÚÔËÐÐa.bat application.Terminate;//Í˳ö³ÌÐò end; ÄÇÎÒÃǵÄÊÂÇéÊDz»ÊǾÍÍêÁË£¿NO£¡ÉÏÃæµÄ³ÌÐòÔ­ÀíÊǶԵģ¬µ«Èç¹ûÄãµÄ³ÌÐòÊÇÔËÐÐÔÚϵͳĿ¼ÏÂÈçWindowsĿ¼Ï»òÕßWindows\SystemµÈĿ¼Ï£¬³ý·ÇÄã´ò¿ªÄǸöĿ¼¿´×ÅËüɾ³ý£¬·ñÔò¸ù±¾Ã»·¨Ð¶µôµÄ¡£ÄÇÔõô°ì£¿±ð¼±£¬ÎÒÃÇÇë³öÒ»¸öº¯ÊýCreateProcess£¬ËüµÄÔ­ÐÍΪ£º BOOL CreateProcess( LPCTSTR lpApplicationName, // pointer to name of executable module LPTSTR lpCommandLine, // pointer to command line string LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes BOOL bInheritHandles, // handle inheritance flag DWORD dwCreationFlags, // creation flags LPVOID lpEnvironment, // pointer to new environment block LPCTSTR lpCurrentDirectory, // pointer to current directory name LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION ); Õâ¸öº¯ÊýºÍOpenProcess¡¢ReadProcessMemory¡¢WriteProcessMemoryʹÓÿÉÒÔÓÃÀ´¶ÁÈ¡ºÍÐÞ¸ÄÄÚ´æÊý¾Ý£¬³£ÓõÄÓÎÏ·ÐÞ¸ÄÆ÷¾ÍÊÇÓÃËü¡£ÓÉÓÚÕâЩ²»ÊDZ¾ÎĵÄÖصãËùÒÔÕâÀï²»×÷Ïêϸ½éÉÜ£¬¸ÐÐËȤµÄ¶ÁÕß¿É×ÔÐз­ÔÄDelphi×Ô´øµÄ°ïÖúÎļþ¡£ÓÃCreateProcessº¯Êý´´½¨Ò»¸ö½ø³Ì¾Í¿ÉÒÔÍêÃÀµÄÍê³ÉÎÒÃǵġ°³ÌÐò×Ôɱ¡±ÁË¡£ ÔËÐÐDelphi£¬Ð½¨Ò»¸ö¹¤³Ì£¬Ìí¼ÓÒ»¸öButtonµ½´°ÌåÉÏ£¬È«²¿´úÂëÈçÏ£º unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure My_DeleteMe; //×Ô¶¨Òå³ÌÐò×Ôɱ¹ý³Ì procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin My_DeleteMe; end; procedure TForm1.My_DeleteMe; //³ÌÐò×Ôɱ //----------------------------------------------------------- function GetShortName(sLongName: string): string; //ת»»³¤ÎļþÃû var sShortName: string; nShortNameLen: integer; begin SetLength(sShortName, MAX_PATH); nShortNameLen := GetShortPathName(PChar(sLongName), PChar(sShortName), MAX_PATH - 1); if (0 = nShortNameLen) then begin // handle errors... end; SetLength(sShortName, nShortNameLen); Result := sShortName; end; //------------------------------------------------- var BatchFile: TextFile; BatchFileName: string; ProcessInfo: TProcessInformation; StartUpInfo: TStartupInfo; begin BatchFileName := ExtractFilePath(ParamStr(0)) + '$$a$$.bat'; AssignFile(BatchFile, BatchFileName); Rewrite(BatchFile); Writeln(BatchFile, ':try'); Writeln(BatchFile, 'del "' + GetShortName(ParamStr(0)) + '"'); Writeln(BatchFile, 'if exist "' + GetShortName(ParamStr(0)) + '"' + ' goto try'); Writeln(BatchFile, 'del %0'); Writeln(BatchFile, 'cls'); Writeln(BatchFile, 'exit'); CloseFile(BatchFile); FillChar(StartUpInfo, SizeOf(StartUpInfo), $00); StartUpInfo.dwFlags := STARTF_USESHOWWINDOW; StartUpInfo.wShowWindow := SW_Hide; if CreateProcess(nil, PChar(BatchFileName), nil, nil, False, IDLE_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo) then begin CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); end; Application.Terminate; end; end. ²¹³ä£º1¡¢ÉÏÃæµÄÅú´¦ÀíµÄ del %0µÈͬÓÚ del a.bat£¬ÓÃdel a.batÔòÅú´¦ÀíÎļþ±ØÐëΪa.bat,ÓÃdel %0Ôò¿ÉÒÔËæÒâ¡£ 2¡¢ËùÓгÌÐòÔÚPwin98+Delphi5¡¢Win2000+Delphi5ÏÂÔËÐÐͨ¹ý¡£ ±¾ÎĵıêÌâΪ¡¶°²×°ÓëжÔØ֮жÔØƪ¡·£¬Ï´ν«½éÉÜÈçºÎÓÃDelphiÖÆ×÷×Ô¼ºµÄ°²×°³ÌÐò¡£¼ÇµÃÓÐһλÖøÃûµÄºÚ¿Í˵¹ý£ºÎÒ´ÓÀ´²»È¥ÕÒʲô¹¤¾ßÈí¼þ£¬ÐèÒªµÄ»°¾Í×Ô¼ºÐ´Ò»¸ö¡£Èç¹ûÎÒÃÇÒ²³ÖÕâÖÖ̬¶È£¬Ôò±à³Ìˮƽһ¶¨»áÔ½À´Ô½¸ß¡£ ÎÊ:ÈçºÎµÃµ½*******ÖеÄÃÜÂë? ´ð:ÕâÀïÓÐÒ»¸öÀý×Ó: //***********************************************************8 //password_dos.dpr£¬³Â¾­èº×÷Æ· //http://lovejingtao.126.com //lovejingtao@21cn.com //***********************************************************8 program password_dos; {$apptype console} //ÉèÖóÌÐòΪ·ÇͼÐνçÃæ uses windows, messages; const s:boolean=true;//ÖÃÑ­»·±êÖ¾ var pass_edit_hwnd:hwnd;//ÃÜÂë´°¿Ú¾ä±ú p:tpoint; //Êó±êÖ¸Õë begin writeln; writeln('**************************************************************************'); writeln; writeln; writeln(' ÐǺÅ*ÃÜÂëÆƽâÆ÷' ); writeln(' ʹÓ÷½·¨:½«Êó±êÒƶ¯µ½ÃÜÂë¿ò,ÃÜÂë¾Í»á×Ô¶¯ÏÖÐÎ!' ); writeln(' °´ Ctrl+C Í˳ö³ÌÐò¡£ ' ); writeln(' \\\|/// ' ); writeln(' \\ - - // ' ); writeln(' ( @ @ ) ' ); writeln(' +----------------------oOOo-(_)-oOOo---------------------+ '); writeln(' | | '); writeln(' | ÈôÔÚʹÓùý³ÌÖз¢ÏÖÈκÎÎÊÌâ»òÓÐеÄÏë·¨Ç뼰ʱÓëÎÒÁªÏµ: | '); writeln(' | Ö÷Ò³:http://lovejingtao.126.com | '); writeln(' | E-MAIL: lovejingtao@21cn.com | '); writeln(' | | '); writeln(' | Oooo ³Â¾­èº 2000.07 | '); writeln(' +---------------------- oooO---( )---------------------+ '); writeln(' ( ) ) / ' ); writeln(' \ ( (_/ ' ); writeln(' \_) ' ); writeln; writeln('**************************************************************************'); writeln; while s<>false do begin getcursorpos(p); //²éÊó±ê×ø±ê pass_edit_hwnd:= WindowFromPoint(p); //·µ»Ø¾ä±ú SendMessage(pass_edit_hwnd,EM_SETPASSWORDCHAR,0,0);//·¢ËÍÏûÏ¢ SendMessage(pass_edit_hwnd,WM_PAINT,0,0); // SendMessage(pass_edit_hwnd,WM_KILLFOCUS,0,0); // ˢд°¿Ú SendMessage(pass_edit_hwnd,WM_SETFOCUS,0,0); // sleep(1000); //ÑÓʱ1000ºÁÃë end; end. ÎÊ:ÈçºÎ¶Ô×¢²á½øÐвÙ×÷? ´ð:Ê×ÏÈ£ºuses registry; var r:TRegistry r:=Tregistry.Create; r.RootKey:=HKEY_LOCAL_MACHINE¡¢HKEY_CURRENT_USER Ö®Àà r.OpenKey('Software\microsoft'Ö®Àà, true); È»ºó¾Í¿ÉÒÔ r.ReadString ¡¢ r.ReadInteger¡¢r.WriteString ¡¢ r.WriteInteger Ö®Àà r.Free; ÎÊ:ÔõôʹÓÃiniÎļþ½øÐÐһЩÉèÖõı£´æ? ´ð:ÆäʵºÜ¼òµ¥,ÔÚusesÖмÓÈëINIFilesÈ»ºó¿ÉÒÔÔÚformµÄonCreateºÍonCloseÁ½¸öʼþÖÐ䶫Î÷,onCreateÊǶÁ³öÒÔǰдµÄÄÚÈÝ,onCloseÊÇдÈë¸ü¸Ä¹ýµÄÄÚÈÝ,ÏÂÃæÊÇÒ»¸öÀý×Ó: ·ÅÒ»¸öCheckBoxºÍEdit uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls,INIFiles;//INIFiles²»ÒªÍüÁË¼Ó procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin With TINIFile.Create('a.ini') do//´´½¨a.ini begin WriteBool('MySetting', 'CheckBox1_Checked', CheckBox1.Checked);{±£´æµ½MySettingÏÂÃæµÄCheckBox1_Checked×Ó¼üÏÂ,È»ºó°ÑCheckbox1µÄÊÇ·ñ°´ÏÂ״̬д½øÈ¥} WriteString('MySetting', 'Edit1_Text', Edit1.Text);//ͬÉÏ end; end; procedure TForm1.FormCreate(Sender: TObject);//¶ÁÈëa.iniÎļþÖеÄÉèÖà begin With TINIFile.Create('a.ini') do//´ò¿ªÒÑ´´½¨µÄa.ini begin CheckBox1.Checked := ReadBool('MySetting', 'CheckBox1_Checked', False);{ͬÉÏÃæµÄдÈëÒ»Ñù,ÕâÀïÊǶÁÈ¡ReadBoolºÍWriteBoolÊÇÁ½¸öBOOLÖµµÄдÈë·½·¨.} Edit1.Text := ReadString('MySetting', 'Edit1_Text', '');//ͬÉÏ end; end; ÎÊ:ÈçºÎÄÜʹһ¸öÕýÔÚÔËÐеijÌÐò×Ô¶¯×î´ó»¯? ´ð:ÕâÊÇÒ»¸öÀý×Ó: var hwndwindow:hwnd; begin hwndwindow:=findwindow(nil,'DELPHI¼¼ÇÉ');//DELPHI¼¼ÒոijÉÄãÒª×î´ó»¯µÄ´°¿Ú±êÌá. if hwndwindow<>0 then//²»µÈÓÚ0ÔòÊÇÕÒµ½ÁËÕâ¸ö´°Ìå postmessage(hwndwindow,WM_SYSCOMMAND,SC_MAXIMIZE,0);//ÓÃpostmessage·¢ËÍÒ»Ìõ×î´ó»¯ÏûÏ¢(SC_MAXIMIZE)µ½Õâ¸ö´°ÌåµÄ¾ä±ú //****************************************************** //ÁíÍâpostmessage(hwndwindow,wm_close,0,0);Ϊ¹Ø±Õ //Èç¹ûÐèÒªÒª×Ô¼ºµÄ³ÌÐòÖÐʹ³ÌÐò¶¯Ì¬±ä×î´ó»¯ÔòÓà form1.windowstate:=wsmaximized; //form1ΪÄãÒª×î´ó»¯µÄ´°¿ÚÃû£¡ //¼¸¸öÒªÓõ½µÄÃû´Ê: 1.hwndÊǾä±úµÄÒâ˼,Ö»ÓÐÏȵõ½ÁË´°ÌåµÄ¾ä±ú²ÅÄÜ¿ØÖÆËü 2.findwindowÊÇÕÒ´°ÌåµÄÒâ˼ 3.nilÊÇ¿ÕÖ¸ÕëµÄÒâ˼ 4.postmessage·¢ËÍÒ»ÌõÏûÏ¢¸øÒ»¸öÒÑÕÒµ½µÄ´°¿Ú¾ä±ú. ÎÊ:ÈçºÎʹ³ÌÐòÔÚÖ´Ðйý³ÌÖÐÔÝÍ£Ò»¶Îʱ¼ä? ´ð:ҪʹÔÚÔËÐÐÖеijÌÐòÔÝÍ£Ò»¶Îʱ¼ä¿ÉÒÔʹÓÃsleepÕâ¸ö¹Ø¼ü´Ê,ÏÂÃæÊÇÒ»¸öÀý×Ó procedure TForm1.Button1Click(Sender: TObject); var h,m,s,ms:word; begin Edit1.text:=DateTimeToStr(now); sleep(2000);//2000¾Í±íʾ2¸ö΢Ãë edit2.text:=DateTimeToStr(now); DecodeTime(strtodatetime(edit2.text)-strtodatetime(edit1.text),h,m,s,ms); showmessage(format('Сʱ£º%d',[h])+format('·ÖÖÓ£º%d',[m])+format('Ã룺%d',[s])+format('΢Ã룺%d',[ms])); end; //ÁíÍâ,ÕâÒ²ÊÇÒ»¸öºÜºÃµÄʱ¼äÏà¼õÀý×Ó ±¨¸æʱ¼äµÄÀý×Ó: //Ïȶ¨Òå: var Present: TDateTime;//¶¨Òå³ÉÈÕÆÚºÍʱ¼ä begin Year, Month, Day, Hour, Min, Sec, MSec: Word;//¶¨ÒåÄêÔÂÈÕСʱ·ÖÖÖÃë΢Ãë DecodeTime(Present, Hour, Min, Sec, MSec);//Ìá³öСʱ·ÖÖÖÃë΢Ãë,ÒÔTDataTime·½Ê½ DecodeDate(Present, Year, Month, Day);//Ìá³öÄêÔÂÈÕ,ÒÔTDataTime·½Ê½ Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month ' + IntToStr(Month) + ' of Year ' + IntToStr(Year);//ÏÔʾ Label2.Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour ' + IntToStr(Hour);//ÏÔʾ end; ÎÊ:ÈçºÎÔÚ´°¿ÚÉϼÓÈëÒ»¸öflash¶¯»­? ´ð:ÏÈ°Ñflash¶¯»­·Åµ½Ò»¸öhtmÎļþÉÏ,È»ºóÔÙ°ÑhtmÎļþµ÷Óõ½´°¿ÚÉÏÀý×ÓÈçÏÂ: procedure TForm1.FormCreate(Sender: TObject); var URL: OleVariant; begin URL := ExtractFilePath(Application.EXEName) + 'fla.htm'; Webbrowser1.Navigate2(URL); end; //ÒªÌí¼ÓÒ»ÏÂwebbrowser¿Ø¼þ ÎÊ:ÔõÑù²ÅÄÜÔÚ³ÌÐòÖÐʵÏÖÌøתµ½ÍøÒ³? ´ð:Àý×ÓÈçÏÂ: procedure TForm1.ToolButton5Click(Sender: TObject); begin shellexecute(handle,nil,pchar('http://go.163.com/delphimyself'),nil,nil,sw_shownormal); end; ÎÊ:ÔõÑù»ñµÃ±¾³ÌÐòµÄËùÔÚĿ¼? ´ð:Àý×ÓÈçÏÂ: procedure TForm1.FormCreate(Sender: TObject); begin edit1.text:=ExtractFilePath(Application.EXEName); end; //ExtractFilePath(application.exename);Êǵõ½Îļþ·¾¶,application.exenane //ExtractFilename(Application.Exename);Êǵõ½ÎļþÃû,EXtractFilename ÎÊ:ÈçºÎ¹Ø±Õwindows? ´ð:Õâ¸ö¿ÉÒԹرÕwindows9Xϵͳ exitwindowsex(ewx_shutdown,0); ÎÊ:ÈçºÎ»ñµÃwindowsµÄ°²×°Ä¿Â¼? ´ð:ÕâÀïÓÐÒ»¸öÀý×Ó: procedure TForm1.Button1Click(Sender: TObject); var dir:array [0..255] of char; begin GetWindowsDirectory(dir,255); edit1.Text:=strpas(dir); end; //Ïȶ¨ÒåÒ»¸ödirÊý×éÊÇcharÀàÐ굀 //È»ºógetwindowsdirectory(dir,255); //ÓÃstrpasº¯ÊýÀ´ÏÔʾ³öÀ´ //»¹ÓÐÒ»¸öÀý×ÓÒ²¿ÉÒÔ×öµ½ÈçÏÂ: procedure TForm1.Button1Click(Sender: TObject); var winpath:pchar; begin getmem(winpath,255); GetWindowsDirectory(winpath,255); edit1.text:=winpath; end; *********************** ÅжÏÊÇ·ñitem±»Ñ¡ÖУº for i:=0 to ListBox.Items.Count-1 do if ListBox.Selected[i] then begin showmessage('ÓÐitem±»Ñ¡ÖÐ'); break; end ÈõÚÒ»ÏѡÖУº¡¡ListBox.ItemIndex:=0; ****************************** »ñÈ¡Ó²ÅÌÐòÁкŠprocedure TForm1.FormCreate(Sender: TObject); var dw,dwTemp1,dwTemp2:DWord; p1,p2:array[0..30] of char; begin GetVolumeInformation(PChar('c:\'),p1,20,@dw,dwTemp1,dwTemp2,p2,20); edit1.text:=inttohex(dw,8);//ϵÁкŠend; *************************** ÔÚ³ÌÐòÖÐÍ϶¯¿Ø¼þ ÔڿؼþµÄmousedownÖÐдÈ룺 ReleaseCapture; SendMessage(Panel1.Handle, WM_SYSCOMMAND, $F012, 0); ÁíÍâ¸Ä±ä$F012µÄÖµ»áÓкܶà±ðµÄ¹¦ÄÜ $F001:¸Ä±ä¿Ø¼þµÄleft´óС $F002:¸Ä±ä¿Ø¼þµÄright´óС $F003:¸Ä±ä¿Ø¼þµÄtop´óС $F004:¸Ä±ä¿Ø¼þµÄbutton´óС $F007:¿Ø¼þ×ó±ß·Å´óËõС $F008:¿Ø¼þÓұ߷ŴóËõС $F009:¶¯Ì¬Òƶ¯¿Ø¼þ ************************ win98ÏÂÒþ²Ø½ø³Ì·½·¨ unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation function RegisterServiceProcess(dwProcessID,dwType: Integer): Integer; stdcall; external 'KERNEL32.DLL'; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); RegisterServiceProcess(GetCurrentProcessID,1); end; end. ÁíÍâÔÚdprÀïÃæµÄApplication.CreateForm(TForm1, Form1);ºóÃæ¼ÓÉÏ Application.ShowMainForm := False; ************************************** ¶Ôijһ¸ö´°¿Ú·¢ËÍÊó±êÏûÏ¢ SendMessage(Handle,WM_LBUTTONDBLCLK,0,0); ¶Ôϵͳ·¢ÏûÏ¢¹Ø±Õ³ÌÐò SendMessage(Handle, WM_CLOSE, 0, 0); Æô¶¯¿ªÊ¼²Ëµ¥ Sendmessage(Application.Handle,WM_SYSCOMMAND,SC_TASKLIST,0); ***************************** ÈÕÆÚʱ¼äÀà²Ù×÷ showmessage(FormatDateTime('yyyy',now));//Äê showmessage(FormatDateTime('mm',now)); //Ô showmessage(FormatDateTime('dd',now)); //ÈÕ showmessage(FormatDateTime('hh',now)); //ʱ showmessage(FormatDateTime('nn',now)); //·Ö showmessage(FormatDateTime('nn',now)); //Ãë showmessage(FormatDateTime('zzz',now)); //ºÁÃë ***************************** Ö´ÐÐdosÃüÁî winexec(pchar('net start w3svc '),sw_hide); ¾ÍÊÇÖ´ÐÐnet start w3svc **************************** Mediaplayer¿Ø¼þ°´Å¦¿ØÖÆ procedure TForm1.FormCreate(Sender: TObject); begin MediaPlayer1.Open; MediaPlayer1.Play; MediaPlayer1.EnabledButtons:=[btPause, btStop, btNext, btPrev, btStep, btBack]; end; procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean); begin case Button of btPlay : begin MediaPlayer1.Play; MediaPlayer1.EnabledButtons:=[btPause, btStop, btNext, btPrev, btStep, btBack]; end; btPause : begin if MediaPlayer1.Mode=mpPaused then begin MediaPlayer1.Play; MediaPlayer1.EnabledButtons:=[btPause, btStop, btNext, btPrev, btStep, btBack]; end else if MediaPlayer1.Mode=mpPlaying then begin MediaPlayer1.Pause; MediaPlayer1.EnabledButtons:=[btPlay, btPause, btStop, btNext, btPrev, btStep, btBack]; end; end; btStop : begin MediaPlayer1.Stop; MediaPlayer1.EnabledButtons:=[btPlay, btNext, btPrev, btStep, btBack]; end; btNext : begin MediaPlayer1.Next; MediaPlayer1.EnabledButtons:=[btPlay, btNext, btPrev, btStep, btBack]; end; btPrev : begin MediaPlayer1.Previous; MediaPlayer1.EnabledButtons:=[btPlay, btNext, btPrev, btStep, btBack]; end; btStep : begin MediaPlayer1.Step; MediaPlayer1.EnabledButtons:=[btPlay, btNext, btPrev, btStep, btBack]; end; btBack : begin MediaPlayer1.Back; MediaPlayer1.EnabledButtons:=[btPlay, btNext, btPrev, btStep, btBack]; end; end; end; **************************** ¶¯Ì¬Éú³ÉÅú´¦ÀíÎļþ var HndFile:Thandle; begin HndFile:= filecreate('delJpg.bat'); filewrite(HndFile,'del *.txt'+#13#10,length('del *.txt'+#13#10)); filewrite(HndFile,'del delJpg.bat',length('del delJpg.bat')); fileclose(HndFile); WinExec(pchar('.\delJpg.bat'),SW_hide); end ÉÏÃæ³ÌÐòÉú³ÉµÄÅú´¦ÀíÎļþÃûΪdeljpg.bat ÆäÄÚÈÝÊÇ del *.txt del deljpg.bat ÔÙ¼ÓÒ»¸ö procedure TForm1.Button1Click(Sender: TObject); var F: TextFile; iFileHandle :integer; begin iFileHandle := FileCreate('f:\delJpg.bat'); FileClose(iFileHandle); AssignFile(F, 'f:\delJpg.bat'); Append(F); Writeln(F, 'del f:\' + edit1.Text + '*.txt'); Writeln(F, 'del f:\delJpg.bat'); CloseFile(F); WinExec(pchar('f:\delJpg.bat'),SW_hide); end; ****************************** ´ò¿ªÐ´°¿Ú£¬Ê¹ÉÏÒ»¼¶´°¿Ú´¦ÓÚ»Ò×´ form2.ShowModal ***************************** procedure TForm1.FormCreate(Sender: TObject); begin edit2.text:=ExtractFilePath(ParamStr(0)); //»ñÈ¡³ÌÐòÔËÐеÄĿ¼·¾¶ edit1.Text:=(Application.ExeName);//»ñÈ¡³ÌÐòÔËÐеÄȫ·¾¶ end; ************************************** Èç¹ûÈȼüÊÇÒªÇóÔÚ±¾³ÌÐòÖÐʹÓÃµÄ ¿ÉÒÔÓÃstuweµÄ·½·¨£º ¼ÓÈý¸öAction ÈçAction1,ÉèÖÃÆäAction1.ShortCutΪF1 ÔÚÆä procedure TForm1.Action1Execute(Sender: TObject); begin ¡¡ shellexecute(....); end; ÆäÓàÁ½¸öÒ»Ñù Èç¹ûÊÇÏëÒªÔÚÕû¸öwindows»·¾³ÏÂÃæµÄÈȼü ¿ÉÒԲο´ÏÂÃ棺 RegisterHotKeyº¯ÊýÔ­Ðͼ°ËµÃ÷£º BOOL RegisterHotKey( HWND hWnd, // window to receive hot-key notification int id, // identifier of hot key UINT fsModifiers, // key-modifier flags UINT vk // virtual-key code); ²ÎÊý idΪÄã×Ô¼º¶¨ÒåµÄÒ»¸öIDÖµ£¬¶ÔÒ»¸öÏß³ÌÀ´½²ÆäÖµ±ØÐèÔÚ0x0000 - 0xBFFF·¶Î§Ö®ÄÚ£¬¶ÔDLLÀ´½²ÆäÖµ±ØÐèÔÚ0xC000 - 0xFFFF ·¶Î§Ö®ÄÚ£¬ÔÚͬһ½ø³ÌÄÚ¸ÃÖµ±ØÐëΨһ ²ÎÊý fsModifiersÖ¸Ã÷ÓëÈȼüÁªºÏʹÓð´¼ü£¬¿ÉȡֵΪ£ºMOD_ALT MOD_CONTROL MOD_WIN MOD_SHIFT ²ÎÊý vkÖ¸Ã÷ÈȼüµÄÐéÄâ¼üÂë Ê×ÏÈ£¨¾Ù¸öÀý×Ó£©£º RegisterHotKey(handle,globaladdatom('hot key'),MOD_ALT,vk_f12); È»ºóÔÚformÖÐÉùÃ÷Ò»¸öº¯Êý£¨¹ý³Ì£©£º procedure hotkey(var msg:tmessage);message wm_hotkey; ¹ý³ÌÈçÏ£º procedure TForm1.hotkey(var msg:tmessage); begin if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then begin form1.show; SetForegroundWindow(handle); end; end; ÕâÑù£¬²»¹ÜÄãÔÚʲôµØ·½£¬´°¿Ú¾Í»áÏÔʾ³öÀ´¡£ µ±È»£¬ÄãÒªGlobalDeleteAtom; unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } aatom:atom; procedure hotkey(var msg:tmessage);message wm_hotkey; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin aatom:=globaladdatom('hot key'); RegisterHotKey(handle,aatom,MOD_ALT,vk_f12); end; procedure TForm1.hotkey(var msg:tmessage); begin if (msg.LParamHi=VK_F12) and (msg.LParamLo=MOD_ALT) then SetForegroundWindow(handle); end; procedure TForm1.FormDestroy(Sender: TObject); begin globalDeleteatom(aatom); end; end. ÍêÕûÔ´´úÂë http://www.aidelphi.com/6to23/docu/hotkey.zip ÒÔÏÂÊÇ Àý×Ó procedure TForm1.FormCreate(Sender: TObject); Var TmpID:Integer; begin TmpID:=GlobalFindAtom('MyHotkey'); if TmpID=0 then //²éÕÒÈ«¾ÖÔ­×Ó.Èç¹û·µ»ØÖµ²»Îª0,Ôò˵Ã÷Õâ¸öÈ«¾ÖÔ­×ÓÒѾ­±»×¢²á; id:=GlobalAddAtom('MyHotkey') else ID:=TmpID; TmpID:=GlobalFindAtom('MyHotkey1'); if TmpID=0 then id1:=GlobalAddAtom('MyHotkey1') else id1:=TmpID; TmpID:=GlobalFindAtom('MyHotkey2'); if TmpID=0 then id2:=GlobalAddAtom('MyHotkey2') else id2:=TmpID; RegisterHotKey(Handle, id, MOD_CONTROL, VK_F1); //×¢²áÈȼü:Ctrl+F1 RegisterHotKey(Handle, id1, MOD_CONTROL, VK_F2);//×¢²áÈȼü:Ctrl+F2 RegisterHotKey(Handle, id2, MOD_CONTROL, VK_F3);//×¢²áÈȼü:Ctrl+F3 end; procedure TForm1.FormDestroy(Sender: TObject); begin UnregisterHotKey(Handle,ID);//ÊÍ·ÅÈȼüCtrl+F1 UnregisterHotKey(Handle,ID1);//ÊÍ·ÅÈȼüCtrl+F2 UnregisterHotKey(Handle,ID2);//ÊÍ·ÅÈȼüCtrl+F3 GlobalDeleteAtom(ID); //ɾ³ýÈ«¾ÖÔ­×ÓID GlobalDeleteAtom(ID1);//ɾ³ýÈ«¾ÖÔ­×ÓID1 GlobalDeleteAtom(ID2);//ɾ³ýÈ«¾ÖÔ­×ÓID2 end; procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin if msg.HotKey=ID then //ÈȼüCtrl+F1µÄÏûÏ¢. ShowMessage('Ctrl+F1!') else if Msg.HotKey=ID1 then //ÈȼüCtrl+F2µÄÏûÏ¢. ShowMessage('Ctrl+F2!') else if Msg.HotKey=ID2 then //ÈȼüCtrl+F3µÄÏûÏ¢. ShowMessage('Ctrl+F3!'); end; ********************************** ÅжϳÌÐòÊÇ·ñÔËÐÐ if FindWindow(Ö÷³ÌÐò´°ÌåÀà,Ö÷³ÌÐò´°Ìå±êÌâ) = 0 then //ÕÒµ½Õâ¸ö³ÌÐò begin ShowMessage('Ö÷³ÌÐòûÓÐÔËÐÐ') ; Application.Terminate ; end; ******************************* µÃµ½Êó±êλÖÃÉϵÄÀà procedure TForm1.Timer1Timer(Sender: TObject); var ClassName: PChar; atCursor: TPoint; hWndMouseOver: HWND;//Êó±êµÄ¾ä±ú Text: PChar; begin GetCursorPos(atCursor);//µÃµ½Êó±ê×ø±ê hWndMouseOver:=WindowFromPoint(atCursor);//µÃµ½Êó±ê¾ä±úºÍλÖà GetMem(ClassName, 100); GetMem(Text, 255); try GetClassName(hWndMouseOver, ClassName, 100); SendMessage(hWndMouseOver, WM_GETTEXT, 255, LongInt(Text)); Label_ClassName.Caption:='ÀàÃû(Classname)£º '+String(ClassName); Edit1.Text:=String(Text); finally FreeMem(ClassName); FreeMem(Text); end; end; ***************************** ʵÏֶϵãÐø´« Èç¹ûʹÓÃICS¿Ø¼þ£¬ÄÇô HttpCli.ContentRangeBegin := '100' ±íʾ´Ó100¿ªÊ¼ HttpCli.ContentRangeEnd :='' ±íʾһֱµ½½áÊø HttpCli.ContentRangeEnd :='200' ±íʾµ½200×Ö½Ú´¦½áÊø Èç¹ûʹÓà TNMHTTP ¿Ø¼þ ÔÚOnAboutToSendʼþ£¬Ð´£º NMHTTP1.SendHeader.values['Range'] := 'bytes=100-' ±íʾ´Ó100×Ö½Ú´¦¿ªÊ¼ÏÂÔص½×îºó NMHTTP1.SendHeader.values['Range'] := 'bytes=100-200' ±íʾ´Ó100×Ö½Ú´¦¿ªÊ¼ÏÂÔص½200×Ö½Ú´¦½áÊø *************** procedure TForm1.Button6Click(Sender: TObject); var f:TSearchRec; begin FindFirst('a.doc',faAnyFile,f); fPreSize:=f.Size; NMFtp.DoCommand('Rest '+IntToStr(fPreSize)); NMFtp.DownloadRestore('a.doc','a.doc'); end; ÕâÊÇÓÃTNMFtpÀ´Ðø´«µÄ´úÂë¡£ ********************************** DelphiÖÐÓÃSender²ÎÊýʵÏÖ´úÂëÖØÓà ÃæÏò¶ÔÏóµÄ±à³Ì¹¤¾ßµÄÌصãÖ®Ò»¾ÍÊÇÒªÌá¸ß´úÂëÖØÓÃÐÔ(Reuse)£¬×÷ΪÐÂÒ»´ú¿ÉÊÓ»¯¿ª·¢¹¤¾ß£¬DelphiÖеĴúÂëÖØÓÃÐÔÏ൱¸ß¡£ÎÒÃÇÖªµÀ£¬ÔÚDelphiÖУ¬´ó²¿·Ö³ÌÐò´úÂ붼ֱ½Ó»ò¼ä½ÓµØ¶ÔÓ¦×ÅÒ»¸öʼþ£¬´Ë³ÌÐò³ÆΪʼþ´¦Àí¾ä±ú£¬Ëüʵ¼ÊÉϾÍÊÇÒ»¸ö¹ý³Ì¡£´ÓÓ¦ÓóÌÐòµÄ¹¤³Ìµ½±íµ¥¡¢¹¹¼þºÍ³ÌÐò£¬DelphiÇ¿µ÷µÄÊÇÆ俪·¢¹ý³ÌÖÐÿһ²ã´ÎµÄÖØÓÃÐÔ£¬¿ÉÒÔͨ¹ý±àдijЩ¹¹¼þ³£ÓõÄʼþ´¦Àí¾ä±úÀ´´ïµ½³ÌÐòÖØÓÃÄ¿µÄ¡£Äã¿ÉÒÔÔÚÊôÐÔ´°¿ÚµÄEventsÒ³ÉϽ«AʼþµÄ´¦Àí¾ä±úÖ¸ÏòBʼþµÄ´¦Àí¾ä±ú£¬ÕâÑùAʼþºÍBʼþ¾Í¹²ÏíÁËÒ»¸ö¹ý³Ì¶Î£¬´Ó¶ø´ïµ½ÁËÖØÓõÄÄ¿µÄ¡£Èç¹û¹²ÏíµÄ³ÌÐò¶ÎÓë·¢Éú¸ÃʼþµÄ¿Ø¼þÎ޹أ¬ÈçShowMessage(¡ähello,world¡ä)£¬ÄÇÕâÖÖ¹²ÏíÊÇ×î¼òµ¥µÄ¡£µ«Ò»°ãÀ´Ëµ£¬´úÂë¶Î¼äµÄ¹²Ïí¶¼¸ú·¢Éú¸ÃʼþµÄ¿Ø¼þÓйأ¬ÐèÒª¸ù¾Ý¿Ø¼þÀàÐÍ×ö³öÏàÓ¦µÄ´¦Àí£¬Õâʱ¾ÍÒªÓõ½Sender²ÎÊý¡£ ¡¡¡¡Ã¿¸ö¹ý³Ì¶ÎµÄ¿ªÍ·¶¼ÀàËÆprocedure TForm1ª±FormClick(Sender:TObject)£»ÆäÖеÄSenderÊÇÒ»¸öTObjectÀàÐ͵IJÎÊý£¬Ëü¸æËßDelphiÄĸö¿Ø¼þ½ÓÊÕÕâ¸öʼþ²¢µ÷ÓÃÏàÓ¦µÄ´¦Àí¹ý³Ì¡£Äã¿ÉÒÔ±àдһ¸öµ¥Ò»µÄʼþ´¦Àí¾ä±ú£¬Í¨¹ýSender²ÎÊýºÍIF¡­THEN¡­Óï¾ä»òÕßCASEÓï¾äÅäºÏ£¬À´´¦Àí¶à¸ö¹¹¼þ¡£·¢ÉúʼþµÄ¹¹¼þ»ò¿Ø¼þµÄÖµÒѾ­¸³¸øÁËSender²ÎÊý£¬¸Ã²ÎÊýµÄÓÃ;֮һ¾ÍÔÚÓÚ£º¿ÉÒÔʹÓñ£Áô×ÖISÀ´²âÊÔSender£¬ÒÔ±ãÕÒµ½µ÷ÓÃÕâ¸öʼþ´¦Àí¾ä±úµÄ¹¹¼þ»ò¿Ø¼þµÄÀàÐÍ¡£ÀýÈ磬½«±íµ¥Öб༭¿òºÍ±êÇ©µÄClickʼþµÄ´¦Àí¾ä±ú¶¼Ö¸Ïò±íµ¥µÄxxx¹ý³Ì£¬±à¼­¿òºÍ±êÇ©¶ÔClickʼþÓв»Í¬µÄ·´Ó¦£º ¡¡¡¡procedure TForm1ª±xxx(Sender:TObject); ¡¡¡¡begin ¡¡¡¡if(sender if Tedit) then ¡¡¡¡showmessage(¡äthis is a editbox¡ä); ¡¡¡¡if(sender is Tlabel) then ¡¡¡¡showmessage(¡äthis is a label¡ä); ¡¡¡¡end; ¡¡¡¡Sender²ÎÊýµÄµÚ¶þ¸öÓÃ;ÊǽáºÏAS²Ù×÷·û½øÐÐÀàÐÍת»»£¬½«Èô¸É¸öÅÉÉúÓÚijһ¸¸ÀàµÄ×ÓÀàÇ¿ÖÆת»»³É¸Ã¸¸Àà¡£ÀýÈç±íµ¥ÖÐÓÐÒ»¸öTEditÀà¿Ø¼þºÍÒ»¸öTMemo¿Ø¼þ£¬ËüÃÇʵ¼ÊÉ϶¼ÅÉÉúÓÚTcustomEditÀ࣬Èç¹ûÄãҪΪ¶þÕßµÄijһʼþÌṩͬÑù´¦Àí£¬¿ÉÒÔ½«¶þÕßʼþ¾ä±ú¶¼Ö¸Ïò×Ô¶¨ÒåµÄ¹ý³Ìyyy: ¡¡¡¡Procedure TForm1.yyy(Sender:TObject); ¡¡¡¡begin ¡¡¡¡(sender as TcustomEdit).text:=¡äThis is some demo text¡ä; ¡¡¡¡end; ¡¡¡¡ÔÚ¹ý³ÌÖУ¬AS²Ù×÷·û½«TEditÀàºÍTMemoÀà¾ùÇ¿ÖÆת»»³ÉTcustomEditÀ࣬ÔÙ¶ÔTcustomEditÀàµÄÊôÐÔ¸³Öµ¡£×¢ÒâÕâÖÖת»»±ØÐë·ûºÏDelphiÖÐÀàµÄ²ã´Î¹Øϵ¡£ ¡¡¡¡Ê¹ÓÃSender²ÎÊý¿ÉÒÔͨ¹ýµ¥Ò»¹ý³Ì¶Î´¦Àí¶àÀà¿Ø¼þ£¬ÕæÕýÌåÏÖÁËDelphiÃæÏò¶ÔÏóµÄÖØÓÃÐÔ¡£ ***************************** ´°¿Ú½¥½¥³öÏÖ AnimateWindow(Handle,1000,AW_CENTER); ***************************** delphiÖÐǶÈë»ã±àµÄ·½·¨ function cyclecount:int64; asm db $0f db $31 end; ********************** ¶ÁBIOSÃû³ÆÈÕÆÚÐòÁкŠ¶ÁBIOSÃû³ÆÈÕÆÚÐòÁкţ¬Õâ¸ö³ÌÐò×î¶Ì£¡ÔÚD5ÖвâÊÔͨ¹ý£¡ with Memo1.Lines do begin Add('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061)))); Add('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091)))); Add('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5)))); Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71)))); end; /////////////////////////////////////////////////////////////////// ¶ÁÖ÷°åÐÅÏ¢£º Ö÷°åÃû³Æ£º String(PChar(Ptr($FE061))); °æȨ£º String(PChar(Ptr($FE091))); ÈÕÆÚ£º String(PChar(Ptr($FFFF5))); ÐòÁкţº String(PChar(Ptr($FEC71))); *********************** ÔÚ20000Ϲػú ÔÚ20000Ϲػú²»ÏóÔÚ98ÏÂÖ±½Óµ÷ÓÃExitWindowsº¯Êý¾Í³É£¬ÄãÊ×ÏÈÒªÓÃOpenProcessTokenº¯Êý´ò¿ªÓë½ø³ÌÏà¹ØµÄ·ÃÎÊÐÅÁîÈ»ºóÔÙʹÓÃExitWindowº¯ÊýÍ˳öWin2000. ÒÔÏÂÕâ¶Î³ÌÐò¿É¹©²Î¿¼£º var hToken :THandle ; tkp :TOKEN_PRIVILEGES ; otkp :TOKEN_PRIVILEGES ; dwLen :Dword ; begin if OpenProcessToken(GetCurrentProcess ,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY ,hToken) then begin LookupPrivilegevalue(Nil ,'SeShutdownPrivilege' ,tkp.Privileges[0].Luid) ; tkp.PrivilegeCount := 1 ; tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken ,False ,tkp ,sizeof(tkp) ,otkp,dwLen) ; if (GetLastError() = ERROR_SUCCESS) then begin ExitWindowsEx(EWX_POWEROFF ,0) ; //¹Ø»ú end ; end ; end; *************************** Ä£Äâ¼üÅÌ»÷¼ü shift + 'a' »»³ÉDelphi ¾ÍÊÇ: keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY + 0,0); keybd_event(65,0,KEYEVENTF_EXTENDEDKEY + 0,0); keybd_event(65,0,KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP,0); keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP,0); ***************************** µ¯³ö¡¢¹Ø±Õ¹âÇý usesÖмÓMMSYSTEM µ¯³ö¹âÇý mciSendString('Set cdaudio door open wait', nil, 0, handle); ¹Ø±Õ¹âÇý mciSendString('Set cdaudio door closed wait', nil, 0, handle); ******************************* ·ÀÖ¹¶Ô»°¿òALT+F4¹Ø±Õ TForm1 = class(TForm) ... private procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; ... end; procedure TForm1.WMSysCommand(var Msg: TWMSysCommand); begin if Msg.CmdType <> SC_CLOSE then inherited end; ********************************* µ÷ÓÃWindowsÄÚºË ¶Ô³ÌÐòÔ±¶øÑÔ£¬ÓÐÒ»¾äÖÁÀíÃûÑÔ¾ÍÊÇ£º¡°Ð´µÃºÃ¾ÍÊÇдµÃÉÙ£¡(Writing better is writing less)¡± »Ø´ð: ÒÔÏÂÃüÁî¿ÉÒÔÖ±½ÓÔÚWindowsµÄÔËÐд°¿ÚÖ±½ÓÖ´ÐУ¬ÔÚDelphiÖÐÄãÒªÕâÑùʹÓ㺠winexec(Pchar('ABCD'),sw_Show); ÆäÖÐ"ABCD"´ú±íÒÔÏÂÃüÁîÖ®Ò»£º "rundll32 shell32,Control_RunDLL" - ÔËÐпØÖÆÃæ°å "rundll32 shell32,OpenAs_RunDLL" - ´ò¿ª"´ò¿ª·½Ê½"´°¿Ú "rundll32 shell32,ShellAboutA Info-Box" - ´ò¿ª"¹ØÓÚ"´°¿Ú "rundll32 shell32,Control_RunDLL desk.cpl" - ´ò¿ª"ÏÔʾÊôÐÔ"´°¿Ú "rundll32 user,cascadechildwindows" - ²ãµþÈ«²¿´°¿Ú "rundll32 user,tilechildwindows" - ×îС»¯ËùÓеÄ×Ó´°¿Ú "rundll32 user,repaintscreen" - Ë¢ÐÂ×ÀÃæ "rundll32 shell,shellexecute Explorer" - ÖØÐÂÔËÐÐWindows Explorer "rundll32 keyboard,disable" - Ëøд¼üÅÌ "rundll32 mouse,disable" - ÈÃÊó±êʧЧ "rundll32 user,swapmousebutton" - ½»»»Êó±ê°´Å¥ "rundll32 user,setcursorpos" - ÉèÖÃÊó±êλÖÃΪ(0,0) "rundll32 user,wnetconnectdialog" - ´ò¿ª"Ó³ÉäÍøÂçÇý¶¯Æ÷"´°¿Ú "rundll32 user,wnetdisconnectdialog" - ´ò¿ª"¶Ï¿ªÍøÂçÇý¶¯Æ÷"´°¿Ú "rundll32 user,disableoemlayer" - ÏÔʾBSOD´°¿Ú, (BSOD) = Blue Screen Of Death, ¼´À¶ÆÁ "rundll32 diskcopy,DiskCopyRunDll" - ´ò¿ª´ÅÅ̸´ÖÆ´°¿Ú "rundll32 rnaui.dll,RnaWizard" - ÔËÐÐ"InternetÁ¬½ÓÏòµ¼", Èç¹û¼ÓÉϲÎÊý"/1"ÔòΪsilentģʽ "rundll32 shell32,SHFormatDrive" - ´ò¿ª"¸ñʽ»¯´ÅÅÌ(A)"´°¿Ú "rundll32 shell32,SHExitWindowsEx -1" - ÀäÆô¶¯Windows Explorer "rundll32 shell32,SHExitWindowsEx 1" - ¹Ø»ú "rundll32 shell32,SHExitWindowsEx 0" - Í˵±Ç°Óû§ "rundll32 shell32,SHExitWindowsEx 2" Windows9x ¿ìËÙÖØÆô "rundll32 krnl386.exe,exitkernel" - Ç¿ÐÐÍ˳öWindows 9x(ÎÞÈ·ÈÏ) "rundll rnaui.dll,RnaDial "MyConnect" - ÔËÐÐ"ÍøÂçÁ¬½Ó"¶Ô»°¿ò "rundll32 msprint2.dll,RUNDLL_PrintTestPage" - Ñ¡Ôñ´òÓ¡»úºÍ´òÓ¡²âÊÔÒ³ "rundll32 user,setcaretblinktime" - ÉèÖùâ±êÉÁ˸ËÙ¶È "rundll32 user, setdoubleclicktime" - ²âÊÔÊó±êË«»÷ËÙ¶È "rundll32 sysdm.cpl,InstallDevice_Rundll" - ËÑË÷·ÇPnPÉ豸 *********************************** messagebeep(0);//Éù¿¨·¢³öbeÉù windows.beep(2000,2000);//pcÀ®°È·¢³öbeÉù£¬ºÜÏÅÈË//Ç°Ò»¸öÊÇƵÂÊ£¬ºóÒ»¸öÊÇÑÓʱ£¬98Ï»áºöÂÔ ******************************************************* µÃµ½¿ÉÓÃÄÚ´æºÍϵͳ×ÊÔ´ procedure Tversion.FormCreate(Sender: TObject); var MS: TMemoryStatus; begin GlobalMemoryStatus(MS); label5.Caption := '¿ÉÓÃÄڴ棺'+FormatFloat('#,###" KB"', MS.dwTotalPhys / 1024); label6.Caption := 'ϵͳ×ÊÔ´ '+Format('%d %%', [MS.dwMemoryLoad])+' ¿ÉÓÃ'; end; ***************************************************** ¼ì²é³ÌÐòÊÇ·ñÎÞÏìÓ³ function IsBusy(ProcessId: Integer): Integer; var Ph: THandle; begin Ph := OpenProcess(PROCESS_ALL_ACCESS, false, ProcessId); if Ph <> 0 then begin if WaitForInputIdle(Ph, 10) = WAIT_TIMEOUT then Result := 1 else Result := 0; CloseHandle(Ph); end else Result := -1; end; ****************************** ËöסÊó±ê + Ëöס¼üÅÌ -*******-*-***************** var a:TRect; temp:integer; begin {ÆÁ±Îϵͳ¼ü} SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0); a:=rect(0,0,5,5); {Ëø¶¨Êó±êÔÚÒ»¶¨ÇøÓòÄÚ£¬×îºÃËøÔÚÄãµÄ´°¿ÚÀï} ClipCursor(@a); end; {½â³ýËø¶¨} begin SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @temp, 0); ClipCursor(nil); end; ****************************** copyÆÁÄ» -*-*-*-*-*-*-*-*-*-*-*-*-*-*-* procedure TForm1.Button1Click(Sender: TObject); var dc:hdc; mycanvas:TCanVas; mybitmap:TBitmap; begin application.Minimize; mycanvas:=TCanvas.Create; mybitmap:=tbitmap.Create; dc:=getdc(0); try myCanvas.Handle := DC; with Screen do begin MyBitmap.Width := Width; MyBitmap.Height := Height; MyBitmap.Canvas.CopyRect(Rect(0,0,Width,Height),myCanvas,Rect(0,0,Width,Height)); image1.Picture.Bitmap.Assign(mybitmap); end; finally releasedc(0,dc); mycanvas.Free; mybitmap.Free; end; application.Restore; end; *************************** ACCESS¼¼Çɼ¯ ×÷Õß:ysai תÔØÇë±£³ÖÎÄÕÂÍêÕû²¢±êÃ÷³ö´¦ 1.DELPHIÖвÙ×÷ACCESSÊý¾Ý¿â(½¨Á¢.mdbÎļþ,ѹËõÊý¾Ý¿â) ÒÔÏ´úÂëÔÚWIN2K,D6,MDAC2.6ϲâÊÔͨ¹ý, ±àÒëºÃµÄ³ÌÐòÔÚWIN98µÚ¶þ°æÎÞACCESS»·¾³ÏÂÔËÐгɹ¦. //ÉùÃ÷Á¬½Ó×Ö·û´® Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;'; //============================================================================= // Procedure: GetTempPathFileName // Author : ysai // Date : 2003-01-27 // Arguments: (None) // Result : string //============================================================================= function GetTempPathFileName():string; //È¡µÃÁÙʱÎļþÃû var SPath,SFile:array [0..254] of char; begin GetTempPath(254,SPath); GetTempFileName(SPath,'~SM',0,SFile); result:=SFile; DeleteFile(result); end; //============================================================================= // Procedure: CreateAccessFile // Author : ysai // Date : 2003-01-27 // Arguments: FileName:String;PassWord:string='' // Result : boolean //============================================================================= function CreateAccessFile(FileName:String;PassWord:string=''):boolean; //½¨Á¢AccessÎļþ£¬Èç¹ûÎļþ´æÔÚÔòʧ°Ü var STempFileName:string; vCatalog:OleVariant; begin STempFileName:=GetTempPathFileName; try vCatalog:=CreateOleObject('ADOX.Catalog'); vCatalog.Create(format(SConnectionString,[STempFileName,PassWord])); result:=CopyFile(PChar(STempFileName),PChar(FileName),True); DeleteFile(STempFileName); except result:=false; end; end; //============================================================================= // Procedure: CompactDatabase // Author : ysai // Date : 2003-01-27 // Arguments: AFileName,APassWord:string // Result : boolean //============================================================================= function CompactDatabase(AFileName,APassWord:string):boolean; //ѹËõÓëÐÞ¸´Êý¾Ý¿â,¸²¸ÇÔ´Îļþ var STempFileName:string; vJE:OleVariant; begin STempFileName:=GetTempPathFileName; try vJE:=CreateOleObject('JRO.JetEngine'); vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]), format(SConnectionString,[STempFileName,APassWord])); result:=CopyFile(PChar(STempFileName),PChar(AFileName),false); DeleteFile(STempFileName); except result:=false; end; end; 2.ACCESSÖÐʹÓÃSQLÓï¾äӦעÒâµÄµØ·½¼°¼¸µã¼¼ÇÉ ÒÔÏÂSQLÓï¾äÔÚACCESS XPµÄ²éѯÖвâÊÔͨ¹ý ½¨±í: Create Table Tab1 ( ID Counter, Name string, Age integer, [Date] DateTime); ¼¼ÇÉ: ×ÔÔö×Ö¶ÎÓà Counter ÉùÃ÷. ×Ö¶ÎÃûΪ¹Ø¼ü×ÖµÄ×Ö¶ÎÓ÷½À¨ºÅ[]À¨ÆðÀ´,Êý×Ö×÷Ϊ×Ö¶ÎÃûÒ²¿ÉÐÐ. ½¨Á¢Ë÷Òý: ÏÂÃæµÄÓï¾äÔÚTab1µÄDateÁÐÉϽ¨Á¢¿ÉÖظ´Ë÷Òý Create Index iDate ON Tab1 ([Date]); Íê³ÉºóACCESSÖÐ×Ö¶ÎDateË÷ÒýÊôÐÔÏÔʾΪ - ÓÐ(ÓÐÖظ´). ÏÂÃæµÄÓï¾äÔÚTab1µÄNameÁÐÉϽ¨Á¢²»¿ÉÖظ´Ë÷Òý Create Unique Index iName ON Tab1 (Name); Íê³ÉºóACCESSÖÐ×Ö¶ÎNameË÷ÒýÊôÐÔÏÔʾΪ - ÓÐ(ÎÞÖظ´). ACCESSÓëSQLSERVERÖеÄUPDATEÓï¾ä¶Ô±È: SQLSERVERÖиüжà±íµÄUPDATEÓï¾ä: UPDATE Tab1 SET a.Name = b.Name FROM Tab1 a,Tab2 b WHERE a.ID = b.ID; ͬÑù¹¦ÄܵÄSQLÓï¾äÔÚACCESSÖÐÓ¦¸ÃÊÇ UPDATE Tab1 a,Tab2 b SET a.Name = b.Name WHERE a.ID = b.ID; ¼´:ACCESSÖеÄUPDATEÓï¾äûÓÐFROM×Ó¾ä,ËùÓÐÒýÓÃµÄ±í¶¼ÁÐÔÚUPDATE¹Ø¼ü×Öºó. ÉÏÀýÖÐÈç¹ûTab2¿ÉÒÔ²»ÊÇÒ»¸ö±í,¶øÊÇÒ»¸ö²éѯ,Àý: UPDATE Tab1 a,(Select ID,Name From Tab2) b SET a.Name = b.Name WHERE a.ID = b.ID; ·ÃÎʶà¸ö²»Í¬µÄACCESSÊý¾Ý¿â-ÔÚSQLÖÐʹÓÃIn×Ó¾ä: Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID; ÉÏÃæµÄSQLÓï¾ä²éѯ³öµ±Ç°Êý¾Ý¿âÖÐTab1ºÍdb2.mdb(µ±Ç°Îļþ¼ÐÖÐ)ÖÐTab2ÒÔIDΪ¹ØÁªµÄËùÓмǼ. ȱµã-ÍⲿÊý¾Ý¿â²»ÄÜ´øÃÜÂë. ÔÚACCESSÖзÃÎÊÆäËüODBCÊý¾ÝÔ´ ÏÂÀýÔÚACCESSÖвéѯSQLSERVERÖеÄÊý¾Ý SELECT * FROM Tab1 IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;] ÍⲿÊý¾ÝÔ´Á¬½ÓÊôÐÔµÄÍêÕû²ÎÊýÊÇ: [ODBC;DRIVER=driver;SERVER=server;DATABASE=database;UID=user;PWD=password;] ÆäÖеÄDRIVER=driver¿ÉÒÔÔÚ×¢²á±íÖÐµÄ HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ ÖÐÕÒµ½ ACCESSÖ§³Ö×Ó²éѯ ACCESSÖ§³ÖÍâÁ¬½Ó,µ«²»°üÀ¨ÍêÕûÍⲿÁª½Ó,ÈçÖ§³Ö LEFT JOIN »ò RIGHT JOIN µ«²»Ö§³Ö FULL OUTER JOIN »ò FULL JOIN ACCESSÖеÄÈÕÆÚ²éѯ ×¢Òâ:ACCESSÖеÄÈÕÆÚʱ¼ä·Ö¸ô·ûÊÇ#¶ø²»ÊÇÒýºÅ Select * From Tab1 Where [Date]>#2002-1-1#; ÔÚDELPHIÖÐÎÒÕâÑùÓà SQL.Add(Format( 'Select * From Tab1 Where [Date]>#%s#;', [DateToStr(Date)]));