środa, 3 marca 2010

Błąd przy uruchamianiu Delphi 2005 Access violation w module htmlhelp290.bpl.





Podczas  uruchamiania środowiska Delphi 2005, w momencie ładowania modułu pomocy na środowiska,  pojawia się  komunikat  błędu:

Access Violation at address 0A6C77BE in module htmlhelp290.bpl Read of address 00000018

Konsekwencją tego komunikatu jest wyłączenie dość wygodnego systemu pomocy w środowisku.

Błąd pojawia się gdy w systemie istnieje nowszy dotNET  niż w wersji 1.1, czyli praktycznie we wszystkich systemach Windowsowych. Problem powoduje Microsoft Document Explorer  w wersji nowszej niż 7.

Błąd pojawiający się przy uruchamianiu Delphi 2005 można usunąć korygując wpis w rejestrze.
  1. Otwieramy edytor rejestru Start->Uruchom ->regedit.
  2. Odnajdujemy klucz rejestru HKEY_CLASSES_ROOT\AppID\dexplore.exe.
  3. Zamieniamy wartość w kluczu “AppID” na {4A79114D-19E4-11d3-B86B-00C04F79F802}.
Jak na razie, a korzystam z tego od dość dawna, nie zauważyłem  aby wprowadzona zmiana miała jakiś negatywny wpływ na inne aplikacje.

wtorek, 2 marca 2010

Drukarka HP LaserJet 1010 (usb) w Windows 7 64bit

Drukarka HP LJ 1010 nie posiada sterownika dla Windows 7 i zgodnie z danymi HP nie będzie takowego posiadała … dlaczego ? kolejne pytanie bez odpowiedzi …

Googlając znalazłem kilka rozwiązań tego problemu, które sprawdzały się lepiej lub gorzej.

Jednym z lepszych rozwiązań było ściągnięcie sterowników do Visty i ręczne ich rozpakowanie oraz instalacja na porcie drukarki (DOT4). U mnie niestety taka instalacja powoduje dość istotne opóźnienia przy wydrukach. Da się z tym żyć wprawdzie tylko cholernie wolno żyć. Dość bolesne to jest przy wielostronicowych wydrukach.

Inne rozwiązanie okazało się dużo lepsze bo po pierwsze działa i po drugie wydruk nie ma opóźnień. Jak dotąd poniższe rozwiązanie nie powoduje żadnych problemów.

Cała procedura jest dość prosta i wygląda tak:
  1. Dodajemy nową drukarkę lokalną.
  2. Używamy istniejącego portu: DOT4_001 (Generic IEEE 1284.4 Printing support).
  3. Wybieramy drukarkę HP LaserJet 3055 PCL5.
  4. Kończymy i drukujemy.


poniedziałek, 1 marca 2010

NET Framework 1.1. w Windows Vista & 7

Ostatnio chciałem zainstalować oprogramowanie Borland Delphi 2005 na stacji z Windows 7. Jednak okazało się, że oprogramowanie z przed 5 lat jest na tyle przestarzałe iż instalacja na nowoczesnym systemie nie jest możliwa. Pomijając ciągłe komunikaty o niezgodności komponentów koniecznych do zainstalowania/działania środowiska (znane problemy z ….) okazało się, że instalacja biblioteki dotNet 1.1 wysypuje się uniemożliwiając dalsza instalacje.

Dokładnie to nie mam pojęcia z czego to wynika, przy Win7 dostaje tylko komunikat:

W aplikacji (Microsoft .NET Framework 1.1, od dostawcy Microsoft) wystąpił następujący problem: To oprogramowanie powoduje znane niezgodności z usługami IIS na tej platformie.
Instalator wysypuje się przy próbie rejestracji “System.EnterpriseServices.dll”.

dotNet1.1 jest jedna z tych, do których nowe dotNet-y nie są kompatybilne wstecz, więc posiadane biblioteki w systemie nie robią na instalatorze Delphi żadnego wrażenia. Okazuje się jednak, że Microsoft rozwiązał problemy z ta biblioteką w service pack-u, jednak nie rozprowadza wersji biblioteki z zaszytym servis packiem, więc nie da się jej i tak zainstalować ( kolejna niespodzianka). Cooż pozostaje zapodać ręcznie servis pack do instalatora biblioteki.
Czas zacząć operację …..

1. Ściągamy potrzebne pliki: dotnetfx.exe , NDP1.1sp1-KB867460-X86.exe .

2. Wrzucamy ściągnięte pliki do jakiegoś katalogu np. c:\temp.

3. Uruchamiamy okno linii komend (cmd) jako administrator i przechodzimy do katalogu gdzie wrzuciliśmy pobrane pliki.

4. Na początek powinniśmy rozpakować instalator. Robimy to podmieniając instrukcje instalacyjne zdefiniowane przez producenta używając do tego przełącznika /c:, dalej wykonujemy instalację (przełącznik /a ) we skazanym miejscu (parametr TARGETDIR, podajemy ścieżkę gdzie składujemy nasze pliki). Wykonujemy to odwołując się do zaszytego w pliku exe instalatora msi, za pomocą interpretera msiexec.exe.

dotnetfx.exe /c:"msiexec.exe /a netfx.msi TARGETDIR=C:\Temp"

Po wykonaniu powyższego polecenia, wyświetli się komunikat z prośbą o potwierdzenie wykonania instalacji.

5. Teraz zajmiemy się plikiem aktualizacji NDP1.1sp1-KB867460-X86.exe. Musimy wyodrębnić z niego plik aktualizacji pomijając cała otoczkę, Zrobimy to używając przełącznika /Xp: plik docelowy (korzystająć z okazji zmieńmy nazwę na bardziej ludzką np. netfxsp1.msp).
NDP1.1sp1-KB867460-X86.exe /Xp:C:\Temp\netfxsp1.msp

6. Teraz musimy zaaplikować uzyskany patch do naszej biblioteki, robimy to za pomocą znanego programu msiexec.exe wraz z przełącznikiem instalacji (/a) i wciągnięcia poprawki (/p)

msiexec.exe /a c:\Temp\netfx.msi /p c:\Temp\netfxsp1.msp

7. Pozostaje nam tylko uruchomić poprawiony plik netfx.msi, który już bez problemu powinien zainstalować nam .NET Framework 1.1. w systemach Windows Vista & 7.
Dodatki:
Więcej o msiexec.exe tutaj.
Wszelkie przełączniki plików można zobaczyć uruchamiając je z przełącznikiem /? np.
dotnetfx.exe /?