Mam wielu użytkowników korzystających z mojej aplikacji. Jednak jeśli zrobię jakąś aktualizację, którą umieściłem na serwerze, nie wszyscy zechcą ją zaktualizować (czasami boją się zmian, których nie chcą przyzwyczaić).Uruchamianie aplikacji z bazy danych
Spekuluję więc, jak zmusić ich do uruchomienia najnowszej aplikacji. Z pewnością jest na to kilka sposobów, ale słyszałem, że możliwe jest uruchomienie aplikacji przechowywanej w polu blob bazy danych.
Czy ktoś wie, jak można to osiągnąć? (Używam bazy danych MySQL)
thanx
Dlaczego należy skopiować 'TMemoryStream' do oddzielnej tablicy bajtów, zamiast przekazywać' ms.Memory' do 'ExecuteFromMem()' zamiast? Kopiując dane, powielacie plik wykonywalny w pamięci, co jest marnotrawstwem. –
Ponadto, 'ExecuteFromMem()' działa przez uruchomienie nowego procesu dla 'ExistingDummy.exe' w stanie zawieszenia, zastępuje jego pamięć danymi wejściowymi, a następnie wznawia proces. Nie sądzę, że będzie to bardzo dobrze grać z technologiami UAC i DEP, zwłaszcza z UAC, który jest wywoływany tylko w czasie tworzenia procesu. Najbezpieczniejszą opcją byłoby po prostu zapisanie danych 'TMemoryStream' do tymczasowego pliku' .exe', a następnie wykonanie go w zwykły sposób. –
@RemyLebeau Zgadzam się z Tobą w obu punktach. Nigdy nie potrzebowałem takiego wymogu. Do tej pory nie mogłem wykryć problemów z UAC i DEP. Próbowałem tylko na zainteresowanie (proof of concept). – bummi