dlaczego ShellExecute
nie otwiera mi folderów? Pliki otwiera dobrze, ale jak podam ścieżkę bez exeka, to nie chce otworzyć takiego folderu. Folder na 100% istnieje, bo wpisywałem nawet 'c:\'
lub 'd:\'
, wpisywałem też z komendą 'open'
, 'explore'
lub z żadną, czyli nil
Albo coś namieszane w rejestrze Windowsa albo wina ostatniego parametru. Nic raczej innego zdalnie nie wymyślimy. Dla pewności możesz jeszcze pokazać kod, jak wywołujesz.
ShellExecute(handle, nil, 'C:\', nil, nil, SW_SHOW);
i jak zamiast c:\ podam ścieżkę do programu np. c:\programy\ccleaner\ccleaner.exe to ccleanera odpala bez problemu, ale ścieżka z samym c:\ nie odpala niczego
a i jak do Inta zwracam wynik tej funkcji to kod ma numer 8
tu lista błędów jakaś
http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx
czyli to? -> SE_ERR_DDETIMEOUT - The DDE transaction could not be completed because the request timed out.
haha, już wiem w czym problem. Comodo Internet Security blokował programowi coś, widocznie odpalił program domyślnie jako limitowany i pozbawił go tej funkcji do otwierania folderów (choć pliki otwierać mógł). Jakie to śmieszne i bezsensowne!
Zostawcie topic, może kiedyś ktoś kto ma COMODO będzie miał identyczny problem, wtedy sobie zmieni ustawienia w comodo lub doda plik jako zaufany.
ShellExecute(handle, nil, 'C:\', nil, nil, SW_SHOW);
Trochę dziwi mnie fakt, że podajesz ścieżkę katalogu (tutaj: partycji) w argumencie FileName
; To i może działa, jednak znaczenie argumentów trzeba rozumieć i nie wklepywać kodu na ślepo; Dwa parametry dalej masz Directory
, który pasuje do Twojego pytania; Sprawdziłem:
ShellExecute(Handle, nil, nil, nil, 'C:\', SW_SHOWNORMAL);
działa bez problemu; Zobacz u siebie, czy nieszczęsny antywirus też Ci zablokuje, czy może nie.
furious programming napisał(a):
ShellExecute(handle, nil, 'C:\', nil, nil, SW_SHOW);
Trochę dziwi mnie fakt, że podajesz ścieżkę katalogu (tutaj: partycji) w argumencie
FileName
; To i może działa, jednak znaczenie argumentów trzeba rozumieć i nie wklepywać kodu na ślepo; Dwa parametry dalej maszDirectory
, który pasuje do Twojego pytania; Sprawdziłem:
ShellExecute(Handle, nil, nil, nil, 'C:\', SW_SHOWNORMAL);
działa bez problemu; Zobacz u siebie, czy nieszczęsny antywirus też Ci zablokuje, czy może nie.
te też możliwości testowałem zanim temat założyłem i nie działały dosłownie żadne kombinacje, a sprawdzałem z open, explore, nil, ścieżki też podawałem w różnych miejscach i nie tylko samą c:, a dłuższą też i w żadnym przypadku nie działało. Dopiero jak w Comodo dodałem plik jako zaufany to nagle wszystkie miliard sposobów zadziałało więc jedynym winowajcą był Comodo, a nie kod.