Tworzenie pliku .reg dla systemu Windows 7

16

Utworzyłem plik .reg, ale po dwukrotnym kliknięciu nie chcę go importować.

Podany plik nie jest skryptem rejestru. Binarne pliki rejestru można importować tylko z poziomu edytora rejestru.

Oto zawartość pliku .reg

[HKEY_CLASSES_ROOT\Folder\shell\PngCrush]
@=”PNG Crush”

[HKEY_CLASSES-ROOT\Folder\shell\PngCrush\command]
@=”E:\Programs\PNGCrush\crush.bat %1”

Czy ktoś może mi pomóc? Z góry dziękuję

Aximili
źródło

Odpowiedzi:

6

Nie wiem, jak te cytaty znalazły się w tym pliku, ale zakładam, że nie działają (być może skopiowałeś je z bloga Wordpress).

Poza tym myślę, że powinno tak być:

[HKEY_CLASSES_ROOT\Folder\shell\PngCrush]
@="PNG Crush"

[HKEY_CLASSES-ROOT\Folder\shell\PngCrush\command]
@="E:\Programs\PNGCrush\crush.bat %1"
Der Hochstapler
źródło
1
+1 Może być, może zrobił jakiś międzynarodowy wkład, który używa różnych znaków.
Tamara Wijsman,
Nie zauważyłem tego! Masz rację, skopiowałem to z sieci, dziękuję!
Aximili
34

To nie jest poprawna składnia pliku rejestru, brakuje nagłówka.

Dodaj linię z przodu za pomocą: Windows Registry Editor Version 5.00

Sprawdź, czy nie ma niepoprawnych znaków, jeśli plik został zapisany w Unicode, może to być problem.

Tamara Wijsman
źródło
Ale aximili należy upewnić się, że ten plik jest Unicode. REGEDIT4 powinien być używany do plików ansi.
crea7or
1
@ crea7or: Plik nie musi być Unicode dla tego, co próbuje wstawić.
Tamara Wijsman,
3
Ta odpowiedź jest poprawna.
Gras Double
Jak mówi Gras Double, ta odpowiedź jest poprawna.
pdwalker
8

Po prostu zestawiam wszystkie odpowiedzi wraz z dodatkowymi informacjami, które odkryłem.

Nagłówek w pierwszym wierszu: Windows Registry Editor Version 5.00

  • Pusta linia między kluczami ograniczonymi przez „CRLF”
  • nawiasy klamrowe bez spacji
  • wartości w podwójnych cudzysłowach
  • wartości liczb całkowitych / słów szesnastkowych - najwyraźniej małe litery

Przykład

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\MyOrg]

[HKEY_LOCAL_MACHINE\SOFTWARE\MyOrg\MyKey]
"My Value"="Some String"
"My Flag or Integer"=dword:00000001

Dozwolone kodowania również wydają się odpowiadać ciągom API Windows, które są:

  • 8-bitowa stała szerokość: Windows-1252 - prawie taka sama jak ISO-8859-1
  • 16-bitowa stała szerokość: UCS-2LE (mały endian) - w zasadzie taki sam jak UTF-16

Uwaga: gdy edytor tekstu mówi „Unicode” dla kodowania, prawdopodobnie oznacza to UTF-8, który jest kodowaniem o zmiennej szerokości, nie naiwnie kompatybilnym z wewnętrznym systemem Windows.

Uwaga 2 (edytuj): ASCII jest 7-bitowy, a wszystkie znane mi procesory mają moc 2 bitów, więc zawsze będą pakowane w inne nadzbiory ASCII, takie jak 1252. #thingsyoulearnafteruni

Seth
źródło
4

Spójrz na tę stronę, pomogła mi ten problem: „Podany plik nie jest skryptem rejestru” - Jak kodowanie może zepsuć twój poranek

Okazuje się, że kodowanie może zrujnować twój poranek. Patrząc na komunikat, zobaczyłem „… importuj tylko pliki rejestru binarnego z…” i pomyślałem „Dlaczego to coś uważa za binarne?”. Dlaczego w rzeczy samej. Plik otworzyłem ponownie w TextPad i zamiast naciskać Ctrl + S lub Zapisz, wybrałem „Zapisz jako”. W ten sposób zaprezentowałem to menu i podkreśliłem mój problem:

Zgadza się. Beze mnie nic, TextPad miał zapisać ten plik jako Unicode. Regedit spodziewa się uzyskać pliki .reg zakodowane w ANSI. Zmieniłem więc kodowanie na ANSI, zapisałem plik, uruchomiłem go ponownie i wszystko działało dobrze. Przez dobre 20 minut wywołało to u mnie frustrację, więc mam nadzieję, że pomoże to komuś innemu.

Vitumbiko Smith Nkhwazi
źródło
1

Miałem ten sam problem, ponieważ zapisałem go jako UTF-8-BOM. Powinien to być UTF-8 bez BOM (Byte Order Mark). To jest warte zanotowania.

Paweł Walaszek
źródło
0

Możesz także użyć narzędzia REG do manipulowania rejestrem za pomocą wiersza poleceń, jeśli odpowiada to Twoim potrzebom.

Lrosa
źródło