Windows 7'deki notepad.exe dosyasının değiştirilmesi


7

Tamam ben gerçekten ama gerçekten Windows 7'de varsayılan notepad.exe'yi Editpad ile değiştirmek istiyorum (evet, gerçek yürütülebilir dosyayı değiştirmek istiyorum ve hayır, Notepad2 gibi bir şey kullanmak istemiyorum, bu yüzden lütfen bunu önermeyin). Daha önce benim için çalışan aşağıdaki toplu betiği kullandım:

@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

Bu betik notepad.exe'yi Editpad çalıştırılabilir dosyasıyla değiştirdi, ancak şimdi bir metin dosyasını dener ve açarsam, "NOTEPAD.EXE kopyanızı zarar görmüş görünüyor. Lütfen orijinal kurulum paketinden yeniden yüklemeyi deneyin. "

Windows 7 64 bit kullanıyorum. Bana bu aptal hata mesajını vermeden Editpad'i notepad.exe olarak kullanmama izin vermek için ne yapabilirim?

GÜNCELLEŞTİRME:
Sanırım bazı şeylere yardımcı olabilecek daha fazla bilgiye sahibim. Sorun editpad.exe çalıştıran benimle görünüyor hiç system32 dizini içinde. Çeşitli exe dosyalarını değiştirirsem system32\notepad.exe iyi koşuyorlar, ama kaçmaya çalıştığımda editpad.exe bu dizinde, Windows 7 bana bir açılır pencere veriyor: "Yayıncı doğrulanamadı. Bu yazılımı çalıştırmak istediğinizden emin misiniz?" Çalıştır'ı tıklatırsam, 'dosya zarar görmüş' hatası alıyorum - ancak SADECE system32 dizini içinde çalıştırıyorum. Bu exe system32 dizini içinde çalışmasını sağlamak için bir yol bulmam gerekiyor.


2
Neden sadece .txt için varsayılan programı editpad olarak ayarlamıyorsunuz?
Raystafarian

2
Birisinin bunu söyleyeceğini biliyordum. Çeşitli şeylerin içine notepad.exe'nin yeri girilmiştir ve notepad.exe'yi değiştirmek, dosya ilişkilerini değiştirmek ve tüm ayarları yapılandırmaktan çok daha kolaydır.
Jez

1
Bilmek güzel. bu konu belki bazı önemli bilgilere sahip olmak. Bir soru sorduğumdan beri biraz katkıda bulunmaya çalışacağımı düşündüm.
Raystafarian


Yanıtlar:


3

Benim fikrim EditPad'i doğru bir şekilde çalıştırmak için Image File Execution kayıt defteri girişlerinde engelleyen bir destekçi uygulaması oluşturmak.

Not: Geri yüklemek zorunda kalacak orijinal Önce Windows Notepad, açılan hata iletisiyle ya da yaptığınız değişiklikleri geri alarak. Aksi halde, Windows ne denerseniz yapın hata mesajı ile sizi rahatsız etmeye devam edebilir.

