|
Вопрос # 707/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста, как при нажатии на кнопку открыть файл любого расширения для просмотра (например, HTML в IE6 или ехе для установки программы)? И как значение переменной типа HKey отобразить в Edit? Спасибо!
 |
Вопрос задал: Евгений Eklmn (статус: Посетитель)
Вопрос отправлен: 6 июля 2007, 14:29
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Николай Рубан
Здравствуйте, Трофимов Евгений!
1) Для запуска приложения используйте функцию:
ShellExecute(Handle,nil,'ФАЙЛ.ЕХЕ','',nil,SW_SHOWNORMAL);
Для запуска файла с которым связано соответствующее программное (обязательно установленное) обеспечение достаточно:
ShellExecute(Handle,nil,'','ФАЙЛ',nil,SW_SHOWNORMAL);
ДЛя работы в проэкте необходимо подключить модуль ShellApi (uses ShellApi).
2) Вот нашел функции которые делают соответсвующие преобразования - смотрите приложение.
Good Luck!!!
Приложение: Переключить в обычный режим- const
- HKEYNames: array[0..6] of string =
- ('HKEY_CLASSES_ROOT', 'HKEY_CURRENT_USER', 'HKEY_LOCAL_MACHINE', 'HKEY_USERS',
- 'HKEY_PERFORMANCE_DATA', 'HKEY_CURRENT_CONFIG', 'HKEY_DYN_DATA');
-
- function HKEYToStr(const Key: HKEY): string;
- begin
- if (key < HKEY_CLASSES_ROOT) or (key > HKEY_CLASSES_ROOT+6) then
- Result := ''
- else
- Result := HKEYNames[key - HKEY_CLASSES_ROOT];
- end;
-
- function StrToHKEY(const KEY: string): HKEY;
- var
- i: Byte;
- begin
- Result := $0;
- for i := Low(HKEYNames) to High(HKEYNames) do
- begin
- if SameText(HKEYNames[i], KEY) then
- Result := HKEY_CLASSES_ROOT + i;
- end;
- end;
 |
Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 6 июля 2007, 20:29
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 7 июля 2007, 22:40; участников в обсуждении: 2.
|
Николай Рубан (статус: 10-ый класс), 6 июля 2007, 20:31 [#1]:
По второму пункту...
Функции можно применить например так:
Edit1.Text:=HKEYToStr(HKEY_LOCAL_MACHINE);
Good Luck!!!
|
|
Евгений Eklmn (статус: Посетитель), 7 июля 2007, 22:28 [#2]:
Как из string получить AnsiChar? Оказывается, что: ShellExecute(Handle,nil,'полный адреc файла':AnsiChar,'ФАЙЛ':string,nil,SW_SHOWNORMAL);
Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. (Роберт Ковзю, Окриджская лаборатория)
|
|
Николай Рубан (статус: 10-ый класс), 7 июля 2007, 22:40 [#3]:
Достаточно воспользоваться таким подходом:
ShellExecute(Handle,nil,PChar('полный адреc файла'),'ФАЙЛ':string,nil,SW_SHOWNORMAL);
Т.е. применяем функцию PChar.
Good Luck!!!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|