Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.17;
Скачать: CL | DM;

Вниз

Параметры командной строки   Найти похожие ветки 

 
Nemas ©   (2003-02-07 08:30) [0]

Как получить параметры командной строки?

Пример: если открыть 1.txt, то он запустит блокнот.exe(ет в реестре), а блокнот.exe получит парметры командной строки и откроет файл 1.txt


 
alena.svt   (2003-02-07 08:42) [1]

А по понятней можно , а то блокнот с файлом запустили и чего надо то?(Уже запущено и открыто зачем второй раз открывать)


 
Song ©   (2003-02-07 08:51) [2]

ParamStr()


 
Nemas ©   (2003-02-07 10:23) [3]

> alena.svt (07.02.03 08:42)

> А по понятней можно , а то блокнот с файлом запустили и чего надо то?(Уже запущено и открыто зачем второй раз открывать)

Эт я пример привел, допустим есть файл 1.txt, формат файлов txt в реестре зарегестрирован для приложения Notepad.exe и при открытии (dlclick по файлу в винде) любого файла формата *.txt сначало запускается Notepad.exe, он (Notepad.exe) проверяет командную строку и "видит" там имя файла который нуджно открыть и открывает :) Вот я и спрашивал как посмотреть параметры командной строки<

>Song © (07.02.03 08:51)
Спасибо!<





 
Anatoly Podgoretsky ©   (2003-02-07 10:29) [4]

Так в реестре и смотреть для .txt файлов


 
alena.svt   (2003-02-07 10:57) [5]

На функцию, она вернет тебе того кто отвечает за зарегистррированные расширения

{****************GetAssociatedProgram*********************************}
// Узнаем какая программа отвечает за расширения файла
// Пример Caption:=GetAssociatedProgram("TXT");
// Если за расширение никто не отвечает вернет пустую строку
function GetAssociatedProgram(const Ext: String): String;
var
{$IFDEF WIN32}
reg: TRegistry;
s: string;
{$ELSE}
WinIni: TIniFile;
WinIniFileName: array[0..MAX_PATH] of Char;
s: string;
{$ENDIF}
begin
{$IFDEF WIN32}
s := "";
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
if reg.OpenKey("." + ext + "\shell\open\command",
False) <> False then
begin
s := reg.ReadString("");
reg.CloseKey;
end
else
begin
if reg.OpenKey("." + ext,
False) <> False then
begin
s := reg.ReadString("");
reg.CloseKey;
if s <> "" then
begin
if reg.OpenKey(s + "\shell\open\command",
False) <> False then

s := reg.ReadString("");
reg.CloseKey;
end;
end;
end;

if Pos("%", s) > 0 then
Delete(s, Pos("%", s), Length(s));
if ((Length(s) > 0) and
(s[1] = """)) then
Delete(s, 1, 1);
if ((Length(s) > 0) and
(Pos(""", s) > 0)) then
Delete(s, Pos(""", s), Length(s));
while ((Length(s) > 0) and
(s[Length(s)] = #32)) do
Delete(s, Length(s), 1);
{$ELSE}
GetWindowsDirectory(WinIniFileName, SizeOf(WinIniFileName));
StrCat(WinIniFileName, "\win.ini");
WinIni := TIniFile.Create(WinIniFileName);
s := WinIni.ReadString("Extensions",ext,"");
WinIni.Free;

if Pos(" ^", s) > 0 then
Delete(s, Pos(" ^", s), Length(s));
{$ENDIF}
Result := s;
end;



Только что тебе это даст?


 
Nemas ©   (2003-02-07 11:12) [6]

>Anatoly Podgoretsky © (07.02.03 10:29) Так в реестре и смотреть для .txt файлов<
>alena.svt (07.02.03 10:57)
На функцию, она вернет тебе того кто отвечает за зарегистррированные расширения
Только что тебе это даст?<


Мда, за функцию спасибо(в будущем пригодится), я ж вроде все понятно написал, мне нужны были парметры команной строки (теперь уже не нужны, Song ответил на мой вопрос), а реестр с txt я для примеро привел, чтоб было понятно (а получилось как всегда) ;)



Страницы: 1 вся ветка

Текущий архив: 2003.02.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
3-52711
Новичек
2003-02-01 09:58
2003.02.17
Уважаемые мастера, подскажите, пожалуйста...


1-52920
Борис
2003-02-08 20:04
2003.02.17
Подстановка вместо спецслов значени. Help!


1-52982
Cherepovets
2003-02-10 12:06
2003.02.17
Преобразование из TXT в DB или в DBF


1-52937
Pasechnik
2003-02-08 17:22
2003.02.17
Enabled=true в чужом приложение


14-53177
Сергей
2003-02-02 20:19
2003.02.17
Очень рекомендую...