Bahşiş: Not Defteri Replacer Dracs tarafından önerilen, aşağıdakine benzer bir şey yapıyor otomatik olarak . Önce bunu deneyin, uygulamadaki gibi kaçınmak için bir nedeniniz yoksa kapalı kaynak . Bu durumda, aşağıdaki yöntemi kullanabilirsiniz:

  1. Aşağıdaki kodla bir toplu iş dosyası oluşturun. Toplu iş dosyası adlandırılmış olabilir Replacer.bat örneğin, EditPad'in kurulum klasörü gibi herhangi bir yere yerleştirilebilir. (EditPad'in verilen yolda kurulu olduğunu varsayıyorum. Değilse, lütfen değiştirin.)

    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"
    )
    
    • DİKKAT! Boş dizgeye sahip olmak gereklidir. "" START komutundan sonra, aksi halde sisteminiz yeni bir yaratma işleminin sonsuz döngüsüne girebilir. Komut istemi pencereler.
    • Yollarını doğrulamanız gerekebilir. orijinal İkinci ve üçüncü satırlardaki not defteri sisteminizi yansıtır. Yolları hem 32-bit hem de 64-bit Windows'da aynı buldum. Yolları büyük küçük harf duyarsız ancak alıntı işaretlerini onların etrafında tutmaya dikkat edin.
    • 64-bit Windows'ta bunu eklemeniz gerekebilir ekstra ikinci ve üçüncü satırlar arasındaki satır:

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


  2. (isteğe bağlı) kullanım Toplu Dönüştürücü Dönüştürmek Toplu iş dosyasını yürütülebilir bir programa derlemek için. "Görünmez uygulama" seçeneğini seçin.

    • Kullanmak istemiyorsanız Toplu Dönüştürücü Dönüştürmek , başka bir çözüm kullanabilir veya toplu iş dosyasını derlenmiş yerine aşağıdaki adımlar için kullanabilirsiniz. EXE dosya. Ancak toplu iş dosyasını kullanırsanız, EditPad açılmadan önce bir komut penceresinin anlık yanıp söndüğünü göreceksiniz.

  3. Açık Kayıt düzenleyici Başlat menüsünü açıp regedit (veya çalıştırmak için Çalıştır komutunu kullanarak regedit ).

  4. Şu yöne rotayı ayarla HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

  5. Bir anahtar (sol bölmedeki klasör) notepad.exe içinde yok Image File Execution Options, tıkla Düzenle & gt; Yeni & gt; anahtar ve tür notepad.exe yeni anahtarın adı olarak. Zaten mevcutsa, ona basitçe gidin.

  6. Eğer bir giriş isminde Debugger (tip REG_SZ) içinde yok notepad.exe tuşuna (sağ tarafta) tıklayın Düzenle & gt; Yeni & gt; Dize değeri ve tür Debugger yeni girişin adı olarak.

  7. Adlı girişi çift tıklayın Debugger ve tarafından oluşturulan EXE dosyasının tam yerini ve adını girin. Toplu Dönüştürücü Dönüştürmek veya Bir derleyici kullanmadıysanız, toplu iş dosyası. Konumu tırnak işaretleri içine alın.

    • Örneğin, toplu iş dosyasını EditPad'in program klasöründe sakladığınızı varsayarsak, Debugger girişinin değeri olabilir. "C:\Program Files\EditPad\Replacer.bat" veya "C:\Program Files\EditPad\Replacer.exe" Replacer.bat toplu iş dosyası ve Replacer.exe varsa 2. adımda elde edilen derlenmiş EXE dosyasıdır. .

  8. Kurulumu şu şekilde test edin:

    • Başlat Menüsü'nden Windows Not Defteri'ni açma. Bunun yerine EditPad açılmalıdır.
    • Bir metin dosyasını veya Windows Not Defteri ile ilişkili herhangi bir dosyayı çift tıklatarak.
    • Bildiğiniz diğer araçları test etmek normalde Windows Not Defteri'ni açmalıdır. Büyük olasılıkla EditPad'i açacaklar.

Herhangi bir sorun varsa, 1. adımda oluşturulan toplu iş dosyasındaki yollarınız doğru olmayabilir. Doğru şekilde takip ettiyseniz, tüm diğer adımlar sorunsuz bir şekilde yapılmalıdır. Yalnızca toplu iş dosyasındaki yolları doğrulayın ve düzeltin (ve gerekirse EXE dosyasını yeniden derleyin).


Bu replacer toplu iş dosyası yöntemi bir tedavi çalışır. Teşekkürler! Ama bana ne yaptığını söyleyebilir misin NotepadTempVar? Bunu tanımlıyor gibi görünüyorsunuz ve ardından tanımlanıp tanımlanmadığını kontrol etmeye devam edin ... Ayrıca, 'Notepad Replacer' kullanımıyla ilgili satırınızı kaldırmanızı öneririm. Kapalı kaynak ve ne yaptığından emin olamadığım için sistemime yüklemeyi sevmiyorum. Muhtemelen gelecekte buna benzer bir şey yazacağım, ancak açık kaynak yapacaktır.
Jez

@Jez kullanıyorum NotepadTempVar İlk olarak START hat. Başkalarının iyiliği için 'Not Defteri Replacer'ı' demiştim ("kapalı kaynak" olmaktan kaçınmak için nedenleriniz varsa denemeyi atlayabileceğinizi söyledim.) bu güncel sürüm. İlk başta ben sadece bir atmak olabilir düşündüm EditPad.exe "%2" ama hiç işe yaramadı. Sorunu çözmek için çok daha uzun bir toplu iş dosyası buldum, ancak bu bile bazı durumlarda işe yaramadı. Sonra yavaş yavaş değişiklik ve test, bu son sürümü ile geldi.
ADTC

@Jez hakkında biraz daha fazla NotepadTempVar. İlk önce tam komut satırı argümanlarını alır. İkinci ve üçüncü satırlar, sistemin bilinen yollarını kaldıracak notepad.exe itibaren NotepadTempVar. Onların (ve diğer satırların) neden olup olmadığını kontrol etmeleri gerekir. NotepadTempVar tanımlandığı içindir. SET işlemler koymak için boş bir değer alıyor NotepadTempVar, tanımlanmayacak ve sonraki satırların yanlış çalışmasına neden olacaktır (Bunu zaten test ettim. Bilinen yolun kaldırılmasıyla notepad.exe tanımlanmamış bir değişken üzerinde istenmeyen etkiler doğurur).
ADTC

