Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновить страницу в браузере, через винапи 
:(
    Опции темы
zone51
Дата 5.6.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 17.2.2006

Репутация: нет
Всего: 1



Доброго времени суток. Подскажите пожалуйста как лучше послать сообщение о нажатии кнопки браузеру чтобы он обновил страницу?
Я делаю так:

Код

BOOL CALLBACK EnumIEWindowsCallback(HWND hWnd,LPARAM lParam)
{
 //variable for window title
 char title[500] = {0};
 //getting window text
 GetWindowText(hWnd, title, sizeof(title)-1);
 //If we need this window just setting handler
 if(strstr(title, "Sample Caption"))
  {
   windowHandle = hWnd;
   return FALSE;
  }
 return TRUE;
}
...
EnumWindows((WNDENUMPROC)EnumIEWindowsCallback,0);
SendMessage(windowHandle,WM_KEYDOWN,VK_F5,0);
SendMessage(windowHandle,WM_KEYUP,VK_F5,0);


Однако не срабатывает. Почему? Буду очень признателен за помощь. smile 


--------------------
The truth is out there
PM MAIL   Вверх
NiJazz
Дата 5.6.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 6
Всего: 23



IE? Или нужно для всех?
PM MAIL   Вверх
zone51
Дата 5.6.2008, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 17.2.2006

Репутация: нет
Всего: 1



NiJazz

под ишак но ф5 под все вроде идет обновление


--------------------
The truth is out there
PM MAIL   Вверх
586
Дата 6.6.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



OLE-автоматизация не подходит?
Код
var wsh = new ActiveXObject("WScript.Shell");
var ie = new ActiveXObject("InternetExplorer.Application");
ie.visible = true;
ie.Navigate("http://forum.vingrad.ru")
while (ie.busy) WScript.sleep(100);

if(wsh.popup("Update page?", 0, "", 4)==6)
{
    ie.refresh()
}

PM   Вверх
586
Дата 6.6.2008, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Код
//---------------------------------------------------------------------------
#define STRICT
#include <vcl.h>
#include <ole2.h>
#include <objbase.h>
#include <exdisp.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    OleInitialize(0);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    CLSID clsid;
    IWebBrowser2 *ie;

    HRESULT hr = CLSIDFromProgID(L"InternetExplorer.Application", &clsid);
    hr = CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&ie);
    if(FAILED(hr)) { ShowMessage("Can't get IWebBrowser2 interface: "+SysErrorMessage(hr)); return; }
    ie->put_Visible(TRUE);
    VARIANT v;
    v.vt = VT_NULL;
    ie->Navigate(L"http://forum.vingrad.ru", &v, &v, &v, &v);
    while(1) {
        VARIANT_BOOL bs;
        ie->get_Busy(&bs);
        if(!bs) break;
        Sleep(100);
    }
    if(MessageBox(Handle, "Update page?", "", MB_YESNO) == IDYES)
    {
        ie->Refresh();
    }
    ie->Release();
}

PM   Вверх
Rrader
  Дата 11.6.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 3
Всего: 191



Проще:
Код

HANDLE HWnd = FindWindow("IEFrame", NULL); //windowHandle
HWnd = FindWindowEx(HWnd, 0, "Shell DocObject View", NULL);
HWnd = FindWindowEx(HWnd, 0, "Internet Explorer_Server", NULL);
SendMessage(HWnd, WM_COMMAND, 0x179a, 0);


Это сообщение отредактировал(а) Rrader - 11.6.2008, 15:39


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0886 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.