DELPHI ÖÐÈçºÎÌáÉý½ø³ÌÁîÅÆ
ת:DELPHI ÖÐÈçºÎÌáÉý½ø³ÌÁîÅÆ
½üÒ»¶Îʱ¼äÔÚÓÃDELPHIд¸ö³ÌÐò,µ±ÎÒдµ½Ò»¸ö½áÊøÆäËû½ø³ÌµÄÄ£¿éµÄʱºòÓÐʱ²»³É¹¦,ÄÇÊÇÒòΪÆäËû½ø³Ì,È粡¶¾½ø³ÌµÄȨÏÞ¸ß,ͨ¹ý³£¹æµÄ½áÊø½ø³ÌµÄº¯ÊýÐв»Í¨,ÒªÊ×ÏÈÌá¸ß×ÔÉí³ÌÐòµÄȨÏÞ,ÔÙ½áÊøÆäËû½ø³Ì
ÔÚÍøÉÏÒ²¿´µ½ÁËһЩÌáÉý½ø³ÌÁîÅÆµÄº¯Êýµ«¶¼²»ÔõôºÃÓÃ,×îºóÎÒ»¹ÊÇ´ÓÒ»¸öºÚ¿ÍºóÃųÌÐòµÄÔ´´úÂëÖÐÌáÈ¡³öÁËÒ»¸öºÃµÄÌáÉý½ø³ÌÁîÅÆµÄº¯Êý,²»¸Ò¶ÀÏí,¸ú´ó¼Ò·ÖÏíÏÂ
Í·²¿Çë¼ÓÈë:Tlhelp32
//ÌáÉý½ø³ÌȨÏÞΪDEBUGȨÏÞ
procedure SetPrivilege;
var
OldTokenPrivileges, TokenPrivileges: TTokenPrivileges;
ReturnLength: dword;
hToken: THandle;
Luid: int64;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
LookupPrivilegeValue(nil, 'SeDebugPrivilege', Luid);
TokenPrivileges.Privileges[0].luid := Luid;
TokenPrivileges.PrivilegeCount := 1;
TokenPrivileges.Privileges[0].Attributes := 0;
AdjustTokenPrivileges(hToken, False, TokenPrivileges, SizeOf(TTokenPrivileges), OldTokenPrivileges, ReturnLength);
OldTokenPrivileges.Privileges[0].luid := Luid;
OldTokenPrivileges.PrivilegeCount := 1;
OldTokenPrivileges.Privileges[0].Attributes := TokenPrivileges.Privileges[0].Attributes or SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, False, OldTokenPrivileges, ReturnLength, PTokenPrivileges(nil)^, ReturnLength);
end;
Ó÷¨¾Í²»ÓÃ˵Á˰É,
procedure TForm1.FormCreate(Sender: TObject);
begin
SetPrivilege;
...
Ò»¾ä»°¾Í°Ñ³ÌÐòÌáÉýΪDEBUGȨÏÞÁË,È»ºó¾Í¿ÉÒÔËæ±ã½áÊøÆäËû½ø³ÌÁË
ÕâÀïÒ²¸½´øÌù³öÒ»¸ö½áÊø½ø³ÌµÄº¯Êý¹©´ó¼Ò²Î¿¼:
function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((
Ïà¹ØÎĵµ£º
Ò»Ö±ÏëÈÃDelphi×öΪRIA£¬¶øÒµÎñ²ãʹÓÃJava£¡½ñÌìûÊÂ×ö£¬¼òµ¥ÊµÏÖÁËһϣ¡
ĿǰÓÐ2ÖÖ·½°¸£º
WebService
IndyHttpµ÷ÓÃServlet
ÒÔÏÂÊÇÓÃIndyHttpÀ´µ÷ÓÃServlet
Ò»¡¢ÏÈдһ¸öhelloworldµÄServlet
1.±àдuiÒÔ¼°service
//¹¤¾ß°ü
package com.cdrs.jutils;
import java.io.IOException;
import java.util.Date;
impor ......
ǰ¶Îʱ¼äÒòΪÏîÄ¿ÐèÒª£¬»ñȡָ¶¨ÎļþµÄͼ±ê£¬ÈÆÁ˺ܶàÍä×Ó£¬ÏÖÔÚŪ³öÀ´ÁË£¬¸ú´ó¼Ò¹²ÏíÏÂ.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI, ExtCtrls;
type
TForm1 = class(TForm)
l ......
delphiÖеÄDLLÖеÄÉùÃ÷ÔÂëÈçÏ£º
ÕâÀïÉùÃ÷ÁËÊä³öÐÔ²ÎÊý·Ö±ðΪÊý×ÖÓë×Ö·ûÀàÐÍ
library dll1;
uses
SysUtils,
Classes;
{$R *.res}
Function mymax(x, y: Integer; out jj: Integer; out abc: PChar): Integer; stdcall;
begin
jj := x * y;
abc := PChar(StrPas(abc) + 'ÕâÊÇ´«³öµÄ' ......
¶¨Ò壺
CbName: TComboBox;
width: Integer; //ʵ¼ÊËùÐèµÄ¿í¶È
ÔÚÖ´ÐдúÂëÖа´ÈçÏ·½·¨Ð´£º
width := CbName.Canvas.TextWidth(CbName.Items[I]); //¿ÉÓô˷½·¨Í¨¹ý±éÀú»ñµÃijѡÏîµÄ×î´ó¿í¶È£¬Ò²¿ÉÒÔ°´×Ô¼ºµÄÐ ......