Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - как программно нажать не кнопку, а ссылку но с передачей логина и пароля?

Ответить
Настройки темы
Delphi - как программно нажать не кнопку, а ссылку но с передачей логина и пароля?

Аватара для sagepro

Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: sagepro
Дата: 15-04-2011
Описание: неверно указал тему
доброго времени суток!
цель программы при запуске этой программки:
1-автоматический вход в по лоигну и паролю через веббраузер
2-переход по ссылке
3-нажатие кнопки "разъединить" (при отсутствии кнопки "разъединить" перейти к следующему пункту)
4-нажатие кнопки "соединить"
5-закрытие программки.


внизу предоставлен листинг программки собрал по кусочкам в просторах интернета (я непрограммист - я хуже новичка)
в котором есть webbrowser и 4 кнопки.
кнопка №1 открытие адреса в веббраузере.
кнопка №2 заполнение полей логином/паролем и нажатие кнопки вход НО вход непроисходит тоесть несрабатывает нажатие кнопки входа, как быть ума неприложу???????(вопрос №1)
кнопка №3 после якобы совершенного входа перехожу по ссылке
кнопка №4 нажатие кнопки "Соединить"
и самый главный (вопрос№2)- как сделать чтоб эти кнопки срабатывали сами с очередностью допустим в 5 секунд и после автоматического срабатывания последней кнопки программка закрылась сама????



unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
WebBrowser1: TWebBrowser;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
webbrowser1.Navigate('http://192.168.0.1');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
html_tag:variant;
begin
html_tag:=webbrowser1.oleobject.document.forms.item(0).elements;
for i:=0 to (html_tag.length-1) do
begin
if (html_tag.item(i).name='A1') then html_tag.item(i).value:='admin';
if (html_tag.item(i).name='A2') then html_tag.item(i).value:='admin';
if (html_tag.item(i).id='bt_submit') then html_tag.item(i).click;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
webbrowser1.Navigate('http://192.168.0.1/index.cgi?menu=w&sub=i');
end;
procedure TForm1.Button4Click(Sender: TObject);
var
i:integer;
html_tag:variant;
begin
html_tag:=webbrowser1.oleobject.document.forms.item(0).elements;
for i:=0 to (html_tag.length-1) do
begin
if (html_tag.item(i).id='uiButtonConnect') then html_tag.item(i).click;
end;
end;
end.

Отправлено: 21:31, 12-04-2011

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


sagepro, в Делфи есть компонент - таймер, попробуй использовать его.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 00:09, 13-04-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для sagepro

Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата lxa85:
sagepro, в Делфи есть компонент - таймер, попробуй использовать его. »
А как же быть с первым вопросом??

и еще меня очень сильно смущает вот эта строчка в коде:
Цитата sagepro:
if (html_tag.item(i).id='bt_submit') then html_tag.item(i).click; »
по идее надобыло использовать тег value вместо id, но вот нету у ссылки параметра value даже если вводил его ситуация аналогичная тоесть непроисходит нажатия кнопки.


листинг к чему пытаюсь подключиться:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>DIR-320</title>
<meta name="date" content="" />
<meta name="generator" content="no generator" />
<meta name="copyright" content="Copyright (C) 2008 D-Link Russia" />
<meta name="keywords" content="DIR-320" />
<meta name="description" content="DIR-320" />
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-script-type" content="text/javascript" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="/scripts/login_pc_bcm.css" type="text/css" />
<script type="text/javascript" src="/scripts/common.js"></script>
<script type="text/javascript" src="/scripts/login.js"></script>
</head>
<body onload="javascriptnPageLoad();">
<div id="id_head_logo0">
<div class='fastmenu'>
<ul>
<li><a>Язык</a><ul><li><a href='index.cgi?menu=&lang=eng'>English</a><li><a href='index.cgi?menu=&lang=rus'>Русский</a></ul></li>
</ul>
</div>
</div>
<div id="id_head_logo1"></div>
<div id="id_div_messages">
</div>
<div id="id_div_main_container">
<form id="id_form_main" method="post" enctype="application/x-www-form-urlencoded" action="index.cgi">
<div id="id_div_login_header">
DIR-320
</div>
<div id="id_div_login_input">
<div id="id_div_container_login_input">
Имя пользователя:
<input id="A1" name="A1" type="text" maxlength="15" />
<br />
<br />
Пароль:
<input id="A2" name="A2" type="password" maxlength="30" />
<br />
<input id="auth" name="auth" type="hidden" value="auth" />
</div>
</div>
<div id="id_div_login_buttons">
<div id="id_div_container_buttons">
<a id="bt_reset" class="bt" href="#">
Очистить
</a>
<a id="bt_submit" class="bt" href="#">
Вход
</a>
</div>
</div>
</form>
</div>
</body>
</html>


в листинге отмечены жирным шрифтом поля которые заполняются программкой и подчеркнута ссылка которую необходимо нажать программно что у меня и НЕ выходит никак..
как решить проблему?
листинг под копирку внутри даже смайлик нарисовался)..

Последний раз редактировалось sagepro, 13-04-2011 в 07:19. Причина: дополнение описания


Отправлено: 06:55, 13-04-2011 | #3


Аватара для sagepro

Пользователь


Сообщения: 52
Благодарности: 1

Профиль | Отправить PM | Цитировать


Может такой способ для нажатия ссылки неверный в корне?
проблем бы небыло если бы нужно было просто перейти по ссылке, но вот передача логина и пароля таким образом неосуществится(((

Отправлено: 06:33, 15-04-2011 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - как программно нажать не кнопку, а ссылку но с передачей логина и пароля?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Установка драйверов (нажатие кнопок) SANIOK_AV AutoIt 3 05-09-2010 14:13
Автоматическое нажатие 2х кнопок в утилите ameliss AutoIt 1 01-08-2010 02:07
[решено] "Отловить" нажатие дополнительных (нестандартных) кнопок мыши sashadeg AutoIt 12 29-03-2010 17:52
Как произвести нажатие кнопок мыши без функций AutoIT и сторонних программ. CyberStyLe AutoIt 11 08-02-2010 14:22
[решено] WLE3P.EXE определяется как hiden object, частота активности каждые 33 секунды, как по dima1981 Хочу все знать 4 23-06-2009 15:01




 
Переход