Sterowanie przegladarką internetową

0

Jak przy pomocy aplikacji Delphi spowodować zapisanie strony internetowej przez przeglądarkę (np. Firefoxa), znając aktualny uchwyt przeglądarki oraz uchwyt MenuGłówne/Plik. Sprawdziłem że MenuGłówne/Plik przeglądarki ma odrębny uchwyt, natomiast poszczególne opcje tego menu (nowa karta, otwórz plik, zapisz stronę jako itd...) już nie mają osobnego uchwytu.

Chcę również aby po wysłaniu polecenia do przeglądarki "zapisz plik jako", ta przeglądarka nie otwierała okna FileSaveDialog, tylko aby zapisywała w ustalonej wcześniej lokalizacji (trudniejszą alternatywą byłoby abym z aplikacji wklejał adres zapisu pliku do wywołanego przez przeglądarkę okna FileSaveDialog ponieważ jego uchwyt jest inny przy każdym zapisie strony www.) :)

0

Po co chcesz "zmuszać" przeglądarkę do zapisywania strony skoro samemu równie dobrze możesz to zrobić z poziomu aplikacji napisanej w delphi?

0

Jak przy pomocy aplikacji Delphi spowodować zapisanie strony internetowej przez przeglądarkę (np. Firefoxa), znając aktualny uchwyt przeglądarki oraz uchwyt MenuGłówne/Plik.

Jak masz uchwyt głównego okna przeglądarki to wyślij do niego skrót klawiszowy Ctrl+S - obstawiam, że popularne przeglądarki mają ten skrót przeznaczony właśnie do zapisywania bieżącej strony; To pierwsza część, bo strona sama się nie zapisze - wyskoczy okienko do wybrania lokalizacji, więc trzeba będzie znaleźć uchwyt dialogu, wkleić w polu tekstowym ścieżkę i wcisnąć guzik Save (albo znów zasymulować klawisze - w tym przypadku wystarczy Enter);

(trudniejszą alternatywą byłoby abym z aplikacji wklejał adres zapisu pliku do wywołanego przez przeglądarkę okna FileSaveDialog ponieważ jego uchwyt jest inny przy każdym zapisie strony www.)

EnumChildWindows;

Zresztą każde systemowe okno dialogowe zapisu/otwarcia, domyślnie ma sfokusowane pole edycyjne z docelową/źródłową nazwą pliku; Dodatkowo, cały ciąg nazwy jest domyślnie zaznaczony; Również każde systemowe okno dialogowe obsługuje specjalne klawisze (Enter do potwierdzenia, Esc do anulowania itd.), które możesz perfidnie wykorzystać;

Podsumowując, dochodzimy do poniższego algorytmu:

  • skopiowanie ciągu ścieżki docelowej do systemowego schowka,
  • wysłanie skrótu Ctrl+S do okna przeglądarki w celu otwarcia okna dialogowego,
  • Sleep, aby mieć pewność, że okienko zdążyło się otworzyć,
  • wysłanie skrótu Ctrl+V w celu wklejenia ścieżki ze schowka do pola edycyjnego,
  • Sleep, aby mieć pewność, że okienko przetrawiło wklejanie tekstu,
  • wysłanie klawisza Enter w celu potwierdzenia danych w okienku i zapisania strony;
    To co podałem wyżej nie wymaga znajomości uchwytów do okna dialogowego i jego kontrolek - jest to najprostsze rozwiązanie; Jednak wymaga sprawdzenia, dlatego że nie jestem pewny co do skrótu Ctrl+S i co się stanie, jeśli przeglądarka nie jest aktywna i wyświetli okno dialogowe (czy to okno zostanie aktywowane, aby łapać komunikaty klawiatury).
0

Dzięki za wyczerpujący opis :)

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