Chce zarejestrować OCX z zasobów bez zapisywania pliku na dysk .. ? czy jest to możliwe do wykonania ?
dzieki za pomoc
Standardowo aby zarejestrować ocx używa się programu regsvr32, "regsvr32 kontrolka.ocx".... plik kontrolka.ocx musi byc zapisany na dysku, po rejestracji moge uzywac procedur , funkcji z tej kontrolki...
chcę zarejestrować tę kontrolkę z zasobów, pierwsze wrzucić ją w zasoby exe, później bez zapisywania na dysku zarejestrować, i mieć możliwość korzystania z funkcji,procedur tej kontrolki...
później bez zapisywania na dysku zarejestrować, i mieć możliwość korzystania z funkcji,procedur tej kontrolki...
Albo chcesz zrobić coś potencjalnie niebezpiecznego, albo po prostu wypakuj to do tempa i wtedy działaj...
Generalnie to OCX to dll, a nie słyszałem o sposobie ładowania owych do pamięci bez zapisu do pliku. Zapewne takie procedury nie istnieją w jakimś przyzwoitym API więc próba zrobienia czegoś takiego to zabawa bez końca.
Więc może zadam takie pytanie: Dlaczego nie możesz tego wrzucić do tempa i wtedy używać ew. instalować.
Prostując to co napisał 123, dllki oczywiście z zasobów da się wczytać, ale nie wszystkie zadziałają, na przykład może być problem z dllkami hookującymi choćby myszkę. Do ładowania dllek z zasobów służy moduł dllloader.pas, który można też spotkać na google w wersji napisanej przez Aphex (tego od moduło do injekcji dllek afxcodehook.pas) W przypadku OCXów nie wiem jak będzie, ale musisz sprawdzić czy załadowania OCX'a z zasobów i wywołanie funkcji DllRegisterServer się powiedzie, podejrzewam, że nie do końca to się uda, bo po dodaniu OCX'a system będzie chciał fizycznie korzystać z niego jako pliku na dysku. Także dllki z małymi wyjątkami da się używać z zasobów, co do OCXów niech się wypowie ktoś, kto się z nimi więcej bawił. Ja dołaczam do tego posta prosty program który odczytuje właśnie bass.dll z zasobów. Jest to kompletny kod wraz z exekiem skompilowany pod Delphi 7.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.