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

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

Имя ярлыка [D5, WinXP]


Fred ©   (2010-04-30 15:01:00) 

Каким образом можно задать имя ярлыка программы или изменить это имя?
Имеется ввиду вот что. Есть файл proba.exe. При создании ярлыка он автоматически называется "proba.exe", а надо, чтобы назывался "Пробная программа". Чтобы каждый раз не переименовывать ярлык, когда вытаскиваешь его на стол пользователя.


Anatoly Podgoretsky   (2010-05-05 11:46:00) [1]

> oldman  (05.05.2010 10:42:04)  [4]

Мы не ищем легких путей.


oldman   (2010-05-05 10:42:00) [2]


> Каким образом можно задать имя ярлыка программы или изменить
> это имя?

> Чтобы каждый раз не переименовывать ярлык


Мдя...


> При создании ярлыка он автоматически называется "proba.exe",
>  а надо, чтобы назывался "Пробная программа".


Надо переименовать программу в "Пробная программа.ехе"


['tr   (2010-04-30 19:42:00) [3]

Автор: Xavier Pacheco

unit Main;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

uses ComObj, ActiveX, ShlObj, Registry;

const
 { Registry key where Folder information is kept }
 SFolderKey = '\Software\Microsoft\Windows\CurrentVersion\' +
   'Explorer\Shell Folders';

function GetFolderLocation(const FolderType: string): string;
{ Retrieves from registry path to folder indicated in FolderType }
begin
 with TRegistry.Create do
 try
   RootKey := HKEY_CURRENT_USER;
   if not OpenKey(SFolderKey, False) then
     { open key where shell folder information is kept. }
     raise ERegistryException.CreateFmt('Folder key "%s" not found',
       [SFolderKey]);
   { Get path for specified folder }
   Result := ReadString(FolderType);
   if Result = '' then
     raise ERegistryException.CreateFmt('"%s" item not found in registry',
       [FolderType]);
   CloseKey;
 finally
   Free;
 end;
end;

procedure MakeNotepad;
const
 // NOTE: Assumed location for Notepad:
 AppName = 'c:\windows\notepad.exe';
var
 SL: IShellLink;
 PF: IPersistFile;
 LnkName: WideString;
begin
 OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER,
   IShellLink, SL));
 { IShellLink implementers are required to implement IPersistFile }
 PF := SL as IPersistFile;
 OleCheck(SL.SetPath(PChar(AppName))); // set link path to proper file
 { create a path location and filename for link file }
 LnkName := GetFolderLocation('Desktop') + '\' +
   ChangeFileExt(ExtractFileName(AppName), '.lnk');
 PF.Save(PWideChar(LnkName), True); // save link file
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 MakeNotepad;
end;

end.


Игорь   (2010-04-30 17:57:00) [4]


> Fred   (30.04.10 15:01)  
> он автоматически называется "proba.exe"


По любому ни как он именем файла не обзаветься, либо .lnk, либо proba.exe копия

Вы что то путали


{RASkov}   (2010-04-30 15:49:00) [5]

> [0] Fred   (30.04.10 15:01)

Кто ярлык-то создает: ты(твоя программа) или ось(средствами ОС)?


Наверх

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