using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace DragDropShortcut
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void itemsListView_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Copy; //تحديد شكل الماوس عند عملية الافلات
}
}
private void itemsListView_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); //جلب الداتا من عملية الافلات
foreach (string file in files)
{
if (Path.GetExtension(file).ToLower() == ".url") //اذا كان الملف الملقى فقط على صيغة url
{
ListViewItemX item = new ListViewItemX();
item.Text = Path.GetFileNameWithoutExtension(file); //جلب الاسم
item.URL = GetShortcutURL(file); //جلب الرابط
item.ImageIndex = 0;
itemsListView.Items.Add(item); //الاضافة الى اللست فيو
}
}
}
private void itemsListView_SelectedIndexChanged(object sender, EventArgs e)
{
if (itemsListView.SelectedItems.Count != 0)
{
ListViewItemX currentItem = (ListViewItemX)itemsListView.SelectedItems[0]; //جلب المحدد حاليا في اللستة
nameTextBox.Text = currentItem.Text;
urlTextBox.Text = currentItem.URL;
}
}
private void goButton_Click(object sender, EventArgs e)
{
try
{
System.Diagnostics.Process.Start(urlTextBox.Text);
}
catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}
private void itemsListView_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete && itemsListView.SelectedItems.Count != 0)
{
itemsListView.Items.Remove(itemsListView.SelectedItems[0]); //حذف الاختصار اذا ضغط delete
nameTextBox.Text = string.Empty; //تصفير التسكت بوكسات
urlTextBox.Text = string.Empty;
}
}
#region "GetShortcutURL"
string GetShortcutURL(string file)
{
string[] content = File.ReadAllLines(file);
//قرائة النص
foreach (string line in content)
{
//البحث عن URL=
if (line.StartsWith("URL="))
{
//جلب الرابط بدون URL=
return line.Remove(0, 4);
}
}
return "";
}
#endregion
}
class ListViewItemX : ListViewItem //عمل لست ايتيم معدل فيه خاصية url
{
public string URL { get; set; }
}
}