Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 24

Открыть старницу в интернете через С++

08.11.2013, 19:53. Показов 1916. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, помогите используя с++ открыть страничку в интернете. Задача такая: есть адрес, в нём изменяется номер id пользователя, вводя этот адрес в браузер, на выходе получаю информацию о пользователе. Нужно сделать этот процесс удобным с помощью программки на с++, т.е запуская программу я ввожу id и получаю информацию о пользователе.Большое спасибо за помощь)))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2013, 19:53
Ответы с готовыми решениями:

открыть другю старницу ,когда нажимаешь кнопку типа (Submit)
if(isset($_POST)) { $ZXC=$_POST ; if ($ZXC=="{$smarty.const.CUSTOMER_OPLATA}") { HEADER("Location:1.php"); exit;} } ...

Открыть доступ ко второму роутеру через первый и открыть порт
Вечер добрый! Я соединил два роутера через LAN, основной куда вставлен WAN-кабель интернета Sagemcom F@st 1744 v4, а второй через...

Открыть окно1 через 3 сек закрыть, через 6 сек открыть окно2
Здравствуйте! Просьба помочь в решение проблемы: Нужно через каждые 6 секунд появлялось модальное окно (без затемнения) (3шт -разное:...

14
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
08.11.2013, 20:01
https://www.cyberforum.ru/blog... og608.html
2
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 24
08.11.2013, 20:16  [ТС]
Интересная статья, спасибо) А там адрес страницы как комментарий, т.е я его не смогу изменить не залезая в код; если в "" поставить переменную, то компилятор не будет понимать. Можно как-нибудь адрес сайта сделать изменяемым?
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
08.11.2013, 20:35
Добавь на форму Edit, в нем указывай адрес страницы, его и используй.
Миниатюры
Открыть старницу в интернете через С++  
1
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 24
08.11.2013, 21:03  [ТС]
А как это сделать? Можно поподробнее)?

Добавлено через 14 минут
Какие библиотеки подключать нужно ещё?
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
using namespace std;
int main()
{
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Memo1->Text= IdHTTP1->Get("https://www.cyberforum.ru");
}
return 0;
}
Я раньше кроме для института задачки не писал, а у нас максимум классы были, не судите строго)
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
08.11.2013, 21:14
C++
1
2
3
int main()
{
}
- Это консольное приложение:

Тебе же нужно VCL Forms : Меню->File->New->VCL Forms Application затем найти на палитре компонентов TButton кинуть его на форму и кликнуть на него, вставить внутрь открывшегося обработчика код.

В общем читай www.cyberforum.ru/post3939193.html
1
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
08.11.2013, 21:21
Помести на форму компонент TIdHTTP (его можно создавать динамически), все необходимое подключится автоматически.
P.S.: адрес через Edit
C++
1
2
String site = Edit1->Text;
Memo1->Text= IdHTTP1->Get(site);
1
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 24
09.11.2013, 14:17  [ТС]
Спасибо, буду читать и пробовать)

Добавлено через 13 часов 52 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdHTTP1->Head("https://www.cyberforum.ru");
  Memo1->Text= IdHTTP1->Response->RawHeaders->GetText();
}
//---------------------------------------------------------------------------

Выдаёт ошибку "неизвестный символ memo1 и idhttp1"

Добавлено через 2 часа 55 минут
С помощью ShellExecute можно открыть сайт?
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
09.11.2013, 16:16
"Неизвестный символ memo1 и idhttp1" - компоненты отсутствую на форме (их нужно сначала добавить, среда разработки мысли читать пока не умеет).

В Unit1.h добавь строку
C++
1
#include <IdHTTP.hpp>
Unit1.cpp (обрати внимание, что в начале адреса для данного случая можно написать http, а не https; получается проще, так как Indy в "обычном режиме" не поддерживает https):
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  try
  {
    TIdHTTP *HTTP = new TIdHTTP(NULL);
    TMemoryStream *MS  = new TMemoryStream;
    TStringList *SL = new TStringList;
    TMemo *Memo = new TMemo(this);
    Memo->Parent = Form1;
    Memo->ScrollBars = ssBoth;
    Memo->Name = "Memo";
    Memo->WordWrap = 0;
    Memo->Left = 0;
    Memo->Top = 0;
    Memo->Text = "";
    Memo->Width = 750;
    Memo->Height = 200;
    Memo->Visible = 1;
 
    HTTP->HandleRedirects = 1;
 
//  работает для "старых" Indy (русские символы)
//  Memo->Text = UTF8Decode(HTTP->Get("http://api.vkontakte.ru/method/getProfiles?uids=1&fields=photo"));
 
//  для "новых" Indy приходится использовать поток, иначе получаем знаки вопроса вместо русских букв
    HTTP->Get("http://api.vkontakte.ru/method/getProfiles?uids=1&fields=photo", MS);  // Павел Дуров :-)
    MS->Position = 0;
    SL->LoadFromStream(MS);
    Memo->Text = UTF8Decode(SL->Text);
//
 
    MS->Free();
    SL->Free();
    HTTP->Free();
  }
  catch (EIdException &E)
  {
    MessageBox(Application->Handle, ("\""+E.Message+"\"\n\nВозможно, отсутствует подключение\nк интернету или нет доступа к сайту.").c_str(), "Ошибка", MB_OK+MB_ICONWARNING);
  }
}
P.S.: ShellExecute откроет сайт в (дефолтовом) браузере.
C++
1
    ShellExecute(NULL, "open", "http://api.vkontakte.ru/method/getProfiles?uids=1&fields=photo", NULL, NULL, SW_SHOW);
