Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

требуется небольшая помощь по C#

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 25.12.2013, 15:25   #1
 Разведчик
Аватар для scitelz
 
scitelz никому не известный тип
Регистрация: 25.01.2013
Сообщений: 13
Популярность: 10
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию требуется небольшая помощь по C#

Доброго всем времени суток.
Возникло некоторое желание переползти с Делфи на C#, не зря же на него все отчего-то молятся)
Захотелось написать что-то из серии локатора окружающих персонажей, для начала всех, ну а затем возможно и из необходимого списка. (если такие существуют с исходниками с удовольствием глянул бы, поиском не нашел )
- да видел есть часть программы, по отображению персонажей вокруг, на основе PWFrameWork, но пока ищу что попроще, хотя разобраться в фрэйме интересно и потихоньку его копаю.

Да, - в C# не работал ранее, однако, в целях нового опыта выбрал именно его, на дельфях процесс создания такого проект в принципе понятен.
А вот в шарпе возникли пара вопросов - буду благодарен если подскажете.
Работаю в VS 2012
Собственно:
- типа HANDLE я так понимаю нет. Корректно ли использовать тип IntPtr, по логике вполне подходит.
- не могу вызвать OpenProcess - в чистую он его не видит, а на строки из серии [DllImport("KERNEL32.DLL")] копилях выдает страшную ругань...либо я туп и не там это втыкаю.

Заранее извините если вопросы совсем тупые.

PS ну и тупить так тупить до конца - в PWFrameWork для актуализации версий офсеты менять только в OffsetsAndAddresses ???

Последний раз редактировалось scitelz; 25.12.2013 в 15:41.
  Ответить с цитированием
Старый 25.12.2013, 18:21   #2
 Разведчик
Аватар для Vitalit
 
Vitalit вызывает надежду
Регистрация: 04.07.2012
Сообщений: 8
Популярность: -37
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: требуется небольшая помощь по C#

Handle - это не просто тип вроде int, а структура, но в вашем случае это указатель (или идентификатор, как понятнее) на обьект окна

потому использовать IntPtr очень даже верно, его как раз и возвращает OpenProcess

К примеру
Код:
public static class WinApi
{
[DllImport("kernel32.dll")]
        public static extern IntPtr OpenProcess(ProcessAccessFlags dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwProcessId);
}
в коде вызывать как
IntPtr handle = WinApi.OpenProcess(параметры...);

Последний раз редактировалось Vitalit; 25.12.2013 в 18:25.
  Ответить с цитированием
Старый 25.12.2013, 18:28   #3
 Старший сержант
Аватар для N00bSa1b0t
 
N00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядомN00bSa1b0t в состоянии испепелить взглядом
Регистрация: 09.04.2010
Сообщений: 204
Популярность: 5518
Сказал(а) спасибо: 49
Поблагодарили 512 раз(а) в 198 сообщениях
 
По умолчанию Re: требуется небольшая помощь по C#

Цитата:
Сообщение от scitelzПосмотреть сообщение
- не могу вызвать OpenProcess - в чистую он его не видит, а на строки из серии [DllImport("KERNEL32.DLL")] копилях выдает страшную ругань...либо я туп и не там это втыкаю.

Рекомендую сайт [Ссылки могут видеть только зарегистрированные пользователи. ] там вроде есть верный DllImport для всех WinAPI'шных функций

Ну а втыкать это надо в тело класса, как обычную статическую функцию. Только она без тела будет, ибо импортируется извне.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]-cофт и прочее для комфортной игры в PW.
PW Everyday Helper Bot
  Ответить с цитированием
Старый 26.12.2013, 11:59   #4
 Разведчик
Аватар для scitelz
 
scitelz никому не известный тип
Регистрация: 25.01.2013
Сообщений: 13
Популярность: 10
Сказал(а) спасибо: 7
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: требуется небольшая помощь по C#

спасибо за ответы, вроде разобрался. Флаги доступа правда для OpenProcess подглядел в PWFramework так как не наткнулся на них что-то.
И еще немного разъясните для дурачка, пожалуйста. Часто видел тут самописные функции поиска PID - не ясно зачем если его можно в явном виде получить и так через свойство Id.
И основной вопрос...отличие обращения к указателю напрямую и через OpenProcess только в уровне доступа?
Ведь если пробегать по процессам можно напрямую словить хэндл процесса, что то из серии:
Код:
pwName = "elementclient";
 foreach (Process p in Process.GetProcesses()) 
                using (p)
                {
                     bool result = false; 
                     result = pName.Equals(p.ProcessName, StringComparison.OrdinalIgnoreCase);
                   if (result == true) 
                    {
                        pwID = p.Id;
                        hProc = p.Handle;
                        break;
                    }
                }
  Ответить с цитированием
Старый 28.12.2013, 00:22   #5
 Разведчик
Аватар для Vitalit
 
Vitalit вызывает надежду
Регистрация: 04.07.2012
Сообщений: 8
Популярность: -37
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: требуется небольшая помощь по C#

без изменения уровня доступа к процессу, windows не даст "лезть" в память чужого приложения.
OpenProcess "открывает" процесс для чтения\записи
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Почта] Требуется небольшая яндекс база (100-200 почт). stigma88 Халява для Читера 2 18.07.2013 19:22
[Прочее] Небольшая помощь ROTOTYPE2 Халява для Читера 2 31.05.2013 22:00
Небольшая помощь в аое каче Telary Статьи, квесты и описания по Perfect World 9 06.04.2012 08:58
[Помогите!] Требуется Небольшая Инфа по sEledit Снайпер) Общение разработчиков 8 21.01.2011 21:19

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 09:44.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net