Problem z Windows Common Controls Mscomctl.ocx

Wstęp

Sierpień nie jest łaskawy dla programistów Access-a, tym razem dzięki poprawce opisanej
w artykule: 2597986 MS12-060: Description of the security update for Office 2010, wszyscy którzy używają tytułowych kontrolek będą mieć z nimi problem.

Opis problemu
Ja osobiście używam kontrolki Toolbar i to ona była przyczyną intensywnego poszukiwania rozwiązania. Symptomy to:

1. Komunikat “W tym formancie nie umieszczono żadnego obiektu”
2. Toolbars był widoczny na formularzu, ale nie reagował na żadne akcje myszką
3. Komunikat o blędnej procedurze zdarzenia, przy MouseMove

Wszystkie występowały niezależnie.

Rozwiązanie

Wszystkiemu winna jest nowa wersja kontrolki Mscomctl.ocx 6.01.9834, a raczej brak jej kompatybilności wstecz.
Rozwiązanie to ponowna rejestracja w systemie:

regsvr32 /u mscomctl.ocx
regsvr32 /u mscomctl.ocx

Niestety to czasami nie pomaga, wtedy trzeba usunąć z rejestru z klucza HKCR\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1} wszystkie pod-klucze, u mnie to 2.0 i 2.1.

Uwaga! Modyfikowanie rejestru to nie jest bezpieczna sprawa, może wpłynąć na poprawność działania całego systemu, jeżeli skorzystasz z rozwiąznia powyżej, robisz to na własna odpowiedzialność…

Podsumowanie

Bardzo dużo nerwów straciłem na rozwiązanie tego problemu, w efekcie przy pomocy AutoIt, stworzyłem prostego exec-a, który za mnie wykonuje opcje naprawy, dzięki temu nie mam problemu z wersją systemu 32/64 bit, a umieszczony w Internecie pozwala telefonicznie rozwiązać problem użytkownikowi.

#RequireAdmin
RegDelete("hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0")
RegDelete("hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.1")
RunWait('regsvr32 /u MSCOMCTL.OCX', @SystemDir)
RunWait('regsvr32 MSCOMCTL.OCX', @SystemDir)
  1. Mam windows7 x64bits i problem ten o którym u Ciebie czytałem.Nie jestem fachowcem ale zwykłym użytkownikiem.Proszę o pomoc w tej sprawie.Piszesz o sprytnym rozwiązaniu jakie wykonałeś.Czy mógłbyś podzielić się ze mną tym plikiem(stworzyłem prostego exec-a, który za mnie wykonuje opcje naprawy, dzięki temu nie mam problemu z wersją systemu 32/64 bit, a umieszczony w Internecie pozwala telefonicznie rozwiązać problem użytkownikowi.)Pozdrawiam
    Rysiek

  2. Dzięki wielkie za szybką reakcje.Niestety nie pomogło.Nadal wyskakuje ten sam komunikat-
    RegSvr32

    Nie można załadować modułu”MSCOMCTLOCX”

    Upewnij się że plik binarny jest przechowywany w określonej ścieżce lub zdebuguj go,aby sprawdzić czy występują problemy z plikiem binarnym lub zależnymi bibliotekami DLL

    Nie można odnaleźć określonego modułu.
    Nie mam szarego pojęcia co robić.Przeszkadza mi brak tego ustawienia ponieważ korzystam z Flack Frontend do konwersji i właśnie wówczas ujawnia się ten problem .
    Pozdrawiam.
    PS
    Może da się to jakoś wyprostować?

    • Upewnij się, ze masz mscomctl.ocx w systemie dostępne w lokalizacji zmiennej systemowej PATH.

      Panel sterowania\System i zabezpieczenia\System-> Zaawansowane ustawienia systemu

      zakładka zaawansowane-> przycisk Zmienne środowikowe

      i w zmiennych systemowych zmienna PATH

  3. Dzięki.Szacunek i czapki z głów Panowie i piękne Panie!!
    Jesteś wielki.Bardzo miło było poznać.Udało się właśnie przed chwilką.Poprostu dodałem inną wersje tego cholerstwa do katalogu Sys WOW 64 pliku MSCOMCTL.OCX(wersja 6.01.97.82)

  4. Oczywiście fix zadziałał bez problemu.

Reply to programistaaccess ¬
Cancel reply

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar