![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Имя ярлыка [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)
Кто ярлык-то создает: ты(твоя программа) или ось(средствами ОС)?