Problem z dostępem do plików w katalogu C:\Windows\System32\OEM

0

I pojawił się kolejny problem. Nie mogę w żaden sposób dostać się z poziomu programu do plików znajdujących się w katalogu c:\Windows\System32\OEM. Co ciekawsze kontrolka OpenDialog nawet nie wyświetla tego katalogu. Katalog nie jest ukryty. Sprawdzałem na Windows 7 i Windows 10.

Przykładowo uruchomienie poniższego kodu Kod przy uruchomienia wyrzuca błąd otwarcia pliku OEM_System.bmp.

ImageLogo.Picture.LoadFromFile(Reg.ReadString('c:\windows\system32\OEM\Logo\OEM_System.bmp'));

FileExists zwraca wartość false.

FileExists('c:\windows\system32\OEM\Logo\OEM_System.bmp') 

Uruchomienie skompilowanego pliku jako administrator nic nie zmienia.

0

Uruchamiasz aplikację jako administrator? Zapewne katalog jest zabezpieczony.

0

jaka wersja windowsa? BTW win 8.1 i 10 nie mają takiego katalogu (przynajmniej te moje)

0

@Patryk27:
Tak jak napisałem uruchomienie pliku jak Administrator nic nie zmienia. Ustawienie Poziomu Wykonywania na requireAdministrator w opcjach projektu też nie pomaga.

@abrakadaber
Windows 10 Pro 64bit, Win7 HP 64bit, Win 10 Home 64 bit.

2

pokaż screena z exploratora, na którym masz ten katalog

jak masz win 64bit to programy 32bit widzą tak naprawdę katalog syswow64 pod ścieżką system32
https://support.microsoft.com/pl-pl/help/942589/a-32-bit-application-cannot-access-the-system32-folder-on-a-computer-that-is-running-a-64-bit-version-of-windows-server-2003-or-of-windows-xp

0

Dwa zrzuty ekranu.

Czyli muszę skompilować projekt w Lazarusie 64btt aby rozwiązać ten problem?

3

tylko aplikacje 64bit mają dostęp do tego katalogu na 64bit systemie. Możesz napisać małą aplikację 64bit, która przekopiuje Ci ten na systemie 64bit ten plik gdzieś do tempa a tam już sobie "zwykła" 32bit aplikacja poradzi. Dla systemu 32bit przekopiuje go sobie do tempa "główna" aplikacja. Jeśli chodzi o odczyt to chyba proces nie musi mieć praw admina. Weź też pod uwagę, że nie jest to standardowy folder windowsa tylko dodany przez producenta laptopa

0

abrakadaber dziękuj za podpowiedź. Kompilacja pod 64bit rozwiązała problem. Temat do zamknięcia.

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