![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Показ полного пути к файлу! [D7, XP]
St74 © (2005-12-27 09:09:00)Привет Всем! С Новым Годом Вас!
Почему при 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!
St74 (2005-12-29 00:39:00) [1]
> 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;
...
St74 (2005-12-28 22:17:00) [2]
> Та же хэя
Это "Та же хэромантия а не херомантия" :)))
St74 (2005-12-28 22:11:00) [3]Alexander Panov © (28.12.05 21:44) [15]
>>> ху есть ху! <<< ---> Это не мат а " Кто есть Кто!" 8()
Alexander Panov (2005-12-28 21:44:00) [4]>St74
А еще желательно матюгальник свой не использовать для писанины.
begin...end (2005-12-28 21:23:00) [5]> 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.
St74 (2005-12-28 20:00:00) [6]Ну что тут Шуметь, да не понял ху есть ху!
Что за функция такая GetLongPathName и где об ней посмотреть мона?
А то сразу что за народ, ... да молод ещё народ в Программировании вот и
флудит не по детски!
St74! ;)
begin...end (2005-12-28 19:43:00) [7]Во народ пошёл, а... :-(
В первом же посте -- функция, превращающая путь из "короткого" в "длинный".
Казалось бы -- возьми да пользуйся! Если непонятно что-то -- возьми да спроси!
Ан нет... Лучше упорно флудить... а вдруг чего полегче будет? а вдруг готовый код дадут?
Во народ пошёл, а... :-(
St74 (2005-12-28 19:12:00) [8]аматор © (27.12.05 22:09) [9]
Та же хэя, путь не полный :(
Reindeer Moss Eater © (27.12.05 11:33) [4]
Так что же енто короче ДЫК!!! Али Кердык! 87)
Что Парни у кого ещё что есть, по данной Мессаге! ;)
St74 (2005-12-28 19:11:00) [9]аматор © (27.12.05 22:09) [9]
Та же хэя, путь не полный :(
Reindeer Moss Eater © (27.12.05 11:33) [4]
Так что же енто короче ДЫК!!! Али Кердык! 87)
Что Парни у кого ещё что есть, по данной Мессаге! ;)
аматор (2005-12-27 22:09:00) [10]Привет..
if ParamStr(1)<> '' then begin
RxRichEdit2.Lines.LoadFromFile(ParamStr(1));
end;
St74 (2005-12-27 20:59:00) [11]ИМХО! Что ещё мона сделать!
St74 (2005-12-27 19:37:00) [12]Германн © (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)
Германн (2005-12-27 16:42:00) [13]Поставь в HCR/MyFile/Shell/Open/Command - MyProgramma "%1 "
St74 (2005-12-27 15:01:00) [14]Но мне и надо чтоб при клике по файлу созданному моей программой
запустить последнюю на выполнение и загрузить в RxRichEdit фаил!
St74! ;)
Reindeer Moss Eater (2005-12-27 11:33:00) [15]Почему при OnShow формы в таком коде, вылазиет не полный путь к файлу а
C:/DOCUME~1/...
Потому что exe модуль запускается с помощью ярлыка.
А в свойствах этого ярлыка рабочий каталог программы указан как короткий путь.
begin...end (2005-12-27 11:24:00) [16]> Desdechado © (27.12.05 11:04) [2]
А это здесь причём?
Desdechado (2005-12-27 11:04:00) [17]Application.ExeName
begin...end (2005-12-27 09:17:00) [18]GetLongPathName