2011-02-13
C# posiada metody pozwalające na ściągnięcie wskazanej strony internetowej i jej dalsze przetworzenie lub np zapisanie na dysku. Jak wiadomo, dialog z serwerami www polega zazwyczaj na wysyłaniu do nich żądań (request) i otrzymywaniu od nich odpowiedzi (response). Kiedy klient otrzyma odpowiedź na swoje żądanie, może przetworzyć kod HTML otrzymanej strony i na jego podstawie zażądać kolejnych stron. Zresztą w identyczny sposób działa przeglądarka internetowa. Żeby przeczytać ten artykuł musiałeś wystosować żądanie i otrzymałeś odpowiedź. Patrząc na tę stronę (przetwarzając ją) możesz podjąć decyzję o skierowaniu nowego żądania do serwera poprzez kliknięcie na inny odnośnik znajdujący się na tej stronie.
Wspomniane metody języka C# pozwalające na taką pracę ze stronami www to WebRequest i WebResponse. Na ich bazie zdefiniowano także klasy HttpWebRequest i HttpWeb Response, poszerzające klasę o kilka specyficznych dla protokołu HTTP właściwości.
Sprawa jednak się nieco komplikuje, jeżeli serwer www dorzuca do przekazywanej nam wiadomości inne dodatki np ciasteczka (cookies) czy identyfikator sesji PHP. Może być tak, że kiedy po swoim żądaniu otrzymasz odpowiedź, to realizacja kolejnego żądania, będzie się wiązać z przekazaniem takich przesłanych nam „mimochodem” elementów. Czytaj dalej »
2011-02-08
Czasami trzeba utworzyć plik tymczasowy. Zapisać do niego tymczasowo stronę internetową, skopiować dane podlegające obróbce, a na zakończenie wykasować pliki.
Windows oferuje gotowe funkcje pozwalające na tworzenie pliku w standardowym katalogu.
- Aby pobrać katalog tymczasowy dla bieżącego użytkownika użyj funkcji System.IO.Path.GetTempPath()
- Aby utorzyć przypadkowy plik użyj instrukcji Guid.NewGuid().ToString()
Jeżeli jednak utworzysz plik tymczasowy używając:
System.IO.Path.GetTempPath() + Guid.NewGuid().ToString()
to plik będzie bez rozszerznia. Właściwie nie ma to znaczenia, ale gdybyś chciał mieć plik tymczasowy z rozszerzeniem to możesz użyć następującej metody (w całości skopiowane z http://kseesharp.blogspot.com/2007/12/generate-temporary-file-name-on-disk.html)
public string GetTemporaryFile(string extn)
{
string response = string.Empty;
if (!extn.StartsWith(„.”))
extn = „.” + extn;
response = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + extn;
return response;
}
2011-02-07
Na stronie pewnego urzędu opublikowano plik PDF. Nadgorliwość jest jednak gorsza od faszyzmu i dokument został zabezpieczony przed wydrukowaniem! Rozmumiem zabezpieczenie przed kopiowaniem tekstu, ale zabezpieczyć przed drukowaniem? I to dokument, który jest opublikowany? Co to za opublikowanie skoro nie można wydrukować.
No ale skoro tak… Acrobat Reader oczywiście nie chce go drukować, ale za to stary poczciwy program Ghost Script View tak! Więc jeśli musisz wydrukować zabezpieczony plik PDF użyj Ghost Script View (http://pages.cs.wisc.edu/~ghost/). Przy okazji potrzebny będzie jeszcze GhostScript, który możesz ściągnąć również spod tego adresu.
Apel do nadgorliwców: nie zabezpieczajcie publikowanych wszem i wobec dokumentów!
2011-02-06
Chociaż obecne aplikacje raczej pozwalają na wprowadzanie opcji i parametrów w ładnych okienkach, to jednak od czasu do czasu trzeba przygotować program uruchamiany z linii komend i przyjmujący parametry określane podczas wywoływania w skrypcie.
Odpowiednich zmian można dokonać w pliku program.cs. Znajduje się w nim startowa metoda Main, od której zaczyna się uruchomienie programu. Zazwyczaj nie wykazujemy parametrów w tej metodzie, jednak tutaj należy wyraźnie wskazać, że program można wywołać z parametrami:
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//specjalny obiekt zapamietujący logikę działania aplikacji
bl=new BusinessLogic();
Dalej próbujemy odszukać przekazane parametry: Czytaj dalej »
2011-02-06
Tym razem należało wykonywać na komputerze pewne czynności w zależności od adresu MAC karty sieciowej lub adresu IP lub po prostu w zależności od rodzaju interfejsu sieciowego. Okazuje się, że .NET ma cały szereg funkcji pozwalających wykonywać tego rodzaju czynności.
Należy rozpocząć od zaimportowania odpowiedniej przestrzeni nazw:
using System.Net;
using System.Net.NetworkInformation;
Wśród znajdujących się tu funkcji na uwagę zasługuje:
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
Metoda ta pozwala pobrać wszystkie interfejsy sieciowe do kolekcji. W moim przypadku ciąg dalszy programu wyglądał tak: Czytaj dalej »
2011-02-01
Hmm, co zrobić, jeżeli program Outlook poprawnie łączy się pocztą, ma wpisane hasło do konta, ściąga pocztę, ale… użytkownik nie pamięta swojego hasła? Na dodatek nie skonfigurowane zostały żadne opcje przypominania haseł, a pytanie pomocnicze z dostępem do resetu hasła nie jest byt oczywiste? A może dostajesz się do konta pocztowego przez przeglądarkę i przeglądarka pamięta hasło, ale ty nie… Póki nie zostanie wyczyszczona pamięć przeglądarki będziesz mógł korzystać z poczty, a potem już nie! Czytaj dalej »
2011-01-28
Jest to dodatek Microsoft pozalający na szybsze uruchamianie aplikacji podczas debuggowania. Jeżeli zamierzasz przeniseść aplikację na inny komputer ten plik nie jest potrzebny.
Można wyłączyć budowanie tego pliku w chodząc w Project –> Properties –> Debug i odznaczając pole „Enable the Visual Studio hosting process”.