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
[11112] Re:특정 주소의 익스플로러를 차단하는중 에러가..
박지훈.임프 [cbuilder] 1553 읽음    2006-11-21 16:44
비슷한 작업을 해보지 않아서 뭐 별로 자신은 없습니다만, 말씀하신 걸로만 봐서는 동기화의 문제가 아닐까 싶은데요.
쓰레드 혹은 프로세스 동기화 객체를 이용해서 해당 라인들이 반드시 동시에 하나만 실행되도록 해야 하지 않을까 싶네요.
프로세스가 여러개 떴을 때 그런 문제를 막아야 할 거 같으므로, 크리티컬섹션이 아니라 뮤텍스를 써야 할 듯.

그럼...


dd 님이 쓰신 글 :
: shdocvw을 사용해서.. 아래와같은 소스로..
: 특정사이트를 제한하는것을 테스트하고 있는데요..임의로 daum사이트가 켜지면 empas로 이동하게
: 테스트중입니다.
: 일단 타이머에 1초정도 시간을 주어 아래소스를 실행하면.. 잘작동합니다.
: 하지만.. 테스트를 하기위해 익스플로러 기본시작페이지를 daum으로 해놓고 연속클릭으로 몇초사이 5~10개정도
: 띄워버리면 엑세스 바이올레이션 에러가 무조건 발생하네요.. 위치는  아래 A와 ,B 에서 발생하는데.
: 주로A에서 발생합니다. 어떻게 하면 에러가 발생하지 않을까요..

: timer1.enabled:=false
:   cShellWnd := CoShellWindows.Create;
:   for i := 0 to CShellWnd.Count - 1 do begin
:
:     mStr := (CShellWnd.Item(i) as IWebBrowser2).LocationUrl;  (A)
:
:     if (CShellWnd.Item(i) as IWebBrowser2).ReadyState =READYSTATE_COMPLETE  then  (B)
:
:       begin
:              if pos('daum',mStr)<>0 then
:           begin
:
:             url:='empas.com';
:             (CShellWnd.Item(i) as IWebBrowser2).Navigate2(url,Flags,TargetFrameName,PostData,Headers);
:           end;
:       end;
:      end;//for끝
:
: timer1.enabled:=true;

+ -

관련 글 리스트
11103 특정 주소의 익스플로러를 차단하는중 에러가.. dd 1470 2006/11/19
11112     Re:특정 주소의 익스플로러를 차단하는중 에러가.. 박지훈.임프 1553 2006/11/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.