Tuesday, July 22, 2008

WindowsMobile: Pocket (lub telefon) Pocketowi modemem

Używanie modemu bluetooth pod WM6 może okazać się przydatne. Czasami mamy taryfę data w telefonie tudzież innym pockecie i fajnie byłoby sobie z niej skorzystać. A więc w chodzimy w kreatora, tworzymy połączenie. Nie ma żadnych problemów. Więc zadowoleni z siebie łączymy się... Pozdrawiami ludzi Billa kilkoma nie do końca grzecznymi słowami. Dlaczego mi to [tutaj nie do końca grzeczne słowo] nie działa?

Wynika do ze specyfiki połączeń pakietowych (gprs/edge/umts/hsdpa). Kluczowym elementem jest u nazwa APN (Acces Point Name) naszego operatora. Konfigurując połączenie przez wbudowany modem podajemy ten parametr, jednak jak przekazać go modemowi bluetooth?

Służą do tego stringi inicjalizacyjne. Każdy kto konfigurował połączenie pc-modem bluetooth zapewne się z nimi spotkał. Jednak mobilny Windows nie oferuje nam intuicyjnej i wygodnej możliwości podania tychże, co nieco psuje zabawę.

Dobra wiadomość: da się to ustawić. I to w kilku prostych krokach:

1. Odpalamy swój ulubiony edytor rejestru.

2. Przechodzimy do  HKEY_LOCL_MACHINE\Drivers\Unimodem\Init\

3. Jest tam wartość string "1" o wartości AT

4. Zmeniamy ją na AT+CGDCONT=1,"IP","APNNAME"<cr>, gdzie APNNAME to nazwa APN naszego operatora (cudzysłowie mają tam być!)

5. Zapisujemy.

6. Łączymy się.

7. Cieszymi się i wysyłamy podziękowanie autorowi opisu ;)

Disclaimer:

Zmian w rejestrze dokonujesz oczywiście na własną odpowiedzialność i nie masz do mnie pretensji, jeżeli coś zepsujesz sobie.

Saturday, July 19, 2008

Visual Studio 2005, Visual C++ i... problem

Początek przygody z pisaniem natywnych programów na Windows Mobile:

1. Włącz Visual Studio 2005.

2. File -> New -> Project...

3. Other languages -> Visual C++ -> Smart Device

4. Win32 Smart Device Project

5. Wpisz nazwę, kliknij OK...

6. Poczekaj chwilkę...

7. Krzycz! Wal pięściami w biurko! To całkiem zdrowa reakcja...

8. NIE reinstaluj VS, NIE reinstaluj WM6 SDK. Nic to nie da...

Jeżeli masz Windows XP SP2, instalujesz grzecznie aktualizację i korzystasz z VS2005 Std, to zapewne nie uda Ci się utworzyć nowego projektu. Usłyszysz dziwne blim-blim i pojawi się poprzedni dialog (wybór projektu).

Google Twoim przyjacielem. Poszukałem, znalazłem... nie pomogło (metoda z tworzeniem klucza w rejestrze). Sugestia reinstalowania Internet Explorera była równie skuteczna. Jednak jest rozwiązanie! Trochę kłopotliwe i uciążliwie (w perspektywie czasu), ale skuteczne i pozwala tworzyć nowe projekty w VC++ dla Smart Device.

A więc mój sposób wygląda następująco:

ODINSTALUJ INTERNET EXPLORER 7!

Krok może drastyczny, acz chyba konieczny. Po dezinstalacji do głosu dojdzie wbudowany w system (?) IE6, który jest w stanie sobie poradzić z wizardem tworzenia projektu, co przerasta IE7.

Nie możesz znaleźć IE na liście programów do odinstalowania? Nie nazywa się "Internet Explorer 7"? Nie. Nie nazywa się "Microsoft Internet Explorer 7"? Nie. Za łatwo by było znaleźć i odinstalować. Przewiń listę dalej, pod koniec znajdziesz... Windows Internet Explorer 7. Odinstaluj program, nie przejmując się zanadto ostrzeżeniami, że to co robisz jest złe (chyba, że na prawdę któryś z Twoich programów potrzbuje IE7, wtedy mogę tylko współczuć...). Potem restart sytemu. Teraz projekt powinien się utworzyć.

Wadą rozwiązania jest fakt, że automatyczne aktulizacje będą starały się nam za wszelką cenę wcisnąć IE7. Musimy być asertywni (o ile istnieje taka techniczna możliwość), albo... odinstalowywać to co jakiś czas. No cóż... Lepsze to niż szukanie VS2008.

Disclaimer:

Opisane przeze mnie postępowanie jest poważnym zagrożeniem dla systemu i może się skończyć źle. Robisz to na swoją odpowiedzialność. Nie odpowiadam za szkody, straty i krzywdy, które sobie wyrządzisz.

TODO: Przywitać się

Nie wiem jakim cudem trafiłaś/trafiłeś na mojego bloga, ale witam. Ten blog jest polskojęzyczny, w odróżnieniu od mojego drugiego bloga (miloszz.blogspot.com). Część wpisów będzie zapewne podwójna.

Zapraszam do lektury, może znajdziesz tutaj coś dla siebie.