Mam program, który otwiera się z określonym skrótem, ale wydaje się, że skrót przesyła parametry do aplikacji. Jeśli przejdę bezpośrednio do katalogu docelowego i kliknę dwukrotnie, to nie zadziała. Jeśli jednak użyję wiersza polecenia i przekażę określony argument, aplikacja otworzy się poprawnie.
Chcę otworzyć niektóre typy plików za pomocą aplikacji, ale aplikacja musi mieć parametry, w przeciwnym razie nie będzie działać. Czy można to zrobić?
Odpowiedzi:
Natknąłem się na ten sam problem co @jtpereyda i rozwiązanie z @bobbymcr też nie działało dla mnie. Próbowałem przekazać wszystkie parametry wiersza polecenia do skryptów node.js bez potrzeby używania node.exe w poleceniu.
Problem polega na tym, że jeśli już skojarzyłeś program z rozszerzeniem za pośrednictwem
Open With
okna dialogowego, utworzysz powiązanie aplikacji zamiast powiązania rozszerzenia pliku między nimi. A skojarzenia aplikacji mają pierwszeństwo.Jeśli nie masz nic przeciwko edycji rejestru, możesz zmodyfikować
(Default)
klucz w następującej ścieżce:HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command
Należy zastąpić
node.exe
dostosowywaną aplikacją.Lub możesz po prostu
HKEY_CLASSES_ROOT\Applications
całkowicie usunąć folder aplikacji z folderu, a twojeftype
stowarzyszenie zacznie działać.Pamiętaj, aby użyć parametru,
%*
który przekaże pozostałe nieokreślone argumenty wiersza poleceń lub w ogóle nic. Jeśli to zrobisz"%2" "%3" "%4" "%5"
, otrzymasz 5 pustych parametrów ciągu przekazywanych do aplikacji, gdy nie podasz żadnych argumentów wiersza poleceń.Wreszcie, jeśli nie jesteś w porządku ręcznie modyfikować rejestr, możesz użyć darmowego narzędzia Nirsoft - FileTypesManager - http://www.nirsoft.net/utils/file_types_manager.html
Powiązania plików pojawią się na górze listy, bez tekstu w pierwszej kolumnie rozszerzenia. Po prostu znajdź nazwę pliku wykonywalnego na liście i wybierz ją, aby zmodyfikować
command line
pole dlaopen
nazwy akcji.W Windows7 zmiany zostały odzwierciedlone natychmiast, bez ponownego uruchamiania lub ponownego uruchamiania aplikacji. Jednak narzędzie Nirsoft ma funkcję „Odśwież pulpit” przy każdej modyfikacji, więc wierzę, że może Vista lub wcześniejsze wersje OS buforowałyby dane. W takim przypadku narzędzie byłoby lepszym rozwiązaniem, w przeciwnym razie może być konieczne wylogowanie się i zalogowanie, aby zobaczyć zmiany.
źródło
"C:\Program Files\nodejs\node.exe" "%1"%*
UWAGA:%*
wartość NIE jest w cudzysłowach i nie ma spacji między nią a poprzednim podwójnym cudzysłowem.HKEY_CLASSES_ROOT\.ulaw
w regedit na wypadek, gdyby.ulaw
rozszerzenie plików, dla których robiłem procedurę.HKEY_CLASSES_ROOT
artykułu. Jest to zrozumiałe nieporozumienie, biorąc pod uwagę, że duża część własnej dokumentacji Microsoftu poprzedza scalony widok HKCR, który został wprowadzony około Windows 2000.Możesz to zrobić za pomocą
assoc
iftype
w wierszu polecenia. Otwórz wiersz polecenia z podwyższonym poziomem uprawnień i spróbuj wykonać następujące czynności:Spowoduje to powiązanie
.xyz
rozszerzeniaMyProgram.exe
i przekazanie wiersza polecenia/arg1 /arg2 [filename.xyz]
do programu, aby go uruchomić.źródło
.ulaw
plik przysox
użyciu predefiniowanych argumentów. Zauważ, że oprócz usunięcia starej aplikacji usunąłem również,HKEY_CLASSES_ROOT\.ulaw
który definiował typ pliku.assoc
iftype
są starszymi poleceniami. Nie zostały zaktualizowane w celu rozszerzenia rozszerzeń skojarzeń plików dodanych w Windows XP, 7 i 8. Zmieniają tylko powiązanie plików i klucze ProgId pod kluczem systemowym „HKLM \ Software \ Classes”. Nie odczytują ani nie modyfikują ustawień HKCU dla poszczególnych użytkowników, które mają pierwszeństwo, ani nowszych podkluczy, takich jak „Aplikacje” i „SystemFileAssociations”, ani kluczy funkcji dla poszczególnych aplikacji z „Zarejestrowanych aplikacji”. Nie czytają też ani nie modyfikują wyboru użytkownika pod „HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts”.Osoba zadająca pytanie zgłasza, że najlepsza odpowiedź nie działa.
Wymyśliłem to dla XP, które mogą dotyczyć późniejszego systemu operacyjnego.
Po poleceniu cmd potrzebujesz dwóch poleceń:
assoc
,ftype
.Te dwa mogą pokazać, co jest powiązane, a następnie edytować powiązanie, ale jest pewien zwrot, instrukcje MS wydają się być nieprawidłowe / niekompletne. Zostałem o tym powiadomiony, zauważając nieudokumentowany styl skojarzenia przez znane weterani, dlaczego?
Ten przykład umożliwia przekazanie wielu argumentów do programu stowarzyszonego.
To nie jest literówka
"%1" "%*"
. Gwiazda procentowa nie będzie działać bez poprzedzającego procentu 1 .I to działa natychmiast, bez konieczności wylogowania itp.
Zrobione w prawo przejdzie 3 do arg []
Nie zrobiłem tego, ale wygląda na to, że poniższe cytaty zewnętrzne przejdą -m, jeśli program potrzebuje flagi.
źródło
%1 %*
bez cudzysłowów !!! cholerne oknaMiałem podobny problem ze starszą wersją PSP z Windows7
To rozwiązanie (zmiana wiersza polecenia shell \ open \ w Rejestrze) działało, ALE musiało mieć składnię „C: \ MyFolderName \ PSP.EXE”% 1 NO QUOTES AROUND% 1, w przeciwnym razie interpretuje się to jako stałą
źródło
Nie najlepszym rozwiązaniem, ale najłatwiejszym jest użycie pliku wsadowego.
Utwórz taki plik nietoperza i ustaw dla niego domyślny program dla rozszerzenia pliku. I tak, pusty cytat po uruchomieniu jest konieczny:
{nazwa aplikacji} .bat
Przykład:
BCompareEdit.bat
źródło
Oto rozszerzenie, które wydaje się robić dokładnie to, co chcesz. Nigdy wcześniej go nie używałem, ale wydaje się, że dostaje dobre recenzje. zostaw komentarz, jeśli występują problemy.
źródło
Utwórz skrót do systemu Windows i użyj następującego szablonu:
źródło
xyz.jpg
?