Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Вниз

Создание ярлыка в меню пуск-автозагрузка   Найти похожие ветки 

 
zero-g ©   (2005-07-14 02:25) [0]

Доброго времени суток!

Скажите пожалуйста, как получить путь к папке StartUp(Автозагрузка) и поместить туда ярлык своего приложения?

Спасибо.


 
zero-g ©   (2005-07-15 02:33) [1]

Никто не знает чтоли???


 
dmitry501 ©   (2005-07-15 05:24) [2]

zero-g ©   (15.07.05 2:33) [1]
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup
для текущего пользователя
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Startup
для всех пользователей


 
zero-g ©   (2005-07-15 08:25) [3]

Спасибо, сеня попробую.


 
Экспериментатор   (2005-07-15 14:33) [4]

 ShortcutType = (_DESKTOP, _PROGRAMS, _QUICKLAUNCH, _STARTMENU, _OTHERFOLDER);

 function CreateIrrVerbsShortcut(Location: ShortcutType) : string;

implementation

uses Inifiles, uConst,
    Windows, Registry, ShlObj, ComObj, ActiveX;

function CreateShortcut(SourceFileName: string;                 ALinkName : string;
                       Location: ShortcutType; // shortcut location
                       SubFolder,  // subfolder of location
                       WorkingDir, // working directory property of the shortcut
                       Parameters,
                       Description: string): //  description property of the shortcut
                       string;
const
 SHELL_FOLDERS_ROOT = "Software\MicroSoft\Windows\CurrentVersion\Explorer";
 QUICK_LAUNCH_ROOT = "Software\MicroSoft\Windows\CurrentVersion\GrpConv";
var
 MyObject: IUnknown;
 MySLink: IShellLink;
 MyPFile: IPersistFile;
 Directory, LinkName: string;
 WFileName: WideString;
 Reg: TRegIniFile;
begin
 try
   MyObject := CreateComObject(CLSID_ShellLink);
   MySLink := MyObject as IShellLink;
   MyPFile := MyObject as IPersistFile;

   MySLink.SetPath(PChar(SourceFileName));
   MySLink.SetArguments(PChar(Parameters));
   MySLink.SetDescription(PChar(Description));

   if ALinkName<>"" then LinkName:=ALinkName+".lnk"
   else
   begin
     LinkName := ChangeFileExt(SourceFileName, ".lnk");
     LinkName := ExtractFileName(LinkName);
   end;
   // Quicklauch
   if Location = _QUICKLAUNCH then
   begin
     Reg := TRegIniFile.Create(QUICK_LAUNCH_ROOT);
     try
       Directory := Reg.ReadString("MapGroups", "Quick Launch", "");
     finally
       Reg.Free;
     end;
   end
   else
   // Other locations
   begin
     Reg := TRegIniFile.Create(SHELL_FOLDERS_ROOT);
     try
     case Location of
       _OTHERFOLDER : Directory := SubFolder;
       _DESKTOP     : Directory := Reg.ReadString("Shell Folders", "Desktop", "");
       _PROGRAMS    : Directory := Reg.ReadString("Shell Folders", "Programs", "");
       _STARTMENU   : Directory := Reg.ReadString("Shell Folders", "Start Menu", "");
     end;
     finally
       Reg.Free;
     end;
   end;

   if Directory <> "" then
   begin
     if (SubFolder <> "") and (Location <> _OTHERFOLDER) then
       WFileName := Directory + "\" + SubFolder + "\" + LinkName
     else
       WFileName := Directory + "\" + LinkName;

     if WorkingDir = "" then
       MySLink.SetWorkingDirectory(PChar(ExtractFilePath(SourceFileName)))
     else
       MySLink.SetWorkingDirectory(PChar(WorkingDir));

     MyPFile.Save(PWChar(WFileName), False);
     Result := WFileName;
   end;
 except
   MessageDlg("Не могу создать ярлык!"
   +#13+#10+"Нет доступа.", mtWarning, [mbOK], 0);
 end;
end;
ПРИМЕР ИСПОЛЬЗОВАНИЯ
function CreateIrrVerbsShortcut(Location: ShortcutType) : string;
begin
 Result:=CreateShortcut(ParamStr(0), "Irregular Verbs", Location, "", "", "", "Irregular Verbs(с)");
end;


 
zero-g ©   (2005-07-20 02:38) [5]

Спасибо всем.

Но я сделал так
----

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

uses Registry;
...
var
mypath : string; //глобальная переменная пути,
    где физически лежит прога
...

procedure TForm1.FormCreate(Sender: TObject);
var r : Tregistry;
begin
 mypath := "";
 r := Tregistry.Create; //создаем объект
 r.RootKey := HKey_Current_User;//ставим ветвь реестра
 r.OpenKey("Software\<мое приложение>",false);//открываем ключ
 mypath := r.ReadString("<имя ключа>"); //считываем занчение ключа
 r.Free;//убиваем объект
 if mypath = "" then //если нифига нет
  begin
    mypath := GetCurrentDir; //присваеваем пути значение текущего каталога
    r := Tregistry.Create;
    r.RootKey := HKey_Current_User;
    r.OpenKey("Software\<мое приложение(навзание каталога)>",true);
    r.WriteString("<имя ключа>",mypath);//записываем значения ключа
    r.Free;
  end;
end;

= далее ... =

procedure TForm1.SpeedButton1Click(Sender: TObject);
var reg : TRegIniFile;
begin
{----- пихаем в авторан -----}
  reg := TRegIniFile.Create("SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
  reg.WriteString("","<имя ключа>",mypath+"\<имя приложения>.exe");
  reg.Free;
{-----------------------------}

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
var reg : TRegIniFile;
begin
{----- убиваем из авторана -----}
  reg := TRegIniFile.Create("SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
  reg.DeleteKey("","<имя ключа>");
  reg.Free;
{-------------------------------}
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.019 c
14-1123668228
Внук
2005-08-10 14:03
2005.09.04
Свершилось


9-1115547243
Omar2002
2005-05-08 14:14
2005.09.04
Зацените новую гамезу REIS_Nerver


3-1122234776
Валера
2005-07-24 23:52
2005.09.04
Delphi 6 + dbExpress + MySql


14-1123497616
ЙЦУКЕН
2005-08-08 14:40
2005.09.04
3D-модели химических соединений


1-1124085580
Zaero
2005-08-15 09:59
2005.09.04
Как убрать с формы кнопки "свернуть" и "развернуть"?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский