Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15322] Re:중복된 프로세스를 찾아야 하는데요.
박우성 [solgari] 1959 읽음    2014-10-24 15:42
질문 내용으로 보아서 중복실행 되는 프로그램은 직접 개발하신 것은 아닌 것으로 보이네요.
직접개발하신 거라면, 인터넷에 많은 방법들이 공개되어 있구요. (검색어:중복 실행 방지)

1. 해당 프로그램이 화면(윈도우)이 있는 프로그램이라면...
   - 지금 실행중인 모든 윈도우 목록을 구합니다. ( 메인 윈도우만 구해도 되고, 필요하면 Child까지)
   - 윈도우의 클래스 이름이나, 타이틀 캡션을 구해서 비교하면 됩니다.
   - MS에서 제공하는 spy++이라는 프로그램을 이용하면 원본 프로그램의 윈도우 클래스명이나 타이틀은 쉽게 구할 수 있습니다.

2. 화면없이 백그라운드로 돌아 가는 프로그램 이라면..
   - 지금 실행중인 Process의 목록을 구합니다.
   - 각 프로세스의 실제 파일을 구하여, 해당 파일을 읽어 원본파일의 CRC값과 비교하면 됩니다.
   - 특정 시간마다(타이머) 모든 프로세스를 검사하려면 로드가 많이 생기므로, 검사한 것은 SKIP할 수 있게 내부적으로 처리해야
      하고, 프로세스 생성 시점에 Hooking을 걸어서 검사하면 더 좋겠네요.

제가 생각나는 것은 이정도인데.. 더 좋은 의견은 다른 분께 패스.


하두고 님이 쓰신 글 :
: 중복된 프로세스를 찾아야 하는데요.
:
: 사용 시간에 따라 요금이 과금되는 프로그램을 사용합니다.
:
: 그때문에 중복실행이 안되게 해야 하는데요.
:
: 사용자가 의도적으로 실행파일 이름을 바꾸어 실행하고
: 심지어 프로세스명까지 바꾸는 프로그램을 이용하여 중복체크를 하지 못하게 합니다.
:
: 물론 요금은 이중으로 과금되구요.
:
: 실행파일 이름을 바꾸거나, 프로세스명을 바꾸는 경우 중복실행이 되고 있는지 감시할 수 있는 방법이 없을까요?
:

+ -

관련 글 리스트
15321 중복된 프로세스를 찾아야 하는데요. 하두고 1877 2014/10/24
15322     Re:중복된 프로세스를 찾아야 하는데요. 박우성 1959 2014/10/24
15323         Re:Re:중복된 프로세스를 찾아야 하는데요. 하두고 2172 2014/10/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.