Решил заменить себе блокнот на его более удобную версию блокнот2. NOTEPAD.exe в \WINDOWS\ переименовал в NOTEPAD.bak и скопировал NOTEPAD2.exe переименовав его в NOTEPAD.exe. Казалось бы все нормально, ан нет( Файлы ассоциированные с блокнотом открываются в оригинальной версии, да и Выполнить -> notepad все равно вызывает обычный блокнот. wtf?
Естьтакая хрень, как Windows File Protection. Она восстановит оригинальный notepad.exe в случае его изменения. Замена блокнота делается либо модификацией файла маппингом в память (WFP спит), либо явным обходом WFP, либо просто, как было предложено, ассоциацией TXT с Notepad2
Не все нормально: надо скопировать NOTEPAD.exe в: 1. %windir%\system32\dllcache\ 2. %windir%\system32\ 3. %windir%\ как говорил _Great_ WFP даст о себе знать при копировании NOTEPAD.exe в %windir%\ и %windir%\system32\. В первом мессаджбоксе выбери Cancel, а во втором Yes.
не факт. он может нагло молчать, но делать свое дело. ЗЫ. Странная вещь, но если сделать так: Code: char exe[1024]; DWORD d; GetWindowsDirectory(exe,sizeof(exe)-1); strcat(exe, "\\SYSTEM32\\NOTEPAD.EXE"); hFile = CreateFile(exe, GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); if(hFile!=INVALID_HANDLE_VALUE) { d = GetFileSize(hFile, 0); hMapping = CreateFileMapping(hFile, 0, PAGE_READWRITE, 0, d, 0); mapping = MapViewOfFile(hMapping, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, d); // редактим блокнот в памяти UnmapViewOfFile(mapping); CloseHandle(hMapping); CloseHandle(hFile); } то WFP не орет вообще и ничего не восстанавливает
Мне это было не принципиально, просто интресно... Про Wfp я тоже подумал, но думал что предупреждения будут.
ассоциирование с файлами... народ вы че??!! в реестре прописывается для каждого формата свое приложение! вообще юзаю notepad ++ rulezzz