Размещаем на форме listView и настраиваем:
- FullRowSelect = true (выделятся будет вся строка, а не одна ячейка)
- GridLines = true (разделение линиями)
- View = Details
- заходим в коллекцию Сolumns и добавляем два зоголовка: "Имя процесса" и "pID".
Далее переходим в Свойства -> События и подписываемя на событие MouseUp(двойной клик на строчке)
В обработчике MouseUp привязываем наш contextMenuStrip:
Код:
ListView listView = sender as ListView;
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
ListViewItem item = listView.GetItemAt(e.X, e.Y);
if (item != null)
{
item.Selected = true;
contextMenuStrip1.Show(listView, e.Location);
}
}
Теперь при клике ПКМ, в поле listView, выскочит контекстное меню.
Заполним listView списком процессов. Для этого напишем такую "функцию":
Код:
//Получаем имена процессов и их pID
void refResh()
{
listView1.Items.Clear();
ManagementObjectSearcher FindprocessEum = new ManagementObjectSearcher("SELECT * FROM Win32_Process");
ListViewItem add_item;
foreach (ManagementObject process in FindprocessEum.Get())
{
add_item = new ListViewItem(process["Name"].ToString());
add_item.SubItems.AddRange(new string[] { process["ProcessId"].ToString() });
listView1.Items.Add(add_item);
}
}
Отработаем ее при запуске программы.Для этого допишем под иницализацией refResh();
Код:
.......................
public Form1()
{
InitializeComponent();
refResh();
}
.....................
Добавляем к контекстному меню пункты: "Обновить", "DllInject","Выход".
Двойной клик по "Обновить", пишем:
Код:
refResh();
Теперь по нажатию на этот пункт список процессов обновится.
Двойной клик по "Выход", пишем:
Код:
Application.Exit();
Двойной клик по "DllInject", пишем:
Код:
if (File.Exists("InjectModule.dll"))//проверяем есть ли файл
{
openFileDialog1.Title = "Выберете DLL";
openFileDialog1.FileName = "";
openFileDialog1.Filter = "DLL (*.dll)|*.dll";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StartInject(listView1.SelectedItems[0].SubItems[0].Text, openFileDialog1.FileName);
}
}
else
{
MessageBox.Show("InjectModule.dll не найден!", "Error");
}
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
ВТ сделать не могу, так как ГГГ-модем "посылает"....
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
Я что то не пойму,в чем отличие от того что если инжектор будет написан просто на c# или просто на c++ вроде разницы нет на чем он написан,или все же есть проповедуй мне пожалуйста всю информацию
Я что то не пойму,в чем отличие от того что если инжектор будет написан просто на c# или просто на c++ вроде разницы нет на чем он написан,или все же есть проповедуй мне пожалуйста всю информацию
Я что то не пойму,в чем отличие от того что если инжектор будет написан просто на c# или просто на c++ вроде разницы нет на чем он написан,или все же есть проповедуй мне пожалуйста всю информацию
Координального различия в работе практически нету... отличается только способ реализации....
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!