Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 10:57   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию проверка расширения

Нужно проверять ,что расширение .txt ассоциированно именно с моей программой,вот только как не пойму,пробовал так,
не получается

Код:
reg.OpenKey('.rtf',false);
  form1.chek.Checked := reg.ValueExists('Proga');
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 20.02.2011, 11:48   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

а вот и проверка
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 buffer: array[0..255] of Char;
begin
 if  Not (FindExecutable('C:\myText.txt', Nil, buffer) In [0, 31,
    ERROR_FILE_NOT_FOUND, ERROR_PATH_NOT_FOUND, ERROR_BAD_FORMAT]) then
   Edit1.Text:= buffer else
   Edit1.Text:= 'Файл не ассоциирован или не найден или см. справку по FindExecutable';
end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 20.02.2011, 12:33   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

спасибо! попробую

Но это че получается,если моя программа будет ассоциироваться с 10 расширениями,
то мне вместе с программой таскать файлы с такими расширениями что бы проверять?
За частые поиски был забанен во всех известных
поисковых системах!

Последний раз редактировалось Stilet; 20.02.2011 в 13:15.
Михаил Юрьевич вне форума Ответить с цитированием
Старый 20.02.2011, 12:46   #4
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

зачем???
зделаи поиск по расшырению, и используи первыи попавшиися фаил которыи тебе подходит

или так
Код:
function TForm1.ExeForExt(Ext: String): String;
var r: TRegistry;
begin
  r := TRegistry.Create(KEY_READ);
  try
    r.RootKey := HKEY_CLASSES_ROOT;
    if not r.KeyExists(Ext) then Exit;
    r.OpenKeyReadOnly('\'+ext);
    Result := r.ReadString('');
    r.CloseKey;
    r.OpenKeyReadOnly('\'+Result+'\Shell\Open\Command');
    Result := r.ReadString('');
  finally
    r.CloseKey;
    r.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := ExeForExt('.txt');
end;
VirusN13

Последний раз редактировалось Stilet; 20.02.2011 в 13:16.
ArtGrek вне форума Ответить с цитированием
Старый 20.02.2011, 12:55   #5
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

спасибо,башка совсем не работает
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 20.02.2011, 15:38   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Подумать.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 21.01.2014, 13:18   #7
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение
зачем???
зделаи поиск по расшырению, и используи первыи попавшиися фаил которыи тебе подходит

или так
Код:
function TForm1.ExeForExt(Ext: String): String;
var r: TRegistry;
begin
  r := TRegistry.Create(KEY_READ);
  try
    r.RootKey := HKEY_CLASSES_ROOT;
    if not r.KeyExists(Ext) then Exit;
    r.OpenKeyReadOnly('\'+ext);
    Result := r.ReadString('');
    r.CloseKey;
    r.OpenKeyReadOnly('\'+Result+'\Shell\Open\Command');
    Result := r.ReadString('');
  finally
    r.CloseKey;
    r.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := ExeForExt('.txt');
end;
а как сделать так, у нас есть имя программы а вытянуть с реестра нужно ассоциируемые файлы?
Konstantin_ua вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP и проверка расширения файла... MaGWaY_minsk PHP 3 26.10.2009 10:23
Проверка расширения файла Михаил Юрьевич Общие вопросы Delphi 6 20.09.2009 22:22
Расширения к Firefox Altera Софт 0 22.11.2008 13:49
XMM расширения Gulya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.12.2007 00:45
Проверка расширения файла Mickle Общие вопросы Delphi 2 04.05.2007 16:41