Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание папок / 8 сообщений из 8, страница 1 из 1
09.01.2003, 16:13
    #32088338
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
Подскажите, как програмно создать "папку", и, соответсвенно, ярлыки в ней
в Пуск - Программы ?
...
Рейтинг: 0 / 0
09.01.2003, 16:58
    #32088381
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
смотря под какую операционку,
(см. var Win32Platform)
но всё сводится к поиску

под 98 : папки Винды и в ней "главное меню/программы" (см. GetWindowsDirectory)

под 2000 : папки с профилем юзера/all users, и там start menu/programs

и вызова
function CreateDir(const Dir: string): Boolean;
...
Рейтинг: 0 / 0
09.01.2003, 17:07
    #32088391
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
А что, неужели в WinAPI нету такой функции? Странно...
...
Рейтинг: 0 / 0
10.01.2003, 09:10
    #32088580
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
В Проводнике есть встроенный DDE сервер. Надо просто в инете порыться насчет команд. Там есть все это.
...
Рейтинг: 0 / 0
10.01.2003, 10:29
    #32088645
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
Есть такие.
Насколько я помню в названии фигурирует подстрока shell. Подробности - winapi help, а то у меня он упал.
...
Рейтинг: 0 / 0
10.01.2003, 10:31
    #32088646
Белов Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
Да нет, как создавать ярлыки к программам и др. я знаю
Мне немного непонятен принцип работы создания "ярлыка", скажем так, для папки, и как далее в ней создавать ярлыки.
...
Рейтинг: 0 / 0
10.01.2003, 11:06
    #32088667
Micha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
Для создания ярлыков следует использовать COM интефрейс IShellLink. Поробнее в справке по WinAPI.
А папку можно CreateDir.
...
Рейтинг: 0 / 0
15.01.2003, 08:32
    #32090844
Groove
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание папок
Как програмно создать ярлык?
Группа ссылок: Диски, Папки и Файлы

Функция CreateShortcut создает ярлык в указанном месте.

Параметры
ShortcutDir - Каталог в котором надо создавать ярлык.Можно передавать непосредственно путь каталога или одну из следующих констант:
Desktop - Рабочий стол
Favorites - Избранное
Programs - Пуск\Программы
SendTo - Отправить
Start Menu - Главное меню
Startup - Автозагрузка
CmdLine - Путь к обьекту открытия(файл или папка)

Param - Параметры
WorkDir - Рабочий каталог
DirName - Имя подпапки. Оно необходимо в том случае если вы создаете ярлыки например в "Пуск\Программы" и вам необходимо чтобы ярлыки были в подпапке.
LinkFile - Имя файла ярлыка.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
uses
  ...Registry, ShlObj, ActiveX, ComObj, FileUtil;

......

function CreateShortcut(const ShortcutDir, CmdLine, Param, WorkDir,DirName: string;
   LinkFile:String): Boolean;
var
  MyObject  : IUnknown;

  MySLink   : IShellLink;
  MyPFile   : IPersistFile;
  WideFile  : WideString;
  Directory, TempStr: String;
  Reg:TRegistry;
begin
  Result:=False;Directory:='';
  If (ShortcutDir='Desktop') or (ShortcutDir='Favorites') or
     (ShortcutDir='Programs') or (ShortcutDir='SendTo') or
     (ShortcutDir='Start Menu') or (ShortcutDir='Startup') then
    begin
      Reg:=TRegistry.Create;
      Reg.OpenKey('Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell 
Folders',False);

      Directory := Reg.ReadString(ShortcutDir);
      Reg.Free;
      If not(DirName='') then
        Directory:=Directory+'\'+DirName;
    end;
  If DirExists(ShortcutDir)  then
    Directory:=ShortcutDir
  else
    If Directory='' then  Exit;
  If not(FileExists(CmdLine)) and not
(DirExists(CmdLine)) then Exit;
  If linkFile='' then Exit;
  TempStr:=linkFile;

  If Length(linkFile)> 4  then
    Delete(TempStr, 1 ,Length(TempStr)- 3 );
  If not(AnsiUpperCase(TempStr)='LNK') then
    linkFile:=linkFile+'.lnk';
  MyObject := CreateComObject(CLSID_ShellLink);
  MySLink := MyObject as IShellLink;
  MyPFile := MyObject as IPersistFile;
  with MySLink do
    begin
      SetPath(PChar(CmdLine));
      SetArguments(PChar(Param));
      SetWorkingDirectory(PChar(WorkDir));
    end;

  if Directory[Length(Directory)]='\' then
    WideFile := Directory+LinkFile
  else
    WideFile := Directory+'\'+LinkFile;
  if MyPFile.Save(PWChar(WideFile), False)= S_OK then
    Result:=True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  s:=ExtractFilePath(Edit1.Text);
  Delete(s,Length(s), 1 );
  CreateShortcut( 'Programs', 'C:\my.txt', '', 'C:\', '', 'my');
end;


текст взят из справки Rus WinAPI Help
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Создание папок / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]