7

ОК, я действительно очень хочу заменить по умолчанию notepad.exe в Windows 7 на Editpad (да, я хочу заменить настоящий исполняемый файл, и нет, я не хочу использовать что-то вроде Notepad2, поэтому, пожалуйста, не предлагайте это), Я использовал следующий пакетный скрипт, который работал для меня раньше:

@echo off
TITLE EditPad Install Script for Complete Windows Vista and 7 Notepad Replacement
echo.
echo EditPad Install Script for Complete Windows Vista and 7 Notepad Replacement
echo Version 2.0
echo.
echo Confirm to apply? (Press Ctrl-C and answer Y to terminate)
pause
echo.
echo.

if exist %SystemRoot%\notepad.original.exe goto exist_editpad_already
if exist %SystemRoot%\System32\notepad.original.exe goto exist_editpad_already
takeown /f %SystemRoot%\notepad.exe
takeown /f %SystemRoot%\System32\notepad.exe
icacls %SystemRoot%\notepad.exe /grant "%USERNAME%":f
icacls %SystemRoot%\System32\notepad.exe /grant "%USERNAME%":f
IF EXIST %SystemRoot%\SysWOW64 (bcdedit.exe -set loadoptions "DDISABLE_INTEGRITY_CHECKS")
copy %SystemRoot%\notepad.exe %SystemRoot%\notepad.original.exe
copy %SystemRoot%\System32\notepad.exe %SystemRoot%\System32\notepad.original.exe
echo.
echo Original notepad.exe has been renamed to "notepad.original.exe" in its original folder.
echo.
echo Overwriting %SystemRoot%\notepad.exe with "%~dp0\EditPad.exe"
copy "%~dp0\EditPad.exe" %SystemRoot%\notepad.exe /y
echo Overwriting %SystemRoot%\System32\notepad.exe with "%~dp0\EditPad.exe"
copy "%~dp0\EditPad.exe" %SystemRoot%\System32\notepad.exe /y
echo.
echo EditPad installation is completed.
echo If no error occurred, EditPad will now replace all Notepad functions.
echo.
pause
goto eof

:exist_editpad_already
echo.
echo INSTALLED EditPad ALREADY! (notepad.original.exe exists in windows or windows system32)
echo.
pause
goto eof

:eof

Этот сценарий заменил notepad.exe исполняемым файлом Editpad, но теперь, если я пытаюсь открыть текстовый файл, я получаю сообщение об ошибке «Ваша копия NOTEPAD.EXE, похоже, повреждена. Пожалуйста, попробуйте переустановить его из оригинального установочного пакета. "

Я использую Windows 7 64 бит. Что я мог сделать, чтобы заставить Windows разрешить мне использовать Editpad в качестве моего notepad.exe, не давая мне это глупое сообщение об ошибке?

ОБНОВИТЬ:
Я думаю, что у меня есть еще немного информации, которая может немного помочь. Проблема, кажется, со мной, запускающим editpad.exe вообще в каталоге system32. Если я подставляю различные другие exe-файлы для system32\notepad.exe они работают нормально, но когда я пытаюсь запустить editpad.exe в этом каталоге, Windows 7 выдает всплывающее диалоговое окно: «Не удалось проверить издателя. Вы уверены, что хотите запустить это программное обеспечение?«Если я нажимаю« Выполнить », я получаю сообщение об ошибке« Файл поврежден », но ТОЛЬКО если я запускаю его в каталоге system32. Мне нужно найти способ запустить этот exe-файл в каталоге system32.

6 ответов6

3

Используйте раздел реестра параметров выполнения файла изображения .

  • Откройте regedit.exe качестве администратора.
  • Перейдите к HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  • Создайте новый ключ (папку) с именем notepad.exe
  • Создайте новое значение REG_SZ именем Debugger и задайте в качестве его значения путь к исполняемому файлу Editpad.exe .

Готово. Это не требует изменения или удаления системного notepad.exe , но независимо от того, как программа пытается его запустить (просто попробуйте дважды щелкнуть программу из Проводника самостоятельно), она запустит EditPad.

Если вы работаете в 64-битной Windows и пытаетесь использовать 32-битную программу, внесите изменения в HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\ CurrentVersion\Image File Execution Options . (Эту информацию можно найти на странице « Блокнот 2 - замена блокнота Windows» .)

3

Моя идея состоит в том, чтобы создать приложение-помощник, которое может добавить в записи реестра выполнения файлов изображений правильную работу EditPad.

Примечание. Сначала вам нужно будет восстановить исходный блокнот Windows либо через всплывающее сообщение об ошибке, либо путем отмены внесенных изменений. В противном случае Windows может продолжать приставать к вам с сообщением об ошибке независимо от того, что вы пытаетесь.

