Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.73/55: Рейтинг темы: голосов - 55, средняя оценка - 4.73
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
1

Как изменить URL в адресной строке браузера

12.06.2012, 18:16. Показов 11125. Ответов 86
Метки нет (Все метки)

Привет всем! Помогите с решением: Как изменить URL в адресной строке браузера? На пример Opera. Тоесть нужно изменить значение в адресной строке браузера. Для начала конечно же нужно узнать что там находится в данный момент. Это решено в этой теме (может пригодится) Получить URL из адресной строки браузера
Дальше нужно изменить это значение ну тоесть адрес! Как это сделать?

Добавлено через 2 часа 6 минут
Буду рад любой помощи!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2012, 18:16
Ответы с готовыми решениями:

Получить URL из адресной строки браузера
Всем здрасте. Можно ли как либо узнать что написано в поле "Адрес" в браузере.

Как изменить адрес в адресной строке браузера?
На странице два фрейма, в левом фрейме находиться меню, а в правом список товаров. По списку...

Как изменить цвет поддомена в адресной строке браузера?
Здавствуйте. На многих мультиязычных сайтах поддомен выглядит так: language.site.domain У...

Дружественный URL для пользователя в адресной строке браузера
Всем здравствуйте! Возникла проблема при реализации дружественного URL для пользователя в...

86
Эксперт С++
8379 / 6115 / 613
Регистрация: 10.12.2010
Сообщений: 28,542
Записей в блоге: 30
12.06.2012, 19:27 2
Ну стоит рыть в туже сторону DDE или OLE
1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
12.06.2012, 21:00  [ТС] 3
Для начала не мешало бы понять как это работает!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
uses DdeMan;
function GetURL(Browser: string): string;
var
 Client_DDE: TDDEClientConv;
 temp: PChar;
begin
 Result := '';
 Client_DDE:= TDDEClientConv.Create( nil );
 with Client_DDE do
  begin
   SetLink(Browser, 'WWW_GetWindowInfo');
   temp := RequestData('0xFFFFFFFF');
   Result := StrPas(temp);
  // Return only the URL part
   Delete(Result, Pos(',', Result), Length(Result)-Pos(',', Result)+1);
   // Remove quotes
   Delete(Result, 1, 1);
   Delete(Result, Length(Result), 1);
   // ************
   StrDispose(temp);
   CloseLink;
  end;
 Client_DDE.Free;
end;
WriteLn (GetURL ('Opera'));
Возможно ли перевести его на C++?

Добавлено через 4 минуты
Вот что смог!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
uses DdeMan;
AnsiString GetURL(AnsiString Browser);
var
 Client_DDE: TDDEClientConv;
 char[незнаю] temp;
begin
 Result = "";
 Client_DDE = TDDEClientConv->Create( NULL );
 with Client_DDE do
  begin
   SetLink(Browser, "WWW_GetWindowInfo");
   temp = RequestData("0xFFFFFFFF");
   Result = StrPas(temp);
  // Возвратите только часть URL
   Delete(Result, Pos(",", Result), Length(Result)-Pos(",", Result)+1);
   // Удалите кавычки
   Delete(Result, 1, 1);
   Delete(Result, Length(Result), 1);
   // ************
   StrDispose(temp);
   CloseLink;
  end;
 Client_DDE->Free;
end;
WriteLn (GetURL ("Opera"));
0
Эксперт С++
8379 / 6115 / 613
Регистрация: 10.12.2010
Сообщений: 28,542
Записей в блоге: 30
12.06.2012, 21:18 4
Ну так тут DDE-комоненты используются... их описание кажеться есть в Архангельском...
0
650 / 460 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
12.06.2012, 21:25 5
Почитайте про функции FindWindow FindWindowEx и SendMessage PostMessage
0
Эксперт С++
8379 / 6115 / 613
Регистрация: 10.12.2010
Сообщений: 28,542
Записей в блоге: 30
12.06.2012, 21:30 6
Почитайте про функции FindWindow FindWindowEx
Этот вариант не канает...
По тому как там нет "отдельных" окон
1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 09:55  [ТС] 7
Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Вот что смог!
Люди! Помогите сделать это на C++!

Добавлено через 17 минут
Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Result
Не как не могу понять где объявляется эта переменная

Добавлено через 40 минут
Ухххххх! Замучился и всё без толку(. Компилится только не работает! В чем трабла?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString TForm1::GetURL(AnsiString Browser)
{
 TDdeClientConv *Client_DDE;
 PChar temp;
  AnsiString Result;
 //Пытаемся установить соединение с сервором "Opera" по заголовку "WWW_GetWindowInfo"
         DdeClientConv1->SetLink(Browser, "WWW_GetWindowInfo");
 
   //Запрашиваем параметр "sUrl" ("0xFFFFFFFF" для Opera)
   temp = DdeClientConv1->RequestData("0xFFFFFFFF");
 
   Result = StrPas(temp); // StrPas - преобразует строку PChar в string
  // Возвратите только часть URL
   Result.Delete(Result.Pos(","), Result.Length()-Result.Pos(",")+1);
   // Удалите кавычки
   Result.Delete(1,1);
   Result.Delete(Result.Length(), 1);
   // ************
 
   StrDispose(temp); //Освобождаем строку
   DdeClientConv1->CloseLink() ; //Завершаем текущий диолог
   Client_DDE->Free();
   return  Result;
 }
 
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit2->Text= GetURL(Edit1->Text);
}
0
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 10:05  [ТС] 8
Вот такая вот ошибочка(
0
Миниатюры
Как изменить URL в адресной строке браузера  
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 10:21  [ТС] 9
Ураааааааааааааа!!! Убрал Client_DDE Всё заработало! Только если ещё раз нажать на кнопку то эта ошибка вылетает( Что делать?

Добавлено через 10 минут
Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Client_DDE:= TDDEClientConv.Create( nil );
Как сделать это на C++?
0
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 10:27 10
Vovik_0_1, а через какую библиотеку TDdeClientConv подключается?
0
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 10:29  [ТС] 11
По идее должно работать так
C++
1
Client_DDE = TDdeClientConv->Create(NULL);
но ошибка [C++ Error] Unit1.cpp(20): E2108 Improper use of typedef 'TDdeClientConv'

Добавлено через 1 минуту
Цитата Сообщение от The_Immortal Посмотреть сообщение
Vovik_0_1, а через какую библиотеку TDdeClientConv подключается?
Не знаю.. Просто сделал так
C++
1
TDdeClientConv *Client_DDE;
Всё работает кроме этого( Client_DDE = TDdeClientConv->Create(NULL);
0
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 10:35 12
Vovik_0_1, может так?
C++
1
TDdeClientConv *Client_DDE = new TDdeClientConv(NULL);
1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 10:39  [ТС] 13
Спасибо! Всё работает отлично!! Вот рабочий код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
AnsiString TForm1::GetURL(AnsiString Browser)
{
 
 TDdeClientConv *Client_DDE = new TDdeClientConv(NULL);
 PChar temp;
  AnsiString Result = "";
 
 
 //Пытаемся установить соединение с сервором "Opera" по заголовку "WWW_GetWindowInfo"
         Client_DDE->SetLink(Browser, "WWW_GetWindowInfo");
 
   //Запрашиваем параметр "sUrl" ("0xFFFFFFFF" для Opera)
   temp = Client_DDE->RequestData("0xFFFFFFFF");
 
   Result = StrPas(temp); // StrPas - преобразует строку PChar в string
  // Возвратите только часть URL
   Result.Delete(Result.Pos(","), Result.Length()-Result.Pos(",")+1);
   // Удалите кавычки
   Result.Delete(1,1);
   Result.Delete(Result.Length(), 1);
   // ************
 
   StrDispose(temp); //Освобождаем строку
   Client_DDE->CloseLink() ; //Завершаем текущий диолог
   Client_DDE->Free();
   return  Result;
 }
 
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit2->Text= GetURL(Edit1->Text);
}
//---------------------------------------------------------------------------
Добавлено через 52 секунды
Теперь бы по теме понять как можно изменить URL в браузере.. Мысли есть?
1
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 10:43 14
Vovik_0_1, а у меня не пашет У Вас какой Билдер?
0
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 10:47  [ТС] 15
У меня C++Builder 6 Понимаю что прошлый век!

Добавлено через 59 секунд
Попробуй замени AnsiString на UnicodeString
1
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 11:29 16
Vovik_0_1, а у меня вот XE2 - "новый" век и венчый гемор с кодировками
Не пойму зачем там замутка с PChar'ом вообще... Надо бы переделать.

Добавлено через 30 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AnsiString TForm1::GetURL(AnsiString Browser)
{
 TDdeClientConv *Client_DDE = new TDdeClientConv(NULL);
  AnsiString Result;
  DdeClientConv1->SetLink(Browser, "WWW_GetWindowInfo");
 
   //Запрашиваем параметр "sUrl" ("0xFFFFFFFF" для Opera)
   Result = DdeClientConv1->RequestData("0xFFFFFFFF");
 
   Result.Delete(Result.Pos(","), Result.Length()-Result.Pos(",")+1);
 
   Result.Delete(1,1);
   Result.Delete(Result.Length(), 1);
 
   DdeClientConv1->CloseLink();
   Client_DDE->Free();
   return  Result;
 }
Вроде убрал все лишнее. Должно воркать

Добавлено через 27 минут
И пока не вижу необходимости юзать второй экземпляр класса TDdeClientConv.

Vovik_0_1, а Вы видите?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
AnsiString TForm1::GetURL(AnsiString Browser)
{
  AnsiString Result;
  DdeClientConv1->SetLink(Browser, "WWW_GetWindowInfo");
 
   //Запрашиваем параметр "sUrl" ("0xFFFFFFFF" для Opera)
   Result = DdeClientConv1->RequestData("0xFFFFFFFF");
 
   Result.Delete(Result.Pos(","), Result.Length()-Result.Pos(",")+1);
 
   Result.Delete(1,1);
   Result.Delete(Result.Length(), 1);
 
   DdeClientConv1->CloseLink();
   return  Result;
 }
Добавлено через 1 минуту
Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Теперь бы по теме понять как можно изменить URL в браузере.. Мысли есть?
Хотя я немного отвлекся... Надо думать
1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 11:31  [ТС] 17
Действительно так тоже всё работает! Интерестно зачем автор кода так мудрил...
0
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 11:40 18
Vovik_0_1,

Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Интерестно зачем автор кода так мудрил...
Ну наверное, не просто так


Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Теперь бы по теме понять как можно изменить URL в браузере.. Мысли есть?
Что-то я пока не знаю... Интернет не очень щедр на тему реализации фишинга на C++ Видимо, придется ждать Avazart'а или как-то по-другому искать...
0
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
13.06.2012, 11:45  [ТС] 19
Цитата Сообщение от The_Immortal Посмотреть сообщение
Что-то я пока не знаю... Интернет не очень щедр на тему реализации фишинга на C++ Видимо, придется ждать Avazart'а или как-то по-другому искать...
Ты думаеш Avazart знает? Походу не как (.... Есть мысль с эметировать нажатие клавиш Ctrl+W (Кстати как это сделать?) и запустить вот это
C++
1
2
AnsiString s = "Тут что изменяли";
 ShellExecute(Handle,"open",s.c_str(),NULL,NULL,SW_SHOWDEFAULT);
Но это конечно бред!
0
1566 / 502 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
13.06.2012, 11:49 20
Vovik_0_1,


Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Ты думаеш Avazart знает?
Он усе знает


Цитата Сообщение от Vovik_0_1 Посмотреть сообщение
Но это конечно бред!
Да ну... Это ерунда полная Надо как-то от DDE двигаться.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2012, 11:49

Изменить цвет текста в адресной строке браузера
Здравствуйте. Подскажите, пожалуйста, как настроить цвет и шрифт текста в адресной строке Opera....

Возможно ли изменить название сайта в адресной строке браузера с помощью .htaccess
Сайт диски-шина.рф был перенесен на новый хост. Но доменное имя застряло на старом хосте. На...

как показать иконку в адресной строке браузера?
Добрый день! Замучился уже: часа два сижу, не могу в адресную строку вставить иконку. Все время...

Как скрыть ссылку в адресной строке браузера
Здравствуйте! я только начинаю создавать сайты на ASP.NET и мне нужно узнать Как скрыть ссылку в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.