Herkese merhabalar,
Sağ tık menüsünü regedit üzerinden değiştirerek yeni komutlar ekleyebiliriz ancak bunu daha kolay hale getirmek için ufak bir yazılım kodladım. Bu yazılımla birlikte çok kolay bir şekilde sağ tık menüsüne URL / dosya / komut ekleyebilirsiniz.

Programı indirmek için :
Virüstotal sonuçları :
https://www.virustotal.com/gui/file/dc59a7e79538eee5d93956eac3f3520d354f19b44349328228a24757eee144fd?nocache=1
Yazılımı kullanması oldukça kolay şekilde tasarladım. Öncelikle 1.seçenek ile sağ tık menüsüne komut ekleyebilirsiniz. 2 ile kalkıyor ve 3 ile de kurulu olanları listeleyebiliyorsunuz.
Örneğin sağ tık menüsüne Chrome'u eklemek istiyorum

Veya sağ tık menüsüne Techolay.net sosyal'i eklemek istiyorum.

Sağ tık menüsüne ekli kodları görmek istiyorum.

Eklediği komutları kaldıracağım.

Herkese esenlikler dilerim.
Kodları incelemek isteyen arkadaşlar için :
using System;
using System.Collections.Generic;
using Microsoft.Win32;
namespace ContextMenuManager
{
class Program
{
static void sagtik_ekle(string name, string command, bool isUrl)
{
string anahtar_yol = $@"Directory\Background\shell\{name}";
string komut_anahtaryol = $@"{anahtar_yol}\command";
try
{
using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(anahtar_yol))
{
key.SetValue("", name);
}
using (RegistryKey commandKey = Registry.ClassesRoot.CreateSubKey(komut_anahtaryol))
{
if (isUrl)
{
commandKey.SetValue("", $"cmd /c start {command}");
}
else
{
commandKey.SetValue("", command);
}
}
Console.WriteLine($"{name} başarıyla eklendi.");
}
catch (Exception e)
{
Console.WriteLine($"Bir hata oluştu: {e.Message}");
}
}
static void sagtik_kaldir(int index, List<string> items)
{
string anahtar_yol = $@"Directory\Background\shell\{items[index]}";
try
{
Registry.ClassesRoot.DeleteSubKeyTree(anahtar_yol);
Console.WriteLine($"{items[index]} başarıyla kaldırıldı.");
}
catch (ArgumentException)
{
Console.WriteLine($"{items[index]} bulunamadı.");
}
catch (Exception e)
{
Console.WriteLine($"Bir hata oluştu: {e.Message}");
}
}
static List<string> sagtik_liste()
{
string anahtar_yol = @"Directory\Background\shell";
List<string> items = new List<string>();
try
{
using (RegistryKey key = Registry.ClassesRoot.OpenSubKey(anahtar_yol))
{
if (key != null)
{
foreach (string subkeyName in key.GetSubKeyNames())
{
items.Add(subkeyName);
}
}
}
}
catch (Exception e)
{
Console.WriteLine($"Bir hata oluştu: {e.Message}");
}
return items;
}
static void Main(string[] args)
{
Console.Title = "Sağ Tık Menüsü Düzenleyici";
while (true)
{
Console.WriteLine("\n1. Sağ tık menüsüne ekleme");
Console.WriteLine("2. Sağ tık menüsünden kaldırma");
Console.WriteLine("3. Sağ tık menüsü öğelerini listeleme");
Console.WriteLine("4. Çıkış");
Console.Write("Seçiminiz: ");
string choice = Console.ReadLine();
if (choice == "1")
{
Console.Write("Öğe ismi: ");
string name = Console.ReadLine();
Console.Write("Komut veya URL: ");
string command = Console.ReadLine();
Console.Write("Bu bir URL mi? (e/h): ");
string isUrlInput;
bool isUrl = false;
while (true)
{
isUrlInput = Console.ReadLine().ToLower();
if (isUrlInput == "e")
{
isUrl = true;
break;
}
else if (isUrlInput == "h")
{
isUrl = false;
break;
}
else
{
Console.Write("Geçersiz giriş, lütfen 'e' veya 'h' girin: ");
}
}
sagtik_ekle(name, command, isUrl);
}
else if (choice == "2")
{
List<string> items = sagtik_liste();
if (items.Count == 0)
{
Console.WriteLine("Hiç öğe bulunamadı.");
}
else
{
for (int i = 0; i < items.Count; i++)
{
Console.WriteLine($"{i + 1}. {items[i]}");
}
Console.Write("Kaldırmak istediğiniz öğenin numarasını girin: ");
int index;
while (!int.TryParse(Console.ReadLine(), out index) || index < 1 || index > items.Count)
{
Console.Write("Geçersiz giriş, lütfen geçerli bir numara girin: ");
}
sagtik_kaldir(index - 1, items);
}
}
else if (choice == "3")
{
List<string> items = sagtik_liste();
if (items.Count == 0)
{
Console.WriteLine("Hiç öğe bulunamadı.");
}
else
{
for (int i = 0; i < items.Count; i++)
{
Console.WriteLine($"{i + 1}. {items[i]}");
}
}
}
else if (choice == "4")
{
break;
}
else
{
Console.WriteLine("Geçersiz seçenek, tekrar deneyin.");
}
}
}
}
}