Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизРасширения файлов Найти похожие ветки
← →
Handle © (2006-08-24 10:11) [0]Подскажите пожалуйста как получить все расширения файлов в системе не ассоциированных ни с одним приложением?
← →
clickmaker © (2006-08-24 10:15) [1]HKKEY_CLASSES_ROOT
.xxx -> (Default) -> .XXXFile, у которых нет Shell -> Open -> Command
← →
Handle © (2006-08-24 10:24) [2]
> clickmaker © (24.08.06 10:15) [1]
Как же всё это дело обработать и вывести например в TStringList
← →
Ketmar © (2006-08-24 10:27) [3]ого. учитывая максимальную длину имени файла, это ОЧЕНЬ дофига получится. а если вспомнить, что в unicode имя и побольше может быть... однако, памяти не хватит всё это хранить.
← →
StriderMan © (2006-08-24 10:36) [4]имеется ввиду существующих на дисках или вообще?
если первое, то нужно бегать по всем дискам (FindFirst, FindNext, FindClose) и для каждого файла искать запись в [1] (TRegistry).
Если второе, то [3], смысла не вижу перебирать всевозможные варианты расширений, на это не хватит многих лет, не считая отладку :)
← →
Handle © (2006-08-24 10:41) [5]Проблема собственно вот в чём:
Делаю такif ShellExecute(0, 0, PChar("filename"), nil, nil, SW_SHOWNORMAL) = 0 then
begin
ShellExecute(Application.Handle, "open", PChar("rundll32.exe"),
PChar("shell32.dll,OpenAs_RunDLL " + PChar("filename"), nil, SW_SHOWNORMAL)
Если расрирение файла типа DLL, RES и т.д. то должен появится диалог типа Open With... , но ничего.
← →
clickmaker © (2006-08-24 10:55) [6]
Res := ShellExecute(Application.Handle, "open", PChar(Path), nil, nil, SW_SHOWNORMAL);
if (Res = SE_ERR_NOASSOC) or (Res = SE_ERR_ASSOCINCOMPLETE) then begin
Path := "shell32.dll,OpenAs_RunDLL " + Path;
ShellExecute(Application.Handle, "open", "Rundll32.exe", PChar(Path),nil,SW_SHOWNORMAL);
end;
← →
Handle © (2006-08-24 11:21) [7]
> clickmaker © (24.08.06 10:55) [6]
Спасибо большое.
Делаю такvar
Res: integer;
Path: array[0..MAX_PATH] of Char;
begin
Path:= "C:\WINDOWS\system32\notepad.exe" ;
Res := ShellExecute(Application.Handle, "open", Path, nil, nil, SW_SHOWNORMAL);
if (Res = SE_ERR_NOASSOC) or (Res = SE_ERR_ASSOCINCOMPLETE) then begin
ShellExecute(Application.Handle, "open", PChar("rundll32.exe"),
PChar("shell32.dll,OpenAs_RunDLL " + Path) , nil, SW_SHOWNORMAL);
end;
То есть если у файла нет "хозяина" то запускается диалог Open With...
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.045 c