Son IF DEFINED EditPad'inizin son değeri NotepadTempVar boş. (Notepad2 olacak otomatik olarak Açık boş bir dize olduğunda iletişim kutusu "" dosya adı olarak geçirilir. Bunları, kullanmak istedikleri değiştirme yazılımına bakılmaksızın, toplu iş dosyasını kullanan herhangi bir kimsenin başına gelmemesi için denetimi koydum.) Bu toplu iş dosyası, ardışık 2 boşluk içeren yolları da kırmaz (daha uzun yöntemim başarısız oldu). Not: EditPad'in Yapılandırma menüsünde Not Defteri'ni değiştirme seçeneği olduğunu duydum. Önce onu bulup kullanmaya çalıştın mı?
ADTC

1
@Jez Toplu dosyamın sağlanacağına emin oldum değil ne zaman başarısız notepad.exe doğrudan açılır (Başlat Menüsü kısayolu ile veya hatta Windows/System32 dizin ve çift tıklayarak). Bu yaptığım testlerden biriydi. IF DEFINED Çekler aslında bunun içindir ve toplu iş dosyasını tanımsız bir olası örneğe karşı korumak için kullanılır. NotepadTempVar. Böylece uygun komutlar ne zaman yürütülür. NotepadTempVar değişkenler tanımsızlaşıyor (boş değer, değerine göre ayarlandığı için SET komutu). Umarım açıktır :)
ADTC

3

Kullan Resim Dosyası Yürütme Seçenekleri kayıt defteri anahtarı

  • Açık regedit.exe Yönetici olarak.
  • Şu yöne rotayı ayarla HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
  • Adlı yeni bir anahtar (klasör) oluşturun. notepad.exe
  • Yeni bir tane oluştur REG_SZ değer adlandırıldı Debugger ve değerini, Editpad.exe yürütülebilir.

