Zmienianie strony w przeglądarce internetowej.

Odpowiedz Nowy wątek
2015-12-20 22:48
Kabus
0

Potrzebuję w przeglądarce internetowej (IE lub Firefox) wymieniać wyświetlany plik html , plik z mojego komputera nie z sieci. Chciałbym aby był on jedynie wymieniany to znaczy ani w nowym oknie ani na nowej karcie , tylko w tym samym ciągle oknie i tej samej karcie. Zmiana ta ma być wywoływana z mojej aplikacji.

Próbowałem różne funkcje z ShellApi np.
ShellExecute(Handle,'open', adres przeglądarki, adres pliku html na moim PC, nil, SW_SHOWNORMAL) ;
Próbowałem też różnych ustawień w opcjach przeglądarki i nie udało mi się osiągnąć pożądanego efektu, bo albo nowy plik pojawia się w nowym oknie albo w nowej karcie.
Proszą o radę jak można by to zrobić....:)

Pozostało 580 znaków

2015-12-20 23:10
0

Może ktoś doradzi Tobie lepiej. Ale wydaje się mi, że za pomocą ShelleExecute raczej zawsze otworzysz tylko nową kartę lub okno. Musiałbyś w opcjach odwoływać się do pliku html. Ale wtedy odpada otwieranie z własnego kodu. Może jest jakiś sposób przy pomocy DDE. Ale ja jedynie umiem odczytać aktualny link, a nie wiem czy da się go jakoś tez i ustawić.


A mi to śmierdzi malwarem :P - furious programming 2015-12-20 23:22

Pozostało 580 znaków

2015-12-21 00:22
0

musisz znaleźć uchwyt okna przeglądarki, potem uchwyt paska adresu, wpisać tam nowy adres i na końcu enter. Jak dobrze pogoglujesz to znajdzesz


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.

Pozostało 580 znaków

2015-12-21 04:29
0

@abrakadaber: nie wiem czy to się powiedzie. O ile dobrze patrzę, w przypadku FireFoxa jest jak z na przykład Operami z serii 12.x. Wszystkie kontrolki są widoczne standardowymi funkcjami WinAPI jako jedno okno tej samej klasy. I tutaj raczej do poszczególnych się nie dobierzesz. Także może są - tak jak pisałem - jakieś rozwiązania oparte o DDE.

Upewniłem się i taki kod jak poniżej pozostawia puste Memo.

//...
function EnumchilWindowsProc(AHandle : HWND; ALParam : LParam) : BOOL; stdcall
var
  ControlName, ControlText : array[0..255] of Char;
begin
  Result := True;
  GetClassName(AHandle, ControlName, SizeOf(ControlName));
  SendMessage(AHandle, WM_GETTEXT, SizeOf(ControlText), Integer(@ControlText));
  TMemo(ALParam).Lines.Add(Format('$%X, %s %s', [AHandle, ControlName, ControlText]));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Clear;
  EnumChildWindows(FindWindow('MozillaWindowClass', nil), @EnumchilWindowsProc, LParam(Memo1));
end;

edytowany 1x, ostatnio: olesio, 2015-12-21 04:34

Pozostało 580 znaków

2015-12-21 04:47
0

możesz otworzyć serwer na lokalnym porcie, otworzyć przeglądarke z linkiem do Twojego lokalnego serwera i napisać tą zawiłą logikę w javascript albo na serwerze (albo po prostu napisać w javascript)


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2015-12-21 09:30
GaliAtia
0

Nie wszystko jest tym na co wygląda :)

Może istnieje lepszy sposób niż ja wymyśliłem...

Chodzi mi o dynamiczną aktualizacją pisanej przeze mnie strony www (pisaną w aplikacji delphi).To znaczy piszę sobie w memo kod html który jest zapisywany do pliku co kilkanaście sekund i otwierany w zewnętrznej przeglądarce. W ten sposób na bieżąco widzę co napisałem.
Oczywiście WebBrowser-em dałoby się łatwiej sterować, niestety on nie obsługuje dobrze JavaScript.

Pozostało 580 znaków

2015-12-21 09:33
0

Czy nie prościej napisać plugin do przeglądarki?


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-12-21 10:03
0

Na JavaScript w WebBrowser prawdopodobnie pomoże https://msdn.microsoft.com/en[...]ry/ee330730%28v=vs.85%29.aspx


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0