обновление dll

Тема в разделе "WASM.BEGINNERS", создана пользователем berni, 4 июл 2009.

  1. berni

    berni New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2009
    Сообщения:
    17
    Встал вопрос о самообновлении. Но проблема в том, что dll`ka используется всеми процессами. В принципе можно пройтись по всем процессам с FreeLibrary, но это как-то вульгарно :) Может я упустил какой-то способ? Использовать драйвер не хочется, пытаюсь все делать в r3. Есть ли вообще какая-то возможность перезаписать файл?
     
  2. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    MoveFileEx MOVEFILE_DELAY_UNTIL_REBOOT
     
  3. berni

    berni New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2009
    Сообщения:
    17
    Тоесть я убираю текущий файл с флагом MOVEFILE_DELAY_UNTIL_REBOOT, и потом копирую новый файл с этим же флагом на его место? Может ли быть ккая-то коллизия, к примеру что сначала будет попытка скопировать новый на место старого, а только потом копирование старого куда-либо?
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    berni
    Мой тебе совет, открой мсдн, вбей в его поиске MoveFileEx. Там будет описание функции. В этом описании ты прочтешь, какой эффект дает флаг MOVEFILE_DELAY_UNTIL_REBOOT.

    Если все равно не поможет, то:
    не надо ничего удалять - просто перемести новый файл с этим флагом, а после перезагрузки виндовс сама все сделает