Titik teknis mesin pengisian air forum 10.06.2004 |
Saya awalnya berpikir bahwa mengedit, memo, dll. Di halaman web sama dengan yang ada di program dan dapat dikendalikan dengan pegangan, tetapi kemudian saya menyadari bahwa tidak ada pegangan! Setelah memeriksa waktu yang lama, saya melihat contoh tentang aplikasi QQ otomatis beberapa hari yang lalu. Pertama, Anda perlu merujuk unit MSHTML yang digunakan. Kode dan analisisnya adalah sebagai berikut: var hform: ihtmlFormeLement; HDOC: ihtmldocument2; Hall: ihtmlelementCollection; Hinput: IHTMlinPutElement; IW: iWebrowser2; hlen, tmploop: integer; VK: Olevariant; pengiriman: Idispatch; Mulai Jika ditugaskan (WebBrowse1) lalu /// Pastikan ada konten di halaman web; Mulai hdoc: = webbrowse1.document sebagai ihtmldocument2; Hall: = hdoc.get_all; hlen: = hall.get_length; //// Langkah -langkah di atas adalah: Tetapkan konten dalam kontrol browser ke HDOC. //// Operasi berikut adalah: Loop melalui nomor total untuk menemukan pengeditan nama pengguna dan kata sandi; untuk tmploop: = 0 ke hlen-1 lakukan Mulai VK: = tMploop; Dispatch: = Hall.Item (VK, 0); Jika berhasil (Dispatch.QueryInterface (IHTMlinPutElement, Hinput)) lalu /// Jika pengidentifikasi ini adalah kontrol edit ... Begin //// huruf besar di bawah ini diperlukan! /// "Teks" di bawah ini ditentukan oleh konten di halaman web. /// kotak kata sandi dan nama pengguna sama! Jika Uppercase (Hinput.Type _) = 'Teks' maka Hinput.Value: = 'Tress' selain itu jika huruf besar (hinput.type _) = 'kata sandi' maka hinput.value: = 'tress'; akhir; Jika berhasil (Dispatch.QueryInterface (IHTMLFormeLement, HForm)) dan (Uppercase (hform.name) = 'TheForm') lalu /// Ini adalah pengiriman formulir. /// dan tidak perlu menilai atribut nama, tetapi juga dapat dinilai berdasarkan atribut lain. Hform.submit; akhir; akhir; akhir; Pada titik ini, contoh login otomatis sudah siap Nilai -nilai; Sudah cukup di sini. Anda dapat menambahkannya ke kode di atas: var ...... ...... IW: iWebrowser2; Mulai ..... IW: = GetFrame (3); // Langkah ini adalah untuk mendapatkan kerangka kerja kedua di WebBrowse; /// Operasi selanjutnya adalah sama, yaitu fungsi dari operasi di atas adalah untuk memproses konten dalam kerangka kerja sebagai halaman web; hdoc: = iw.document sebagai ihtmldocument2; Hall: = hdoc.get_all; ...... ...... /// Fungsi getFrame () adalah sebagai berikut dan perlu menambahkan unit ActiveX ke penggunaan: Fungsi tfrmain.getFrame (frameno: integer): iWebBrowser2; var Olecontainer: Iolecontainer; enum: ienumunknown; unk: iunknown; Diambil: plongint; Mulai Sedangkan webbrowse1.readystate <> readystate_complete do Application.ProcessMessages; Jika ditugaskan (Webrowse.Document) lalu Mulai Diambil: = nil; Olecontainer: = WebBrowse.Document sebagai iolecontainer; Olecontainer.enumObjects (olecontf_embeddings, enum); Enum.skip (frameno); Enum.next (olecontf_embeddings, unk, diambil); Hasil: = unk sebagai IWebBrowser2; akhir kalau tidak Hasil: = nil; akhir; Poin lain yang harus dijelaskan adalah lompatan bingkai di halaman web! webbrowse.navigae ('alamat web yang akan ditransfer', flag1, flag2); Dua parameter memiliki tipe: Olevariant; Parameter pertama tidak memerlukan penugasan, ini mengontrol opsi lain untuk membuka halaman web (seperti: membuka di halaman web baru, dll.). Apa yang ingin kami operasikan adalah parameter kedua Buka halaman web dalam bingkai! Dengan cara ini, menambahkan timer dan beberapa kode dapat membuat mesin pengisian air yang lengkap! |