Bitti. Bu, sistemin değiştirilmesini veya çıkarılmasını gerektirmez notepad.exe, ancak bir programın nasıl çalıştırılmaya çalışıldığına bakılmaksızın (Explorer'dan programa kendiniz çift tıklatarak deneyin), EditPad'i çalıştırır.

64 bit Windows kullanıyorsanız ve 32 bit program kullanmaya çalışıyorsanız, değişikliklerinizi HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\ CurrentVersion\Image File Execution Options yerine. (Bu bilgi Notepad2 - Windows Not Defteri'ni Değiştirme sayfa.)


1
Şey, bu bir şeyleri değiştiriyor, ama bunun yerine şimdi bana farklı bir hata veriyor. :-) "Bir sistem çağrısına iletilen veri alanı çok küçük."
Jez

Düzenlememi kontrol et. EditPad 32 bit bir uygulama ise, değişiklikleri farklı bir kayıt defteri anahtarında yapmanız gerekebilir. Ayrıca, isterseniz komut satırı parametrelerini de iletebilirsiniz.
afrazier

Bunun içindeki kayıt defterine koymak Wow6432Node yol hala çalışmıyor. :-( Ben hala aynı hatayı alıyorum.
Jez

Yalnızca 2 şeyi düşünebilirim: 1. EditPad'e giden yolunuz boşluk içeriyorsa (örneğin, "Program Dosyaları"), kayıt defterinde belirtilen yürütülebilir dosyanın tam yolu? 2. EditPad'de bir tür ince böcek var. Ancak EditPad Pro'nun demosunu bir XP VM'de test ettim ve bu benim için çalıştı. (Verilen, bu 32-bit XP vs 64-bit 7, ama 32-bit Notepad2.exe 64-bit Win 7 sistemimin yanı sıra 64-bit Notepad2.exe aynı amaç için yapar.)
afrazier

2
afrazier'ın cevabı nasıl Notepad2 resmi olarak Not Defteri çalıştırılabilir dosyasını değiştirmeden, yükleme sırasında Not Defteri'ni kendisiyle "değiştirir" notepad.exe. Ancak, Notepad2 bir /z Orijinal Not Defteri'nin yürütülebilir dosyasını açmaktan kaçınan komut satırı argümanı ( notepad.exe ) düzenlenebilir metin olarak Notepad2'de (Windows'un Hata Ayıklayıcı sistemi Notepad2'ye geçeceğinden). EditPad'in, iletilenleri yoksaymasını sağlayan bazı benzer argümanları yoksa notepad.exe afrazier'in cevabını doğru kullanamazsınız.
ADTC

2

Bunu bilgisayarımda kullanarak yaptım Not Defteri Replacer . Aslında herhangi bir dosyayı değiştirmez, ancak seçtiğiniz herhangi bir programı kullanmak için bir not defterinin yapmış olacağı bir şey değildir. Taktığımdan beri orijinal not defterini görmedim. Kaldırma, aynı zamanda her şeyi kolayca geri alacaktır.


@Jez Bu gerçekten çalışmalı ve önceki uzun yorumumda bahsettiğim soruna dikkat etmeli. Olmazsa haberim olsun, çünkü denemek için başka bir fikrim var.
ADTC

@ADTC Lütfen diğer fikrinizi cevap olarak gönderin.
Jez

Hmm tamam @Jez. BTW, umarım denemeden önce orijinal Windows Not Defteri'ni geri yüklediniz (hata iletisi veya toplu iş dosyası değişikliğini geri alarak) Not Defteri Replacer İşte. Değilse, denemenize rağmen Windows sizi rahatsız etmeyi sürdürecek Not Defteri Replacer .
ADTC

+1 - Not Defteri'nin herhangi bir düzenleyiciyle değiştirilmesine izin verecek iyi bul!
afrazier

1
@Jez yapıldı. Toplu iş dosyasının tüm durumlarda doğru şekilde çalışmasını sağlamak için çok test etmek zorunda kaldım, bu yüzden yanıtı hazırlamak çok uzun sürdü.
ADTC


0

Toplu iş dosyasını yönetici modunda çalıştırmanız yeterlidir.

  1. Toplu iş dosyasına sağ tıklayın
  2. "Yönetici olarak çalıştır" ı seçin
  3. Kuruluma devam et

Bu betiği daha önce çalıştırmışsanız, muhtemelen hemen çalışmayacak ve notepad.original.exe dosyasını% SystemRoot% ve% SystemRoot% \ System32'dan silmeniz gerekecek:

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

Bunu yönetici modunda da çalıştırmanız gerektiğini unutmayın, bu nedenle yukarıdaki satırları bir dosyaya kopyalayın ve yukarıdaki orijinal toplu iş dosyasındakilerle aynı talimatları izleyin.


Yönetici modunda çalıştırdım. Orijinal dosyaların silinmesi nasıl yardımcı olur?
Jez

Önce yönetici olmayan modda denedim ve başarısız oldu, ancak .original dosyalar oluşturdum. Yönetici modunda çalışırken daha sonra işe yaramadı çünkü .original dosyalar zaten vardı. Ama onları silmiş olur olmaz - senaryo işe yaradı. Neden sizin için işe yaramadığını bilmiyorum - Ben de Win7 64-bit kullanıyorum.
Sergiy Belozorov

0

Sen yazdın:

Bu komut dosyası, notepad.exe'yi Editpad yürütülebilir dosyasıyla değiştirdi, ancak   şimdi bir metin dosyasını açmaya çalışırsam hata mesajı alıyorum "   NOTEPAD.EXE zarar görmüş görünüyor. Lütfen yeniden kurmayı deneyin   Orijinal kurulum paketinden. "

notepad.exe bir Windows korumalı dosya bu yüzden yerini değiştirmek biraz zor ...

İşte bir Manuel gelen çözüm Geek nasıl yapılır Web sitesi: Windows 7'de Not Defteri Nasıl Değiştirilir

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

Başka bir seçenek Sysinternals komut satırı yardımcı programını kullanmak olabilir. PsExec toplu iş dosyanızda aşağıdaki anahtarlarla

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

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

Umarım bu yardım. Bilmemize izin ver.


HowTo Geek web sitesine gelince, maalesef Windows 7 aptalca sistem32 dizininde çalıştırılabilir dosyaları çalıştırıyor, ki bu da "yayıncı doğrulanamadı". Sistem32 dizininde çalıştırmayı denerseniz, "NOTEPAD.EXE kopyanızı zarar görmüş görünüyor ..." hatası alıyorum.
Jez

Bu makaleyi kontrol edin: Windows: “Yayıncı Doğrulanamadı” İletilerini Devre Dışı Bırak technipages.com/... Bu sizin için bir çözüm mü? Umarım! :)
climenole

@Jez Btw biri, bu HowToGeek makalesine yorum yaptı. "EditPad'i yıllardır kullanıyorum ve Windows Not Defteri'ni hiçbir sıkıntı yaşamadan değiştirmek üzere ayarlanabilir - sadece yapılandırma menüsünde bir seçeneği işaretleyerek." Konfigürasyon menüsünde böyle bir seçeneği kontrol ettiniz mi?
ADTC
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.