обновление dll

Discussion in 'WASM.BEGINNERS' started by berni, Jul 4, 2009.

  1. berni

    berni New Member

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

    Partner Павел

    Blog Posts:
    0
    Joined:
    Feb 28, 2008
    Messages:
    917
    Location:
    Los Angeles
    MoveFileEx MOVEFILE_DELAY_UNTIL_REBOOT
     
  3. berni

    berni New Member

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

    MSoft New Member

    Blog Posts:
    0
    Joined:
    Dec 16, 2006
    Messages:
    2,854
    berni
    Мой тебе совет, открой мсдн, вбей в его поиске MoveFileEx. Там будет описание функции. В этом описании ты прочтешь, какой эффект дает флаг MOVEFILE_DELAY_UNTIL_REBOOT.

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