Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
현재 실행하고 있는 나 자신의 프로세스와 파일을 죽이는법?
현재 실행되고 있는 주체의 파일과 프로세스를 죽이는 법이 있나요?
만약 c:test.exe를 더블클릭해서 실행하는데 이 test.exe가 하고 싶은 일이 c:test.exe파일을 지우고 싶은데 어떻게 하면 되나요?
고수님들의 답변 부탁드립니당....
1
COMMENTS
Ziker
•
2001.07.05 00:06
안녕하세요 지커(김성규)입니다.
이 게시판에서 이전에 올라온 질문 내용의 답변을 발췌한 것입니다.
program SelfModifier; (* Looks for a const and alters it *)
(* Puts paramstr(1) into Name *)
const
Name : string = 'Fix me up'; {get 256 bytes to play with}
type
Buffer = array[0..$3fff] of byte;
var
ExeFile : file;
P : ^Buffer;
N,I,O : word;
NStr : string;
begin
begin
new(P); {get mem for our buffer}
assign(ExeFile,paramstr(0)); {get myself}
reset(ExeFile,1);
blockread(ExeFile,P^,sizeof(Buffer),N);
close(ExeFile); {got it into Buf, now close it}
O:=(dseg-cseg+word(P^[8])) shl 4; {start of data seg in exe file}
writeln('Name: ',Name);
NStr := paramstr(1); {new string to put in Name}
inc(O,ofs(Name)); {where Name is located}
move(NStr[0],P^[O],length(NStr)+1); {move string incl. length byte}
rewrite(ExeFile,1); {create new version}
blockwrite(ExeFile,P^,N); {write it}
close(ExeFile); {close it...}
dispose(P) {...and release mem}
end
end.
procedure DeleteMe;
var
BatchFile: TextFile;
BatchFileName: string;
ProcessInfo: TProcessInformation;
StartUpInfo: TStartupInfo;
begin
{ create a batchfile in the applications directory }
BatchFileName := ExtractFilePath(ParamStr(0)) + '$$336699.bat';
{ open and write the file }
AssignFile(BatchFile, BatchFileName);
Rewrite(BatchFile);
Writeln(BatchFile, ':try');
Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
Writeln(BatchFile,
'if exist "' + ParamStr(0) + '"' + ' goto try');
Writeln(BatchFile, 'del "' + BatchFileName + '"');
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;
end;
진짜초보 wrote:
> 현재 실행되고 있는 주체의 파일과 프로세스를 죽이는 법이 있나요?
>
> 만약 c:test.exe를 더블클릭해서 실행하는데 이 test.exe가 하고 싶은 일이 c:test.exe파일을 지우고 싶은데 어떻게 하면 되나요?
>
> 고수님들의 답변 부탁드립니당....
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
어린왕자
•
2001.07.05 02:28
1
COMMENTS
/
0
LIKES
variant값..비교 어떻게 해여? (__);;
나그네
•
2001.07.05 07:01
Variant에 어떠한 값도 없으므로 그런 에러가 발생합니다. 비교하기 전에 먼저 값을 할당 해 보세요 v1 :...
정성훈
2001.07.05 02:21
0
COMMENTS
/
0
LIKES
[급질문]BDE 에러문제.
왕초
•
2001.07.05 02:20
1
COMMENTS
/
0
LIKES
서버소켓의 클라이언트 접속수
박구남
•
2001.07.06 11:26
저도 같은 질문을 델마당에 올린적이 있는데요 이곳에선 답변이 없네요 :) OS마다 틀리다고 하네요 win2k ...
어린왕자
2001.07.05 01:52
0
COMMENTS
/
0
LIKES
[초보질문]TADOTable로 테이블 만드는 방법여..
초보
•
2001.07.05 01:31
2
COMMENTS
/
0
LIKES
TQuery 사용시 질문..
Ziker
•
2001.07.05 01:41
안녕하세요 지커(김성규)입니다. TQuery 컴포넌트에 sql 를 작성할때 프라퍼티 창에서 해 주시든... 코...
초보
•
2001.07.05 03:53
님께서 아래글중에 잘못 해석하신 부분이 있어 다시 수정합니다. 이래글중 편집을 님께선 Query해온 결과...
kd
•
2001.07.05 01:19
1
COMMENTS
/
0
LIKES
Image에 Text File 내용 출력 방법 알려 주세요
반칙왕
•
2001.07.05 18:45
kd wrote: > text 파일을 Image에 출력하고 싶은데 어떡하면 될지... > > 구현방법 부탁 드립니다. > ...
델초
2001.07.05 01:15
0
COMMENTS
/
0
LIKES
[급] RichEdit 내용을 미리보기 화면으로...
goldlee
2001.07.06 00:40
0
COMMENTS
/
0
LIKES
[급 질문]dll과 datamodule
박병순
2001.07.05 00:43
0
COMMENTS
/
0
LIKES
*. qrp 화일을 불러사용하면 출력이 이상?
최진영
•
2001.07.05 00:41
1
COMMENTS
/
0
LIKES
임의의 직선의 각도를 알려면요?
승추니
•
2001.07.05 02:59
최진영 wrote: > 안녕하세요 > > 시작과 끝점의 x,y 좌표를 가지고 있는 > > 임의의 직성의 각도를 ...
김동민
•
2001.07.05 00:03
2
COMMENTS
/
0
LIKES
컴포넌트의 개수 알아내기..
Ziker
•
2001.07.05 00:20
안녕하세요 지커(김성규)입니다... 자답을 하셨네요.. 축하 드립니다.. 다음과 같은 방법을 쓰셔두 됩...
김동민
•
2001.07.05 00:07
파라미터로 폼을 넘겨줘서 해결했어요..^^ 그럼 이만... 김동민 wrote: > 지금 A라는 컴포넌트를 만들...
진짜초보
•
2001.07.04 23:59
1
COMMENTS
/
0
LIKES
현재 실행하고 있는 나 자신의 프로세스와 파일을 죽이는법?
현재 실행되고 있는 주체의 파일과 프로세스를 죽이는 법이 있나요? 만약 c:test.exe를 더블클릭해서 실행하는데 이 test.exe가 하고 싶은 일이 c:test.exe파일을 지우고 싶은데 어떻게 하면 되나요? 고수님들의 답변 부탁드립니당....
Ziker
•
2001.07.05 00:06
안녕하세요 지커(김성규)입니다. 이 게시판에서 이전에 올라온 질문 내용의 답변을 발췌한 것입니다. ...
델초보
•
2001.07.04 23:39
3
COMMENTS
/
0
LIKES
DOS에서요...
Ziker
•
2001.07.05 00:01
안녕하세요 지커(김성규)입니다. 다음과 같이 하십시오. WinExec(PChar('COMMAND.COM /C ' + TmpDir)...
델초보
•
2001.07.05 01:22
Ziker wrote: > 안녕하세요 지커(김성규)입니다. > > 다음과 같이 하십시오. > > WinExec(PChar('CO...
Ziker
•
2001.07.05 19:50
안녕하세요 지커(김성규)입니다~~ 이론이론.. 안되신다구요? 헉.. 전 테스트 했을때 되길래 되는줄 알...
인어공주
•
2001.07.04 23:36
1
COMMENTS
/
0
LIKES
에러 메세지
Ziker
•
2001.07.04 23:45
안녕하세요 지커 입니다. 엑서스 바이올레이션 에러는.. 메모리 에러와 동일 하다고 할수 있는데, 특정...
델사랑
•
2001.07.04 23:21
2
COMMENTS
/
0
LIKES
txt 파일에 append
Ziker
•
2001.07.04 23:54
안녕하세요 지커 입니다. 다음과 예제를 참조 하세요. procedure TForm1.Button1Click(Sender: T...
참이슬
•
2001.07.04 23:46
TStringList를 사용하시면 편한데요..삽입 삭제등은.. var StrL:TStringList; begin StrL:TS...
왕초보
2001.07.04 22:46
0
COMMENTS
/
0
LIKES
디비그리드에서
크니
2001.07.04 21:30
0
COMMENTS
/
0
LIKES
레코드형의 통신에서..
초보
•
2001.07.04 21:15
2
COMMENTS
/
0
LIKES
file을 copy하는반법좀...
Ziker
•
2001.07.04 21:26
안녕하세요 지커 입니다. Function CopyFile(Source,Target:String):Integer; Var RRead : Inte...
초보
•
2001.07.04 21:49
Ziker wrote: > 안녕하세요 지커 입니다. > > > Function CopyFile(Source,Target:String):Integer;...
어린왕자
2001.07.04 20:52
0
COMMENTS
/
0
LIKES
ftWideString형태의 필드에 값을 넣는 방법 좀 갈켜주세요..
초짜
•
2001.07.04 20:46
1
COMMENTS
/
0
LIKES
프로그램설치에러
Ziker
•
2001.07.04 21:21
안녕하세요 지커 입니다. 실제적으로 Database 에서 나는 에러는 아닌거 같구요 단순히 네트웍상의 퍼...
진짜초보
2001/07/04 23:59
Views
172
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
이 게시판에서 이전에 올라온 질문 내용의 답변을 발췌한 것입니다.
program SelfModifier; (* Looks for a const and alters it *)
(* Puts paramstr(1) into Name *)
const
Name : string = 'Fix me up'; {get 256 bytes to play with}
type
Buffer = array[0..$3fff] of byte;
var
ExeFile : file;
P : ^Buffer;
N,I,O : word;
NStr : string;
begin
begin
new(P); {get mem for our buffer}
assign(ExeFile,paramstr(0)); {get myself}
reset(ExeFile,1);
blockread(ExeFile,P^,sizeof(Buffer),N);
close(ExeFile); {got it into Buf, now close it}
O:=(dseg-cseg+word(P^[8])) shl 4; {start of data seg in exe file}
writeln('Name: ',Name);
NStr := paramstr(1); {new string to put in Name}
inc(O,ofs(Name)); {where Name is located}
move(NStr[0],P^[O],length(NStr)+1); {move string incl. length byte}
rewrite(ExeFile,1); {create new version}
blockwrite(ExeFile,P^,N); {write it}
close(ExeFile); {close it...}
dispose(P) {...and release mem}
end
end.
procedure DeleteMe;
var
BatchFile: TextFile;
BatchFileName: string;
ProcessInfo: TProcessInformation;
StartUpInfo: TStartupInfo;
begin
{ create a batchfile in the applications directory }
BatchFileName := ExtractFilePath(ParamStr(0)) + '$$336699.bat';
{ open and write the file }
AssignFile(BatchFile, BatchFileName);
Rewrite(BatchFile);
Writeln(BatchFile, ':try');
Writeln(BatchFile, 'del "' + ParamStr(0) + '"');
Writeln(BatchFile,
'if exist "' + ParamStr(0) + '"' + ' goto try');
Writeln(BatchFile, 'del "' + BatchFileName + '"');
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;
end;
진짜초보 wrote:
> 현재 실행되고 있는 주체의 파일과 프로세스를 죽이는 법이 있나요?
>
> 만약 c:test.exe를 더블클릭해서 실행하는데 이 test.exe가 하고 싶은 일이 c:test.exe파일을 지우고 싶은데 어떻게 하면 되나요?
>
> 고수님들의 답변 부탁드립니당....