포럼 워터 충전 기계의 기술적 지점 10.06.2004 |
나는 원래 웹 페이지에서 편집, 메모 등이 프로그램의 것과 동일하며 핸들로 제어 할 수 있다고 생각했지만 나중에 손잡이가 없다는 것을 깨달았습니다! 오랫동안 확인한 후 며칠 전에 자동 QQ 애플리케이션에 대한 예를 보았습니다. 먼저 MSHTML 장치를 사용하여 참조해야합니다. 코드 및 분석은 다음과 같습니다. var hform : ihtmlformelement; HDOC : ihtmlDocument2; 홀 : ihtmlelementCollection; Hinput : ihtmlinputelement; IW : iWebrowser2; hlen, tmploop : 정수; VK : 올레 바리 아트; 파견 : Idispatch; 시작하다 (webbrowse1)가 할당 된 경우 /// 웹 페이지에 내용이 있는지 확인하십시오. 시작하다 hdoc : = webbrowse1.document as ihtmldocument2; 홀 : = hdoc.get_all; hlen : = hall.get_length; //// 위의 단계는 다음과 같습니다. 브라우저 컨트롤의 컨텐츠를 HDOC에 할당하십시오. //// 다음 작업은 다음과 같습니다. 총 숫자를 통한 루프는 사용자 이름과 암호를 편집하고 값을 할당합니다. tmploop의 경우 : = 0에서 hlen-1 do 시작하다 vk : = tmploop; 파견 : = hall.item (vk, 0); 성공하면 (Dispatch.queryInterface (ihtmlinputelement, Hinput)) ///이 식별자가 편집 컨트롤 인 경우 ... 시작 /// 아래의 대문자가 다른 경우로 인해 판단의 오류를 방지합니다! /// 아래의 "텍스트"는 웹 페이지의 내용에 따라 결정됩니다. 즉, 판단을 원한다면 특정 웹 페이지 코드를 사용해야합니다! /// 비밀번호 상자와 사용자 이름은 동일합니다! 대문자 인 경우 (hinput.type _) = 'text'the hinput.value : = 'tress' 그렇지 않으면 대문자 (hinput.type _) = 'password'그런 다음 hinput.value : = 'tress'; 끝; 성공하면 (Dispatch.queryInterface (ihtmlformelement, hform)) 및 (대문자 (hform.name) = 'The Form') // 이것은 양식 제출입니다. HTML에서 하나의 양식 만 발견하면 두 번째 조건은 필수적입니다! /// 이름 속성을 판단 할 필요는 없지만 다른 속성을 기반으로 판단 할 수도 있습니다. hform.submit; 끝; 끝; 끝; 이 시점에서 자동 로그인의 예는 hinput : htext : ihtmltextAreeelement를 변경할 수 있습니다 물론 값은 단일 선택 등과 같은 다른 것들로 변경할 수 있습니다. 특정 컨텐츠의 경우 MSHTML에서 목록을 확인할 수 있습니다! 여기에 충분했지만 나중에 나는 포럼에 프레임 워크가 있다는 것을 알았습니다. 위 코드에 추가 할 수 있습니다. var ...... ...... IW : iWebrowser2; 시작하다 ..... ..... iw : = getframe (3); /// 후속 작업은 동일합니다. 즉, 위의 작업의 기능은 프레임 워크에서 컨텐츠를 웹 페이지로 처리하는 것입니다. hdoc : = iw.document as ihtmldocument2; 홀 : = hdoc.get_all; ...... ...... /// getFrame () 함수는 다음과 같습니다. 함수 tfrmain.getframe (frameno : Integer) : iwebbrowser2; var 올레코 컨테이너 : Ilecontainer; 열거 : ienumunknown; 유엔 : iunknown; 가져 오기 : plongint; 시작하다 webbrowse1.readystate <> readystate_complete입니다 Application.ProcessMessages; 할당 된 경우 (Webrowse.document) 시작하다 가져 오기 : = nil; Olecontainer : = webbrowse.document iolecontainer; elecontainer.enumobjects (elecontf_embeddings, enum); Enum.skip (Frameno); enum.next (elecontf_embeddings, unk, fetched); 결과 : = UNK AS IWEBBROWSER2; 끝 또 다른 결과 : = nil; 끝; 설명 할 또 다른 요점은 웹 페이지에서 프레임의 점프입니다! webbrowse.navigae ( '전송 될 웹 주소', flag1, flag2); 두 매개 변수는 유형을 가지고 있습니다 : Olevariant; 첫 번째 매개 변수는 할당이 필요하지 않으며 웹 페이지를 열기위한 다른 옵션 (예 : 새 웹 페이지에서 열기 등)을 제어합니다. 우리가 작동하려는 것은 두 번째 매개 변수입니다 프레임으로 웹 페이지를 엽니 다! 이런 식으로 타이머와 일부 코드를 추가하면 완전한 워터 충전 기계가 만들 수 있습니다! |