Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Показ полного пути к файлу! [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо