ÓÃDelphi±àÖÆ¿É×Ô¶¯Éý¼¶³ÌÐò
ÔÚ±àÖÆÁËÒ»¸öÓ¦ÓóÌÐòºóµÄά»¤½×¶Î£¬ÎÒÃÇ»áÃæÁÙ¸øÓ¦ÓóÌÐòÉý¼¶µÄ¹¤×÷.ÎÞÒÉ£¬ÊÖ¹¤Éý¼¶µÄ¹¤×÷ÊÇÊ®·Ö·±ËöµÄ£¬Äã¿ÉÄÜ»áÐèÒªµ½Óû§µÄ»úÆ÷ÉÏÈ¥¸üÐÂÎļþ.¿ÉÊÇ£¬Èç¹ûÄܱàÒ»¸ö×Ô¶¯Éý¼¶³ÌÐò£¬·ÅÔÚÍøÂçÉÏ£¬ÈÃÓû§ÏÂÔØ£¬Ö»ÐèÖ´ÐÐһϾÍÍê³ÉÉý¼¶¹¤×÷£¬²»ÊǺܷ½±ãÂð£¿Æäʵ£¬ÓÃDelphi¿ÉÒԺܷ½±ãµØ±àÖÆ³öÕâÑùÒ»¸öµÄ³ÌÐò.
ÒÔÏÂÊÇÎÒÃǵÄÀý×Ó£¬ÉèÎÒÃÇÒѾÓÐÒ»¸öÓ¦ÓóÌÐòThis.exe£¬Òª¶ÔËüÉý¼¶£¬ÓÃÀ´Éý¼¶µÄ³ÌÐòΪUpgrade.exe.
1£®ThisµÄ¹¤³ÌÎļþ¿ò¼Ü
program THIS;
uses
SysUtils,
Windows,
Forms,
...;
ÎÒÃǽ«ËüдÈë´úÂëÖУ¬ÒòΪÕâÔÚDelphiµÄ¹¤³ÌÎļþÖÐÊÇûÓÐ×Ô¶¯Éú³ÉµÄ.“…”²¿·ÖÊÇÄã´´½¨µÄ´°Ì岿·Ö
Var
Fn : String;
TSI : TStartupInfo;
TPI : TProcessInformation;
{$R *.RES}
begin
“Éý¼¶³ÌÐò”ʹÓÃFileAgeÀ´¼ì²éÔÀ´Ó¦ÓóÌÐòµÄ½¨Á¢Ê±¼ä£¬Èç¹û¼ì²âµ½µÄÊǾɰ汾£¬ÔòÌáʾÉý¼¶:
IF FileAge(‘SomeServerSomeDirthis.exe‘) ¡µ FileAge(ParamStr(0)) THEN
IF Application.MessageBox(‘ÕâÊÇÒ»¸ö¸üа汾µÄTHIS.EXE.‘+££13‘ÄãÒªµÃµ½Ð°汾µÄÉý¼¶ÎļþÂ𣿑, ‘Upgrade Time!‘,1) = 1 THEN
Begin
ÔËÐÐÉý¼¶³ÌÐòʱ£¬Éý¼¶³ÌÐòÓ¦ÓëÔÖ÷³ÌÐòthis.exeÔÚͬһĿ¼ÏÂ.Èç¹ûµ±ËüÆô¶¯Ê±£¬Õâ¸ö°æ±¾Ö÷³ÌÐòÓ¦¸ÃÍ˳ö£¬µ«Òª±£Ö¤Ëü²»»áɾ³ýÈκÎÎļþ£¬ÒòΪ´ËʱApplication.Initialize»¹Ã»Óб»µ÷ÓÃ.´úÂëÈçÏÂ:
Fn:= ExtractFilePath(ParamStr(0))+‘UpgradeThis.exe‘;
FillChar(TSI, SizeOf(TSI), 0);
TSI.CB := SizeOf(TSI);
IF CreateProcess (PChar(Fn), NIL, NIL, NIL, False,
DETACHED_PROCESS, NIL, NIL, TSI, TPI)
THEN Exit
µ«ÊÇ£¬Èç¹û“Éý¼¶³ÌÐò”ÓÉÓÚijЩÔÒòûÓÐÔËÐУ¬ÎÒÃÇ´ËʱӦ¸Ã¸æËßÓû§£¬ËûÄÜͨ¹ýÆäËû·½·¨µÃµ½Ò»¸ö¸üеijÌÐò°æ±¾£¬ÕâʱÎÒÃÇÒÀÈ»Í˳öÖ÷³ÌÐòÒÔ±ãÓû§Éý¼¶.Èç¹û±ØÒªµÄ»°£¬Ò²¿ÉÒÔ¼ÌÐø×°Èë²¢ÔËÐоɰ汾.
ELSE
Begin
messagebeep(0);
Application.MessageBox(‘²»ÄÜÍê³ÉÎļþ¿½±´.‘+‘ ‘ ÇëÊÖ¹¤¿½±´£¡.‘, ‘Copy Error!‘,1);
Exit;
End;
End;
Application.Initialize;
Application.Title := ‘This‘;
Application.HelpFile := ‘This.hlp‘;
{autocreate forms, etc.}
Application.Run;
end.
Èç¹û×Ô¶¯Éý¼¶³ÌÐòÊÇÒ»¸ö¿ØÖÆÌ¨³ÌÐò£¬ÄÇôһ
Ïà¹ØÎĵµ£º
ÒÔǰÓùýdelphi 2007µÄÕâ¸öº¯ÊýµÄ£¬²ÎÊý³¬¶à£¬ÏÖÔڵĹ«Ë¾ÓÃD7£¬½á¹ûÍøÉÏÒ»²éÕâ¸öº¯Êý£¬Óò»³ÉÁË£¬ÔÀ´ÎÒÓôíÁ˺¯Êý
unit QDialogs;
{$IFDEF LINUX}
function SelectDirectory(const Caption, Root: WideString;
var Directory: WideString; ShowHidden: Boolean = False): Boolean;
{$ENDIF}
{$IFDEF MSWINDOW ......
Chr ½«Ò»¸öÓÐÐòÊý¾Ýת»»ÎªÒ»¸öANSI×Ö·û
Ord ½«Ò»¸öÓÐÐòÀàÐÍֵת»»ÎªËüµÄÐòºÅ
Round ת»»Ò»¸öʵÐÍֵΪËÄÉáÎåÈëºóµÄÕûÐÍÖµ
Trunc ת»»Ò»¸öʵÐÍֵΪСÊý½Ø¶ÏºóµÄÕûÐÍÖµ
Int ·µ»Ø¸¡µãÊýµÄÕûÊý²¿·Ö
IntToStr ½«Êýֵת»»Îª×Ö·û´ ......
Delphi¼üÅ̰´¼üαÂë
Ó÷¨£ºif key = chr(VK_RETURN) then...
³£ÊýÃû³Æ Ê®Áù½øÖÆÖµ Ê®½øÖÆÖµ ¶ÔÓ¦°´¼ü
VK_LBUTTON 01 1 Êó±êµÄ×ó¼ü
VK_RBUTTON 02 2 Êó±êµÄÓÒ¼ü
VK-CANCEL 03 3 Contol-break Ö´ÐÐ
VK_MBUTTON 04 4 Êó±êµÄÖмü£¨Èý°´¼üÊó±ê)
VK_BACK 08 8 Backspace¼ü
VK_TAB 09 9 Tab¼ü
VK_CLEAR 0C 12 Clear¼ü
VK ......
ÓÐЩʱºò,ҪдһЩ³ÌÐò,ÔÚ JAVA ÀïÃæºÃÄÑʵÏÖ, µ«Èç¹ûʹÓÃÆäËü±à³ÌÓïÑÔÈ´ÓֱȽÏÈÝÒ×ʱ,ÎÒÃDz»·Áͨ¹ý JNI À´Èò»Í¬ÓïÑԵijÌÐò¹²Í¬Íê³É.
JNI µÄ½Ì³Ì, ÍøÉÏ C µÄ±È½Ï¶à,Java Ò²ÌṩÁË javah.exe Ϊ C ÓïÑ﵀ JNI ³ÌÐòÉú³ÉÍ·Îļþ, Èç¹ûÄãÊÇÒ»¸ö Delphi ±à³ÌÔ±, ÄÜ·ñÈà JAVA Óë Delphi ³ÌÐò½»»¥ÄØ? ´ð°¸Êǿ϶¨µÄ,½ñÌìÎÒÃǾÍÀ´ ......