Shurik Опубликовано 4 апреля, 2017 Поделиться Опубликовано 4 апреля, 2017 (изменено) Всем привет, использую либу VAMemory. Делаю так - Показать контент VAMemory VAM; VAM = new VAMemory("Тут название процесса без .exe"); var address = Тут адрес.; byte[] bytesMoney = { Ну тут я писал количество. }; VAM.WriteByteArray((IntPtr)address, bytesMoney); Но, выскакивало сообщение "prj1 is not running or has not been found. Please check and try again". Хотя процесс запущен, почему такое происходит? Изменено 4 апреля, 2017 пользователем Shurik Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 апреля, 2017 Поделиться Опубликовано 4 апреля, 2017 Привет! Код принято оборачивать в тэг "code" и сверху - в "spoiler". Как ты пробовал решать проблему? Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurik Опубликовано 4 апреля, 2017 Автор Поделиться Опубликовано 4 апреля, 2017 Честно говоря, вообще не как, ибо на всех уроках по взаимодействию с процессом, на уроках все у всех получалось, непонятно почему так тут... Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 апреля, 2017 Поделиться Опубликовано 4 апреля, 2017 Какую версию библиотеки ты используешь? Я нашел метод "CheckProcess", который стоит вызвать сразу после инициализации (после строки new VAMemory). "Prj1" при этом - это название процесса или что-то другое? Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurik Опубликовано 4 апреля, 2017 Автор Поделиться Опубликовано 4 апреля, 2017 (изменено) Спасибо, вписал метод "CheckProcess" и все заработало. Изменено 4 апреля, 2017 пользователем Shurik Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 апреля, 2017 Поделиться Опубликовано 4 апреля, 2017 Так. Во-первых, WriteByteArray используется скорее для перезаписи кода, т.к. как раз тут удобнее всего использовать массив байт. В твоем случае, как мне кажется, проще было бы использовать WriteInt или WriteFloat. Во-вторых, твоей программе может не хватать прав для корректной работы, так что если ты запускаешь ее из Visual Studio, то запускай всю Visual Studio от имени администратора. Если просто готовый ехе-файл, то так же - от администратора. Попробуй проверить это в первую очередь, т.к. это самое простое и быстрое возможное решение. Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurik Опубликовано 4 апреля, 2017 Автор Поделиться Опубликовано 4 апреля, 2017 Кстати, хотел спросить, из этого видео - https://www.youtube.com/watch?v=djnF4Z-IiyE после закрытия программы в лог пишет это - " Вызвано исключение: "System.NullReferenceException" в Memory.dll ". В чем может быть проблема? Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 апреля, 2017 Поделиться Опубликовано 4 апреля, 2017 В 04.04.2017 в 20:00, Shurik сказал: Кстати, хотел спросить, из этого видео - https://www.youtube.com/watch?v=djnF4Z-IiyE после закрытия программы в лог пишет это - " Вызвано исключение: "System.NullReferenceException" в Memory.dll ". В чем может быть проблема? Показать Без использования отладчика - в том, что какая-то переменная в коде имела значение null и с ней пытались что-то сделать, думая что там будет не null. Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurik Опубликовано 4 апреля, 2017 Автор Поделиться Опубликовано 4 апреля, 2017 А как исправить?Просто не совсем догоняю... Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 4 апреля, 2017 Поделиться Опубликовано 4 апреля, 2017 В 04.04.2017 в 20:02, Shurik сказал: А как исправить?Просто не совсем догоняю... Показать Суть довольно простая, но лучше всего понимается на практике. Отладчик позволяет приостанавливать выполнение программы и смотреть на то, как она работает, пошагово. А так же - на значения переменных. Вот картинка с примером: Красный кружок слева от кода - это так называемая точка останова (или breakpoint). На эти штуки и ориентируется отладчик, когда работает. Увидит такую - и остановит дальнейшее выполнение программы. Желтая стрелка внутри кружочка - это место, где как раз выполнение программы и остановилось. После остановки можно жать вот на эти вот кнопки: http://www.whatprogramming.com/csharp/wp-content/uploads/2015/08/Debug1.png И выполнять дальше код по шагам. "Step over" - без входа "внутрь" других функций, перепрыгивая их вызовы, "step into" - залезая внутрь каждой встреченной функции или метода. Точки останова ставятся или удаляются просто кликом мыши. Можешь попробовать и проверить, что получится. Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurik Опубликовано 4 апреля, 2017 Автор Поделиться Опубликовано 4 апреля, 2017 Пишет что строка - Process game = Process.GetProcessesByName("game")[0]; Выдает исключения, в ней там почти все в исключениях, почему так? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения