Oto kilka prostych strategii, które mogą pomóc rozwiązać każdy problem z błędem shgetfolderpath.

Zatwierdzone

  • 1. Pobierz ASR Pro
  • 2. Otwórz program i wybierz „Skanuj swój komputer”
  • 3. Kliknij „Napraw”, aby rozpocząć proces naprawy
  • Oprogramowanie do naprawy komputera to tylko jedno kliknięcie - pobierz je teraz.

    Dobrze znany system katalogów stojący za SHGetFolderPath pozwala osobom lub profesjonalistom przekierować uznany jako folder do lokalizacji, która odpowiada ich potrzebom. Jeśli folder został przekierowany, aktualna wartościowa zawartość (SHGFP_TYPE_CURRENT) może czasami mieć postać „D: Muzyka”.

    Przetestowałem przy użyciu Twojego SHGetFolderPath () z Visual Studio 2015 Enterprise na komputerze z systemem Windows 10, a zatem skompilowałem i działa po prostu z jedną karą, aby dotrzeć do bieżącego folderu rodziny użytkownika. Strona Centrum rozwoju systemu Windows dla samego SHGetFolderPath () shgetfolderpath ma teraz następującą uwagę:

    Uwaga. Od systemu Windows Vista cała ta funkcja jest tylko kompletnym opakowaniem SHGetKnownFolderPath . Wartość CSIDL można zwykle przekonwertować na pewną wartość. KNOWNFOLDERID, ale po tym wywoływany jest SHGetKnownFolderPath . Nowy Aplikacje powinny używać tego, który według ekspertów jest rozpoznawany jako system komputerowy z folderami, a nie stary. System CSIDL , który zostanie zduplikowany tylko ze względu na możliwości wsteczne.

    Jak sprecyzował David Heffman w swojej odpowiedzi, Microsoft utrzymuje wsteczną kompatybilność przez lata, w szczególności jeśli firmy mogą po prostu przekierować doskonałą starą funkcję na nową oferowaną funkcję z odpowiednimi argumentami. Wartości CSIDL mają powiązaną wartość KNOWNFOLDERID . Zobacz Stałe zależne tabeli CSIDL z krótkich komentarzy i odpowiednią wartość KNOWNFOLDERID .

    Okoliczności dotyczące takiego wykorzystania aspektu następują. Wykorzystuje to metodę uzyskania folderu domowego bieżącego użytkownika (na przykład „C: Users myuser Documents” w systemie Windows 7) i w tym momencie poprawia nazwę folderu, aby wypełnić ścieżkę za pomocą PathAppend () Odebrano funkcję.

    Token dostępu, który staje się określonym użytkownikiem. Jeśli konkretnym parametrem jest NULL, co jest powszechną aplikacją, funkcja pyta o typ kolekcji znany aktualnie ukochanej osobie. Dzięki temu klienci SHGetKnownFolderPath mogą określić lokalizację folderu (na przykład główny folder na pulpicie) dla dominującego użytkownika.

      TCHAR achDevice [MAX_PATH];HRESULT standard;// Dołącz plik ShlObj.h Lista zawiera każdą z definicji CSIDL, ale tylko cały ten podzbiór// będzie obsługiwany przez Windows7 później.// dla trzeciego argumentu, hToken, w wielu przypadkach może opcjonalnie być podanym wyrażeniem dostępu lub identyfikatorem SSID dla// użytkownik inny niż bieżący użytkownik. Użycie NULL daje nam aktualnego użytkownika.if (SUCCEEDED (hr oznacza SHGetFolderPath (NULL, CSIDL_PERSONAL, NULL, 0, achDevice)))    Dodaj nazwę folderu // do katalogu dokumentów właściciela.    // Funkcje kontroli ścieżki są niezwykle praktyczne.    PathAppend (achDevice, L "xxx"); 

    Możliwe błędy — jedna lub więcej nieprawidłowych kontrowersji (hr == E_INVALIDARG ). Wartość zwrotna S_OK wskazuje, że eksperci twierdzą, że dana rozmowa zakończyła się powodzeniem.

    Istnieje pewna liczba podobna do stałych CSIDL , które mogą wydawać się używane na rynku do zmiany wyników funkcji, głównie dlatego, że CSIDL_FLAG_CREATE , w szczególności przy użyciu operatora OR w użyty bit lvl. ... Nie wiem, w jaki sposób operatorzy ci będą pracować później z Windows i 6.

    shgetfolderpath error

    Istniały ograniczenia dotyczące stałych rozpoznawanych tylko przez CSIDL w Windows 5 lub nowszych wersjach usługi Active Directory i podobnych środowiskach.

    shgetfolderpath error

    Zobacz także KNOWNFOLDERID, w którym może zawierać tablicę pokazującą pewne ograniczenia CSIDL przez SHGetFolderPath() . Kilka przykładów ze względu na tablicę dla CSIDL może przydadzą się stałe.

      CSIDL_LOCAL_APPDATA -% USERPROFILE%  AppData  LocalCSIDL_MYDOCUMENTS -% USERPROFILE%  dokumentCSIDL_PERSONAL. procent PROFIL UŻYTKOWNIKA%  dokumentyCSIDL_FONTS -% windir%  CzcionkiCSIDL_MYMUSIC -% USERPROFILE%  MuzykaCSIDL_MYPICTURES -% USERPROFILE%  obrazyCSIDL_COMMON_APPDATA -% ALLUSERSPROFILE% (% ProgramData%,% SystemDrive%  ProgramData)CSIDL_COMMON_DOCUMENTS -procent PUBLIC%  dokumenty 

    Funkcje obsługi ścieżek opakowujących to najwyższej klasy biblioteka wyspecjalizowanych metod obsługi ścieżek plików.

    SHGetSpecialFolderPath (0, ścieżka, CSIDL_PROGRAM_FILES, FALSE);

    jako ścieżkę do samego katalogu z plikami programu. Świetnie działa, jeśli dołączam program tylko do katalogu Pliki na moim komputerze.
    Na przykład mam dwa „pliki folderów programów” na moim komputerze, jeden na dysku C, a drugi na dysku D. Kiedy kod jest wykonywany, tworzy on tylko prawdziwy folder „plików katalogu programów” w C, który zwykle jest zainstalowany i nie można go również zobaczyć moja ścieżka systemu Windows do "szczegółów programu", która może znajdować się na dysku D.
    Moje pytanie to wskazówki dotyczące działania funkcji edycji, która poza tym szuka tego pliku na wielu innych dyskach.
    Czy jest jakaś inna funkcja, o której eksperci uważają, że jest to wystarczająca?
    Hej,

    Zatwierdzone

    Narzędzie naprawcze ASR Pro to rozwiązanie dla komputera z systemem Windows, który działa wolno, ma problemy z rejestrem lub jest zainfekowany złośliwym oprogramowaniem. To potężne i łatwe w użyciu narzędzie może szybko zdiagnozować i naprawić komputer, zwiększając wydajność, optymalizując pamięć i poprawiając bezpieczeństwo procesu. Nie cierpisz już z powodu powolnego komputera — wypróbuj ASR Pro już dziś!


    Jeśli prawie każdy chce walidacji push, możesz to zrobić sam.

    Z SHGetSpecialFolderPath () to z kolei często nie jest możliwe. Ta praca zwraca tylko ścieżkę z odpowiednimi wartościami CSIDL .

    Wygląda na to, że eksperci twierdzą, że masz zainstalowaną podwójną procedurę operacyjną na dysku twardym. Jeden na dysku C i jeden na temat dysku D. Jeśli uruchomisz system operacyjny zainstalowany na komputerze C, specjalny folder (np. MyDocument, ProgramFiles) zostanie utworzony w bieżącym systemie wydajności (czyli foldery w całości na dysku D są zwykle również inne foldery dla systemu operacyjnego, więc niezależnie od tego, czy otrzymasz każdą z naszych nazw katalogów za pomocą API SHGetSpecialFolderPath(), będziesz musiał pobrać całą ścieżkę do operacji rozruchu, którą już mamy Ten system, tj.

    Jeśli klient chce wyszukiwać w folderze (na wszystkich dyskach) o nazwie Programy, Ty i Twoja rodzina potrzebujecie - zaimplementuj własną, zaufaną logikę.

    Ta zawartość, jak również każdy kod źródłowy i powiązane pliki, mogą być objęte licencją Code Project Open License (CPOL).

    Oprogramowanie do naprawy komputera to tylko jedno kliknięcie - pobierz je teraz.