Wątek przeniesiony 2017-11-30 17:36 z Off-Topic przez furious programming.

Dodawanie do rejestru, nazwa pliku.

0

Witam! Zacząłem się bawić dodawaniem wpisów do rejestru. Tutaj jeden z skryptów *.reg

Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\.cpp\ShellNew]
"NullFile"=""
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.cpp\UserChoice]
 
"Progid"="Applications\\notepad++.exe" (tak. notepad++. Nie mam środowiska...)

Ten skrypt dodaje pliki .cpp do menu kontekstowego nowy, i ustawia program domyślny jako notepad++

Tylko jest takie pytanie... Jak zmienić nazwę tego pliku z menu? W sensie... Gdy

wybiera się z menu kontekstowego nowy > to domyślnie jest nazwa C++ Source File, a gdy tworzy się nowy plik to: Nowy C++ Source File. Jak zmienić tą nazwę?

0

Sprawdź w gałęzi HKEY_CLASSES_ROOT – w niej znajduje się klucz .cpp. Domyślna jego wartość to nazwa innego klucza w tej gałęzi – sprawdź co się tam znajduje i znajdź ten klucz. Jak już go znajdziesz to w nim znajduje się nazwa wyświetlana w menu kontekstowym oraz w oknie eksplorera.

Załóżmy, że klucz HKEY_CLASSES_ROOT\.cpp w wartości domyślnej zawiera ciąg CppSourceFile (zmyślam – to przykład). Oznacza to, że w tej samej gałęzi istnieje klucz HKEY_CLASSES_ROOT\CppSourceFile – jego wartość domyślna to interesujący Cię tekst.

Zaznaczam, że moja wiedza na ten temat mogła się przedawnić.


Sam robiłem coś w ten deseń, tyle że dla swoich plików .tsinfo – tak to wygląda:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.tsinfo]
@="TreeStructInfoTextFile"

[HKEY_CLASSES_ROOT\.tsinfo\ShellNew]
"NullFile"="1"

[HKEY_CLASSES_ROOT\TreeStructInfoTextFile]
@="konfiguracja TreeStructInfo"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008

[HKEY_CLASSES_ROOT\TreeStructInfoTextFile\DefaultIcon]
@="E:\\Projekty\\TreeStructInfo\\File Associations\\tsinfo.ico,0"

[HKEY_CLASSES_ROOT\TreeStructInfoTextFile\shell]
@=""

[HKEY_CLASSES_ROOT\TreeStructInfoTextFile\shell\open]

[HKEY_CLASSES_ROOT\TreeStructInfoTextFile\shell\open\command]
@="\"D:\\Programy\\Notepad++\\notepad++.exe\" \"%1\""

Powyższe daje mi możliwość określenia ikony dla plików, tytułu typu pliku dla eksplorera, a także możliwość utworzenia nowego, pustego pliku konfiguracyjnego, z poziomu menu kontekstowego:

tsinfo.png

Podobne rzeczy możesz zrobić ze swoim rozszerzeniem.

0

Okej, znalazłem. U mnie, z racji, że wcześniej korzystałem z Code::Blocks, jest to klucz CodeBlocks.cpp. Ale tak, w DefaultIcon jest ścieżka, jakaś cyfra. Co to oznacza?

0

Ścieżka informuje o pliku, który ową ikonę zawiera – może to być ścieżka pliku .ico, ale też .exe czy .dll. Natomiast numerek oznacza indeks ikony, gdzie 0 najczęściej oznacza główną ikonę .exe. Numerek jest potrzebny tylko w przypadku, gdy wskazany plik posiada w sobie więcej niż jedną ikonę.

Wiecej informacji możesz znaleźć w dokumentacji – How to Assign a Custom Icon to a File Type. System może potrzebować restartu po zmianie takich danych.

0

Coś nie działa. Stworzyłem nowy klucz o nazwie .cppOther. Mam już w nim klucz DefaultIcon którego domyślna wartość to C:\Users\Admin\Pictures\Icons\CppIcon.ico

Jest to ikona 256x256. W tym raczej nie ma problemu, ale jest tak częściowo przezroczysta (niektóre elementy).
Nie wiem w czym może być problem. Ikona w załączniku (w formacie png).
Prosiłbym o pomoc.

0

To nie jest ikona – to grafika PNG. Możesz użyć wyłącznie ikony, czyli pliku z rozszerzeniem .ico, który obsługuje przezroczystość i który w sobie może posiadać kilka(naście) grafik o różnych rozmiarach i głębiach kolorów. Ten plik .ico może się znajdować bezpośrednio na dysku lub zasobach .exe bądź .dll.

Do stworzenia pliku ikony potrzebny jest specjalny program – wybierz sobie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1