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

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

А как создать ярлыки на компьютерах локальной [D5, Win95/98, Win2k, WinXP]


Floppy ©   (2004-04-29 10:32:00) 

сети программой с одного из компьютеров рабочей группы?


Vit@ly   (2004-04-29 20:39:00) [1]

Видимо и UP не поможет :)


Floppy   (2004-04-29 15:51:00) [2]

Действительно, вопрос сформулирован не точно (или не полностью)
Желание таково:
При запуске программы на одном из компьютеров локальной сети, она расшаривает (создает) общий ресурс с определенным именем (к примеру \\Comp1\Test). Хотелость бы, чтобы эта программа создала на рабочих столах компьютеров локальной сети (естественно только на тех которые в данный момент включены),
ярлык \\Comp1\Test\Project1.exe


Aplay   (2004-04-29 12:09:00) [3]

что то я не совсем понял твой вопрос? Елси тебя интересует как создать ярлык то смотри:
Первый способ:

uses ShlObj, ComObj, ActiveX;
 
 procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
 var
   IObject: IUnknown;
   SLink: IShellLink;
   PFile: IPersistFile;
 begin
   IObject := CreateComObject(CLSID_ShellLink);
   SLink := IObject as IShellLink;
   PFile := IObject as IPersistFile;
   with SLink do begin
     SetArguments(PChar(Param));
     SetDescription(PChar(Desc));
     SetPath(PChar(PathObj));
   end;
   PFile.Save(PWChar(WideString(PathLink)), FALSE);
 end;

Взято с Исходников.ru http://www.sources.ru/delphi_src1.shtml

или

Второй способ

Программа создаст ярлык на рабочем столе или (смотри код) в главном меню. Ярлык будет иметь имя FooBar и при щелчке загрузит ваш AUTOEXEC.BAT в блокнот (NOTEPAD).
Код читает строковое значение из ключей регистра "Desktop" и "Start Menu" (ветка HKEY_CURRENT_USER), полный путь к которым:

Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders
-------------
Модуль Unit1
-------------

--------------------------------------------------------------------------------
   unit Unit1;

interface

uses

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

type

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

var

Form1: TForm1;

implementation

{$R *.DFM}

uses

ShlObj, ActiveX, ComObj, Registry;

procedure TForm1.Button1Click(Sender: TObject);
var

MyObject  : IUnknown;
MySLink   : IShellLink;
MyPFile   : IPersistFile;
FileName  : String;
Directory : String;
WFileName : WideString;
MyReg     : TRegIniFile;
begin

MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
FileName := 'NOTEPAD.EXE';
with MySLink do begin
SetArguments('C:\AUTOEXEC.BAT');
SetPath(PChar(FileName));
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
'Software\MicroSoft\Windows\CurrentVersion\Explorer');

// Используйте следующую строчку кода для создания ярлыка на рабочем столе

Directory := MyReg.ReadString('Shell Folders','Desktop','');

// Используйте следующие три строчки для создания ярлыка в главном меню
//  Directory := MyReg.ReadString('Shell Folders','Start Menu','')+
//      '\Рулез!';
//  CreateDir(Directory);

WFileName := Directory+'\FooBar.lnk';
MyPFile.Save(PWChar(WFileName),False);
MyReg.Free;
end;

end.  

А вообще это уже давно было написанно во всяких FAQ


Наверх

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