ايران ويج

نسخه‌ی کامل: ساختن منو در ریجستری برای برنامه
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام.
می خواستم بدونم چه شکلی می توانیم مثل برنامه UltraISO یک منو بر روی یک فایل اگزه ایجاد کنیم و سپس به چندین منو تقسیم شود مانند عکس زیر.

یعنی وقتی کاربر روی هر فایل اگزه راست کلیک کرد یکی از گزینه هایی که به همراه بقیه در منو برای کاربر نمایش داده می شود نام برنامه من باشه بعد وقتی کاربر روی اون نام قرار گرفت دوباره یک منوی دیگه باز بشه شامل چندید گزینه باشه.

فقط طریقه ساختن منو ها را می خواستم لطفا اگه میشه توضیح دهید که چه شکلی میشه این کار را کرد.
با تشکر.


البته من این کد زیر را پیدا کردم ولی نمیدونم چه شکلی براش زیر منو در ریجستری تعریف کنم، لطفا کمک کنید.
کد:
procedure FileTDelAction(key, name: String);
  var
  myReg: TRegistry;
begin
  try
    myReg:=TRegistry.Create;
    myReg.RootKey:=HKEY_CLASSES_ROOT;
    if key[1] = '.' then
      key := copy(key,2,maxint)+'_auto_file';
    if key[Length(key)-1] <> '\' then
      key:=key+'\';
    myReg.OpenKey('\'+key+'shell\', true);
    if myReg.KeyExists(name) then
      myReg.DeleteKey(name);
    myReg.CloseKey;
    myReg.Free;
  except
  end;
end;

procedure FileTAddAction(key, name, display, action: String);
  var
  myReg:TRegistry;
begin
  try
    myReg:=Tregistry.Create;
    myReg.RootKey:=HKEY_CLASSES_ROOT;
    if name='' then name:=display;

    if key[1] = '.' then
      key:= copy(key,2,maxint)+'_auto_file';

    if key[Length(key)-1] <> '\' then
      key:=key+'\';
    if name[Length(name)-1] <> '\' then
      name:=name+'\';
    myReg.OpenKey(key+'Shell\'+name, true);
    myReg.WriteString('', display);
    MyReg.CloseKey;
    MyReg.OpenKey(key+'Shell\'+name+'Command\', true);
    MyReg.WriteString('', action);
    myReg.Free;
  except
  end;
end;




{


  FileTAddAction('*','AiD.Scan',SysMenu,ParamStr(0)+' %1');
  FileTAddAction('Directory','AiD.Scan',SysMenu,ParamStr(0)+' %1');
  FileTAddAction('Drive','AiD.Scan',SysMenu,ParamStr(0)+' %1');


  FileTDelAction('Drive','AiD.Scan');
  FileTDelAction('Directory','AiD.Scan');
  FileTDelAction('*','AiD.Scan');


}