Миниатюры
Открыть старницу в интернете через С++  
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
09.11.2013, 16:18
Цитата Сообщение от gunslier Посмотреть сообщение
C++
1
2
3
MS->Free();
SL->Free(); 
HTTP->Free();
Блин уже же говорили что бы Free() не использовать...
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
09.11.2013, 16:31
Не вижу здесь в этом никакой проблемы.
Компоненты не визуальные, ни с чем не связаны, обращения к ним больше нет; обнулять излишне.
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
09.11.2013, 16:47
Цитата Сообщение от gunslier Посмотреть сообщение
Не вижу здесь в этом никакой проблемы.
Компоненты не визуальные, ни с чем не связаны, обращения к ним больше нет; обнулять излишне.
чЁ?
Простое правило: выделил память с помощью new, потом почисть c помощью delete, а не чем попало ...

Кроме того если не используешь std::auto_ptr<> так заботься об освобождении памяти при выбросе исключения с помощью блока __finally
0
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 24
09.11.2013, 16:55  [ТС]
Спасибо большое вам) не знал как делать, только вы помогли) очень вам благодарен!))

Добавлено через 8 минут
Ещё вопрос) Если на форму добавить Edit, то туда можно просто адрес вбивать? Можно сделать так чтобы вбивать лишь id ?
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
09.11.2013, 17:03
Строку Memo->Name = "Memo" лучше удалить.

Добавлено через 7 минут
Можно
C++
1
2
3
4
5
    String site = "http://api.vkontakte.ru/method/getProfiles?uids=" + Edit1->Text + "&fields=photo";
    HTTP->Get(site, MS);
    MS->Position = 0;
    SL->LoadFromStream(MS);
    Memo->Text = UTF8Decode(SL->Text);
0
0 / 0 / 0
Регистрация: 22.10.2013
Сообщений: 24
09.11.2013, 17:25  [ТС]
Я только работал с консольными приложениями,а здесь даже нельзя наверное создать специальную переменную для того чтобы ей присваивать id, хотя там же адрес как комментарий.

Добавлено через 9 минут
В какой вкладке находиться Edit, не могу найти. Потом нужно те 5 строк что вы написали заменить на HTTP->Get("http://api.vkontakte.ru/method/getProfiles?uids=2", MS);

Добавлено через 7 минут
А, всё, нашёл Edit

Добавлено через 3 минуты
Всё, заработало, спасибо ещё раз, теперь чтобы разобраться во всех строчках нужно почитать книжку будет)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2013, 17:25
Помогаю со студенческими работами здесь

Можно ли как то через C# открыть 3D сцену (fbx)? Или есть другие варианты открыть 3D объект?
нужно написать программу с различными кнопками и главное что бы отрывало 3д файлы. требуется муляж(фейковая) программа. Главное что бы...

Вывод результата проверки на старницу
Всем доброго времени суток! Делаю регистрацию. Нужно, что бы на странице регистрации выходила ошибка такой логин существует, если он...

Вывести подкатегории на главную старницу с категориями
Всем добрый день! Я новичок в программировании, прошу помощи, как вывести подкатегории к главным категориям. Читал в интернете как это...

Обращение к IP в интернете через 127.0.0.1
Здрасти :) Тут типо делаю лаунчер и хочу организовать систему такую... Что бы при включенном лаунчере игра могла обращаться к 127.0.0.1......

Невозможно одновременно сидеть в интернете через Wi-fi
Невозможно одновременно сидеть в интернете через wi-fi с ноутбука и компьютера. Если я захожу в интернет с компьютера и идёт, например,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru