Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизПоказ полного пути к файлу! Найти похожие ветки
← →
St74 (2005-12-27 09:09) [0]Привет Всем! С Новым Годом Вас!
Почему при OnShow формы в таком коде, вылазиет не полный путь к файлу а
C:/DOCUME~1/...
...
var
Str: string;
i: Integer;
begin
if (ParamCount > 0) then
begin
Str := ParamStr(1);
for i := 2 to ParamCount do
begin
Str := Str + " " + ParamStr(i);
end;
RxRichEdit2.Lines.LoadFromFile(Str);
EnDeCrupt.Caption := "На данный момент открыт фаил - " + Str;
end;
...
Заранее Благодарю! St74!
← →
begin...end © (2005-12-27 09:17) [1]GetLongPathName
← →
Desdechado © (2005-12-27 11:04) [2]Application.ExeName
← →
begin...end © (2005-12-27 11:24) [3]> Desdechado © (27.12.05 11:04) [2]
А это здесь причём?
← →
Reindeer Moss Eater © (2005-12-27 11:33) [4]Почему при OnShow формы в таком коде, вылазиет не полный путь к файлу а
C:/DOCUME~1/...
Потому что exe модуль запускается с помощью ярлыка.
А в свойствах этого ярлыка рабочий каталог программы указан как короткий путь.
← →
St74 (2005-12-27 15:01) [5]Но мне и надо чтоб при клике по файлу созданному моей программой
запустить последнюю на выполнение и загрузить в RxRichEdit фаил!
St74! ;)
← →
Германн © (2005-12-27 16:42) [6]Поставь в HCR/MyFile/Shell/Open/Command - MyProgramma "%1"
← →
St74 (2005-12-27 19:37) [7]Германн © (27.12.05 16:42) [6]
А у меня типо что стоит...
...
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey(".asw", True);
Reg.WriteString("", "MyFile");
Reg.CloseKey;
Reg.CreateKey("asw" + "MyFile");
Reg.OpenKey("MyFile\DefaultIcon", True);
Reg.WriteString("", Application.ExeName + ",0");
Reg.CloseKey;
Reg.OpenKey("MyFile\shell\open\command", True);
Reg.WriteString("", Application.ExeName + " "%1"");
Reg.CloseKey;
Reg.Free;
...
St74! 8)
← →
St74 (2005-12-27 20:59) [8]ИМХО! Что ещё мона сделать!
← →
аматор © (2005-12-27 22:09) [9]Привет..
if ParamStr(1)<> "" then begin
RxRichEdit2.Lines.LoadFromFile(ParamStr(1));
end;
← →
St74 (2005-12-28 19:11) [10]аматор © (27.12.05 22:09) [9]
Та же хэя, путь не полный :(
Reindeer Moss Eater © (27.12.05 11:33) [4]
Так что же енто короче ДЫК!!! Али Кердык! 87)
Что Парни у кого ещё что есть, по данной Мессаге! ;)
← →
St74 (2005-12-28 19:12) [11]аматор © (27.12.05 22:09) [9]
Та же хэя, путь не полный :(
Reindeer Moss Eater © (27.12.05 11:33) [4]
Так что же енто короче ДЫК!!! Али Кердык! 87)
Что Парни у кого ещё что есть, по данной Мессаге! ;)
← →
begin...end © (2005-12-28 19:43) [12]Во народ пошёл, а... :-(
В первом же посте -- функция, превращающая путь из "короткого" в "длинный".
Казалось бы -- возьми да пользуйся! Если непонятно что-то -- возьми да спроси!
Ан нет... Лучше упорно флудить... а вдруг чего полегче будет? а вдруг готовый код дадут?
Во народ пошёл, а... :-(
← →
St74 (2005-12-28 20:00) [13]Ну что тут Шуметь, да не понял ху есть ху!
Что за функция такая GetLongPathName и где об ней посмотреть мона?
А то сразу что за народ, ... да молод ещё народ в Программировании вот и
флудит не по детски!
St74! ;)
← →
begin...end © (2005-12-28 21:23) [14]> St74 (28.12.05 20:00) [13]
> Что за функция такая GetLongPathName и где об ней посмотреть мона?
Посмотреть "об ней мона" в MSDN: http://msdn.com
Но нервы нужно беречь (и Вам, и мне). Поэтому сразу дам готовый код:function GetLongPathName(lpszShortPath: PChar; lpszLongPath: PChar; cchBuffer: DWORD): DWORD;
stdcall; external "kernel32.dll" name "GetLongPathNameA";
var
LP: array [0..MAX_PATH] of Char;
R: Cardinal;
begin
R := GetLongPathName(PChar(ParamStr(1)), LP, sizeof(LP));
if (R <> 0) and (R < sizeof(LP)) then
ShowMessage(LP)
end.
← →
Alexander Panov © (2005-12-28 21:44) [15]>St74
А еще желательно матюгальник свой не использовать для писанины.
← →
St74 (2005-12-28 22:11) [16]Alexander Panov © (28.12.05 21:44) [15]
>>> ху есть ху! <<< ---> Это не мат а "Кто есть Кто!" 8()
← →
St74 (2005-12-28 22:17) [17]
> Та же хэя
Это "Та же хэромантия а не херомантия" :)))
← →
St74 (2005-12-29 00:39) [18]
> begin...end © (28.12.05 21:23) [14]
СпасиБО ОГромное! Прочитал, посмотрел на ваш код, и вот ШО у менЭ получилось
...
var
GetLongPathName: function(lpszShortPath: PChar; lpszLongPath: PChar;
cchBuffer: DWORD): DWORD; stdcall;
h: THandle;
i: Integer;
begin
Result := ShortName;
if Result = "" then
Exit;
h := GetModuleHandle(kernel32);
if h = 0 then
Exit;
@GetLongPathName := GetProcAddress(h, "GetLongPathNameA");
if not Assigned(GetLongPathName) then
Exit;
SetLength(Result, MAX_PATH);
i := GetLongPathName(PChar(ShortName), PChar(Result), Length(Result));
if i = 0 then
Exit;
SetLength(Result, i);
end;
...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c