Подсказка: Notepad Replacer, предложенный Dracs, делает нечто подобное тому, что ниже, автоматически. Попробуйте сначала, если у вас нет причин избегать этого, таких как приложение с закрытым исходным кодом. В этом случае вы можете использовать метод ниже:

  1. Создайте командный файл со следующим кодом. Пакетный файл может называться, например, Replacer.bat, и его можно разместить в любом месте, например в папке установки EditPad. (Я предполагаю, что EditPad установлен по указанному пути. Если нет, пожалуйста, измените его.)

    SET NotepadTempVar=%*
    IF DEFINED NotepadTempVar SET NotepadTempVar=%NotepadTempVar:"C:\Windows\System32\notepad.exe"=%
    IF DEFINED NotepadTempVar SET NotepadTempVar=%NotepadTempVar:"C:\Windows\notepad.exe"=%
    IF DEFINED NotepadTempVar (
        FOR /F "tokens=*" %%A IN ("%NotepadTempVar%") DO SET NotepadTempVar=%%A
    )
    IF DEFINED NotepadTempVar (
        START "" "C:\Program Files\EditPad\EditPad.exe" "%NotepadTempVar%"
    ) ELSE (
        START "" "C:\Program Files\EditPad\EditPad.exe"
    )
    
    • ВНИМАНИЕ! После команды START необходимо иметь пустую строку "" , иначе ваша система может зайти в бесконечный цикл создания новых окон командной строки.
    • Возможно, вам придется проверить пути исходного блокнота во второй и третьей строках, чтобы отразить вашу систему. Я обнаружил, что пути в 32-битной и 64-битной Windows одинаковы. Пути не чувствительны к регистру, но следите за тем, чтобы вокруг них оставались кавычки.
    • В 64-битной Windows вам может понадобиться добавить эту дополнительную строку между второй и третьей строками:

      IF DEFINED NotepadTempVar SET NotepadTempVar=%NotepadTempVar:"C:\Windows\SysWOW64\notepad.exe"=%
      


  2. (необязательно) Используйте Batch To Exe Converter для компиляции командного файла в исполняемую программу. Выберите опцию "Невидимое приложение".

    • Если вы не хотите использовать Batch To Exe Converter, вы можете использовать другое решение или использовать сам пакетный файл для следующих шагов вместо скомпилированного EXE файла. Однако, если вы используете сам пакетный файл, вы увидите мгновенное мигание командного окна перед открытием EditPad.

  3. Откройте редактор реестра, открыв меню "Пуск" и выполнив поиск regedit (или воспользовавшись командой Run для запуска regedit).

  4. Перейдите к HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

  5. Если ключ (папка на левой панели) с именем notepad.exe не существует в Image File Execution Options , щелкните « Правка»> "Создать"> "Ключ" и введите notepad.exe качестве имени нового ключа. Если он уже существует, просто перейдите к нему.

  6. Если запись с именем Debugger (тип REG_SZ) не существует в ключе notepad.exe (справа), нажмите « Правка»> "Создать"> "Строковое значение" и введите « Debugger качестве имени новой записи.

  7. Дважды щелкните запись с именем « Debugger и введите полное местоположение и имя EXE-файла, созданного Batch To Exe Converter, или пакетного файла, если вы не использовали компилятор. Заключите местоположение в кавычки.

    • Например, если вы сохранили пакетный файл в папке программы EditPad, значение записи отладчика может быть "C:\Program Files\EditPad\Replacer.bat" или "C:\Program Files\EditPad\Replacer.exe" где Replacer.bat - это пакетный файл, а Replacer.exe - это скомпилированный EXE-файл, полученный на шаге 2, если таковой имеется.

  8. Проверьте настройку с помощью:

    • Открытие Windows Notepad из меню "Пуск". EditPad должен открыться вместо этого.
    • Двойной щелчок по текстовому файлу или любому файлу, связанному с Блокнотом Windows.
    • Тестирование других означает, что вы должны нормально открыть Блокнот Windows. Скорее всего, они откроют EditPad.

Если есть какие-либо проблемы, ваши пути в пакетном файле, созданном на шаге 1, могут быть неправильными. Все остальные шаги должны быть в порядке без проблем, если вы правильно выполнили их. Просто проверьте и исправьте пути в командном файле (и при необходимости перекомпилируйте EXE).

2

Я сделал это на своем компьютере с помощью Notepad Replacer. На самом деле он не заменяет никакие файлы, но делает все, что бы делал блокнот, чтобы использовать любую выбранную вами программу. Я не видел оригинальный блокнот с тех пор, как установил его. Удаление также легко вернет все обратно.

1

Я полагаю, вам также нужно заменить файл notepad.exe в %WINDIR%\winsxs\Backup но даже это может не работать должным образом - это связано с защитой ресурсов Windows.

0

Вы написали:

Этот сценарий заменил notepad.exe исполняемым файлом Editpad, но теперь, если я пытаюсь открыть текстовый файл, я получаю сообщение об ошибке «Ваша копия NOTEPAD.EXE, похоже, повреждена. Пожалуйста, попробуйте переустановить его из оригинального установочного пакета. "

notepad.exe - это защищенный файл Windows , поэтому заменить его немного сложно ...

Вот ручное решение с сайта HowTo Geek : как заменить блокнот в Windows 7

http://www.howtogeek.com/howto/12617/how-to-replace-notepad-in-windows-7/

Другим вариантом может быть использование утилиты командной строки Sysinternals PsExec в вашем пакетном файле со следующими параметрами

...PsExec.exe" -i -d -s...

PsExec: http://technet.microsoft.com/en-us/sysinternals/bb897553

Надеюсь, это поможет. Дайте нам знать.

0

Просто запустите пакетный файл в режиме администратора.

  1. Щелкните правой кнопкой на командном файле
  2. Выберите "Запуск от имени администратора"
  3. Продолжить установку

Если вы уже выполнили этот сценарий ранее, скорее всего, он не будет работать немедленно, и вам нужно будет удалить notepad.original.exe из% SystemRoot% и% SystemRoot%\System32:

rm %SystemRoot%\notepad.original.exe
rm %SystemRoot%\System32\notepad.original.exe

Помните, что вам также нужно запустить это в режиме администратора, поэтому скопируйте приведенные выше строки в файл и выполните те же инструкции, что и для исходного пакетного файла выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .