۲۶-بهمن-۱۳۹۰, ۲۳:۲۷:۲۷
با سلام.
می خواستم بدونم چه شکلی می توانیم مثل برنامه UltraISO یک منو بر روی یک فایل اگزه ایجاد کنیم و سپس به چندین منو تقسیم شود مانند عکس زیر.
یعنی وقتی کاربر روی هر فایل اگزه راست کلیک کرد یکی از گزینه هایی که به همراه بقیه در منو برای کاربر نمایش داده می شود نام برنامه من باشه بعد وقتی کاربر روی اون نام قرار گرفت دوباره یک منوی دیگه باز بشه شامل چندید گزینه باشه.
فقط طریقه ساختن منو ها را می خواستم لطفا اگه میشه توضیح دهید که چه شکلی میشه این کار را کرد.
با تشکر.
البته من این کد زیر را پیدا کردم ولی نمیدونم چه شکلی براش زیر منو در ریجستری تعریف کنم، لطفا کمک کنید.
می خواستم بدونم چه شکلی می توانیم مثل برنامه 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');
}