Co to jest Up!?!
Witaj. Uwielbiam, gdy ktoś mówi;
„[...] jak to debugować?”
Tak naprawdę nie mam instalacji systemu Windows 8 i nie grałem też z instalacją systemu Windows 8, więc założę, że istnieją pewne podstawowe podobieństwa do jego poprzedników. Spróbuję przywoływać założenia, gdy je podejmuję.
Wzywając strzały
Domyślam się, na podstawie twojego opisu problemu, że system nie rejestruje odpowiednich wpisów w rejestrze, więc kiedy uruchomisz „otwórz” po poprzedniej czynności „otwórz za pomocą ...” zobaczysz aplikację, którą wybrany ostatni raz.
Przeprowadzę cię przez twój problem i udowodnię lub obalę początkowe przypuszczenia. Jeśli nie potrzebujesz całej mojej szczegółowości poniżej, możesz przeskoczyć / zeskanować do sekcji Rozpoznanie, w której zaczynamy próbować odkryć problem.
Szybkie poprawki
Zanim przejdziemy do bardziej zaangażowanych kroków opisanych poniżej, powinieneś najpierw sprawdzić interfejs programów domyślnych w Panelu sterowania . Możesz uzyskać podobny efekt, przechodząc przez menu „otwórz za pomocą ...”, ale już powiedziałeś, że to nie działało. ** Upewnij się, że ustawiono pole wyboru wskazujące, aby zapamiętać ustawienie jako aplikację domyślną dla dowolnej wybranej aplikacji.
W interfejsie programów domyślnych w Panelu sterowania mogą być dostępne opcje „resetu ustawień domyślnych” lub przywrócenia poprzedniej wersji. Możesz rozważyć te różne opcje, aby sprawdzić, czy rozwiążą Twój problem. Zrób to najpierw, ponieważ będą to najłatwiejsze poprawki. Jeśli nie działają, przejdź do poniższych opcji.
Założenia
Są to założenia, które przewiduję. Jeśli któryś z nich jest daleko od bazy, daj mi znać, a jeśli będę musiał, poświęcę czas na skonfigurowanie instalacji systemu Windows 8.
Rejestr
Wydaje mi się, że największym założeniem jest to, że system operacyjny nadal korzysta z rejestru, a w miejscach, w których podaję przykłady, zakładam, że układ / struktura katalogu rejestru w systemie Windows 8 jest podobny do swoich poprzedników.
Cmd.exe
Osobiście często wolę wiersz polecenia, więc prawdopodobnie opiszę kroki w kontekście sesji terminalowej. Zakładam, że Windows 8 nadal ma cmd.exe ; Byłbym naprawdę zaskoczony, gdyby tak nie było.
Edytor rejestru
Jeśli istnieje rejestr, prawdopodobnie istnieje narzędzie do przeglądania / edycji rejestru. Zakładam, że nazwa GUI i narzędzi wiersza poleceń są takie same, jak w poprzednich wersjach.
Uprawnienia użytkownika
Zakładam, że sposoby wywoływania powłoki z podwyższonymi uprawnieniami są wystarczająco podobne do poprzedników systemu operacyjnego, że będziesz wiedział, co robić. Jeśli jestem tu poza bazą, po prostu poproś mnie o wyjaśnienie, a zrobię, co mogę.
SysInternals Suite
Byłbym bardzo rozczarowany, gdyby nie były one dostępne w systemie Windows 8. Nie mogę uwierzyć, że nie byłyby one dostępne, ponieważ są tak fundamentalne dla cykli programowania / kontroli jakości , przez które przechodzą Microsoft i zewnętrzni programiści.
WinDbg.exe, DDK i SDK
Zakładam, że jeszcze ich nie masz. W porządku. Prawdopodobnie możemy rozwiązać ten problem bez konieczności użycia tych ciężkich narzędzi. Najpierw przejdź do sekcji Recon, a jeśli potrzebujesz (lub po prostu chcesz) zejść głębiej, porozmawiaj o tych narzędziach.
zwiad
Zawsze staraj się wykonać swoje zadanie w możliwie najprostszy sposób. Zaczynając od debugera systemu Windows byłoby przesadą dla punktu początkowego, a nieco trudniej byłoby znaleźć odpowiedni fragment / sekwencję zdarzeń.
Jeśli jeszcze nie pobrałeś i nie zainstalowałeś pakietu SysInternals , powinieneś to zrobić teraz. Przynajmniej będziesz potrzebować Process Explorer i Process Monitora do pierwszych prób wykrycia, co się dzieje. Oba te narzędzia są częścią pakietu, który można pobrać jako plik * .zip, ale jeśli masz słabe połączenie sieciowe, możesz pobrać te dwa narzędzia osobno, aby zrobić to szybciej.
Rozpakuj pakiet / narzędzia w odpowiednie miejsce w twoim systemie (głównie twoje osobiste preferencje). Jeśli używasz domyślnego narzędzia do rozpakowywania systemu Windows, będziesz chciał usunąć plik strefy przed rozpakowaniem archiwum. Plik strefy to sposób, w jaki system operacyjny wie, że „ten plik został pobrany z Internetu [...] uruchamiany na własne ryzyko [...] odznacz pole [...]”. Jestem pewien, że widziałeś wcześniej wiadomość podobną do tej w wyskakującym okienku. Zazwyczaj w lewym dolnym rogu wyskakującego okienka zwykle znajduje się małe pole wyboru, które zapamięta Twoją decyzję, jeśli zmienisz ją raz.
Innym sposobem zobaczenia tego pola wyboru jest kliknięcie prawym przyciskiem myszy -> Właściwości pobranego pliku. Pole wyboru powinno znajdować się na dole karty Ogólne . Jednokrotne przełączenie tego pola wyboru usunie plik strefy z pliku binarnego (na marginesie, plik strefy jest przechowywany w alternatywnym strumieniu danych danego pliku binarnego - ale to kolejna dyskusja. Na razie skorzystaj z wyskakujących okien lub interfejsy właściwości plików do manipulowania plikami strefy .
Pamiętaj, aby usunąć plik strefy z archiwum * .zip przed rozpakowaniem go za pomocą domyślnego narzędzia zip systemu Windows. Jeśli nie usuniesz go z pliku * .zip, narzędzie ZIP oznaczy każdy rozpakowany plik plikiem strefy, a wtedy pojawi się wyskakujące okienko dla każdego pliku binarnego uruchamianego w pakiecie.
Istnieją dwa narzędzia, od których zaczniemy: * Process Explorer (procexp.exe) * Monitor procesu (procmon.exe)
Możesz odwołać się do odpowiedniego pliku * .chm, jeśli chcesz dowiedzieć się więcej na ich temat. Zaczniemy od Process Explorer i jeśli nie będziemy w stanie szybko wykryć problemu, przejdziemy do Monitora procesów (który jest nieco bardziej zaangażowany w uruchomienie), a jeśli nadal nie będziemy w stanie rozwiązać problemu, porozmawiamy o wyciągnięciu wielkich pistoletów. Faktem jest jednak, że często znajduję to, co muszę wiedzieć w fazie ponownego rozpoznawania i nie muszę uruchamiać debugera.
Tło i zrozumienie
Rejestr to miejsce, w którym system przechowuje mapowania dotyczące rozszerzeń plików do aplikacji, które wiedzą, jak je obsługiwać. Na przykład można użyć narzędzi wiersza polecenia ftype i assoc do przeglądania / manipulowania mapowaniami rozszerzeń aplikacji.
Aby zobaczyć typ pliku powiązany z rozszerzeniem „.txt”, wykonaj następujące polecenie z terminala.
$> assoc .txt
.txt=txtfile
Oznacza to, że rozszerzenie pliku .txt jest przypisane do klasy typów plików txtfile . Następnie, aby zobaczyć aplikację powiązaną z klasą txtfile , uruchom polecenie
$> ftype txtfile
txtfile=%SystemRoot%\system32\notepad.exe %1
Te narzędzia po prostu czytają ustawienia rejestru dla systemu. Możesz wyświetlić je samodzielnie za pomocą narzędzia takiego jak reg.exe, które uruchomisz z terminala lub większość ludzi woli edytor rejestru GUI regedit.exe . W tej lokalizacji zobaczysz niektóre rozszerzenia, klasy typów plików i powiązania aplikacji, które po prostu poszukasz w gałęzi HKEY_CLASSES_ROOT. Bezpośrednio pod tym gałęzią powinieneś znaleźć klucz zarówno do „.txt”, jak i „txtfile” i oczywiście o wiele więcej.
Oto kilka przykładów użycia narzędzi assoc i ftype .
Upewnij się, że karmisz rozszerzenia assoc . Myślę, że już o tym wiesz, ale dla jasności rozszerzenia to „kropka, po której następują 3 lub 4 znaki” kończące nazwę pliku. Na przykład application.exe , document.txt lub presentaion.ppt. Narzędzie assoc oczekuje, że podasz „.” oraz 3/4 znaków jako parametr.
$> assoc .exe
.exe=exefile
$> assoc .txt
.txt=txtfile
Oddzielne i inne niż rozszerzenie pliku jest typ pliku . Wiele rozszerzeń plików można zgrupować w jeden typ pliku . Zastanów się, jak „.html” i „.htm” mapują na ten sam typ pliku; to znaczy „plik html”. Poniższy przykład próbuje dalej wykazać ten punkt.
$> assoc .html
.exe=htmlfile
$> assoc .htm
.txt=htmlfile
$> ftype htmlfile
htmlfile="C:\Program Files (x86)\Internet Explorer\iexplorer.exe" -nohome
Ponadto zauważ, że rejestr zawiera następujące klucze w gałęzi HKEY_CLASSES_ROOT.
- HKCR.html
- HKCR.htm
- HKCR \ htmlfile
Jeśli istnieje wygodny sposób na przesłanie / załączenie / udostępnienie pliku txt, uruchom następujące polecenia, a ja przyjrzę się wynikom, które utworzyły.
$> cd \somewhere\easy\for\you\to\find\
$> assoc > extension_associations.txt
$> ftype > filetype_handlers.txt
Powinieneś być teraz w stanie otworzyć foldery, w których zapisałeś te pliki i udostępnić je. Następujące polecenia powinny również otworzyć pliki (jeśli wydaje się, że można znaleźć utworzone pliki).
$> notepad \somewhere\easy\for\you\to\find\extension_associations.txt
$> notepad \somewhere\easy\for\you\to\find\filetype_handlers.txt
Jeśli nie możesz udostępnić mi całych plików * .txt, przynajmniej uruchom te dwa polecenia i po prostu umieść ich wyniki w komentarzach.
$> assoc .txt
.txt=textfile
$> ftype textfile
textfile="C:\Program Files (x86)\Notepad++\notepad++.exe" "%1"
Jeśli nic tam nie widzisz , powinieneś zacząć od ustawienia tego na coś. Upewnij się, że masz podwyższone uprawnienia (czyli uprawnienia administratora) podczas wprowadzania tych zmian, w przeciwnym razie prawdopodobnie nie będą działać zgodnie z oczekiwaniami.
Process Explorer
DO ZROBIENIA w razie potrzeby
Monitor procesu
DO ZROBIENIA w razie potrzeby
Instalowanie środowisk debugowania systemu Windows