|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] AutoIt работа с памятью. |
|
[решено] AutoIt работа с памятью.
|
Пользователь Сообщения: 87 |
Профиль | Отправить PM | Цитировать
Возник вопрос, могу ли я с помощью AutoIt не только считывать данные из памяти конкретного процесса, а зарезервировать в оперативной памяти n-ное количество ячеек которые будут хранить в себе определенные числа которые будут в режиме реального времени изменяться и далее считываться другим скриптом? Думал про работу через ini, но все же более интересен аспект работы с памятью
Или же если возможно то хотелось бы узнать можно ли структурировать по ячейкам буфер обмена, чтобы туда в определенные ячейки заносились данные одним скриптом и потом считывались другим скриптом. ClipGet ClipPut как я понял работает на весь буфер ini не предлагать, решение проблемы с помощью ини я знаю, хотелось бы узнать можно ли работать так с памятью и или буфером обмена. |
|
Отправлено: 22:18, 22-06-2009 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать как уже написал вариант Creat0R, + еще использовать можно эту UDF.
А технология простая: 1. Дочерный скрипт проверят в родителсьвом скрипте скрытое поле ввода (или же ячейку в памяти), если она пуста то записывает туда комманду, которую должен выполнить родителський скрипт. 2. Родителський скрипт в цикле проверяет свое скрытое поле, ждет получения комманды. Как только полученна комманда, начинает её выполнять, а перед этим очищает свое скрытое поле. вот и весь принцип интеракции |
------- Отправлено: 01:02, 21-07-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Возьму на вооружение, спасибо
|
Отправлено: 01:24, 21-07-2009 | #12 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Как можно узнать, где в памяти процесса начинается та самая "куча"?
Например я открываю процесс, начинаю шарить в памяти с 0х00000000, и только с 0х00010000 идут данные, ячейки с 0х00000000 по 0х00010000 пусты. |
Отправлено: 07:06, 27-07-2009 | #13 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Belfigor:
|
|
Отправлено: 12:13, 27-07-2009 | #14 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать А как мне узнать где эта область начинается для конкретного уже существующего процесса?
|
Отправлено: 15:05, 27-07-2009 | #15 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Belfigor, обходной путь:
$PID = ProcessExists("Explorer.Exe") $adr = _ProcessGetAllocAddress($PID) ConsoleWrite("0x"& Hex($adr) &@CRLF) Func _ProcessGetAllocAddress ($PID) Local $tPID = DllStructCreate("long") Local $tBuffer = DllStructCreate("byte") DllStructSetData($tPID, 1, $PID) Local $hProc = DllCall('kernel32.dll', 'int', 'OpenProcess', "int", 0x38, "int", 0, "int", DllStructGetData($tPID,1)) Local $pMem = DllCall('kernel32.dll', 'int', 'VirtualAllocEx', "int", $hProc[0], "ptr", 0, "int", DllStructGetSize($tBuffer), "int", 0x3000, "int", 0x4) DllCall('kernel32.dll', 'int', 'VirtualFreeEx', "int", $hProc[0], "ptr", $pMem[0], "int", 0, "int", 0x8000) DllCall("kernel32.dll", "int", "CloseHandle", "int", $hProc[0]) Return $pMem[0] EndFunc ; ==> _ProcessGetAllocAddress |
Последний раз редактировалось amel27, 28-07-2009 в 08:44. Причина: оформление Отправлено: 08:21, 28-07-2009 | #16 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать amel27, сегодня ночью сяду смотреть что это дает, если оно поможет мне режить проблему вменяемой интеракции то слава богам, ты мой спаситель
|
Отправлено: 08:32, 28-07-2009 | #17 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Belfigor:
я выдернул этот кусок из своей старой UDF по определению координат ярлыка на рабочем столе, там происходит выделение с копированием памяти между процессами... думаю то, что ты ищешь: http://forum.oszone.net/post-605123-110.html |
|
Отправлено: 08:56, 28-07-2009 | #18 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Delphi - Delphi | Работа с памятью чужого процесса, перехват API | Savant | Программирование и базы данных | 17 | 11-04-2012 13:06 | |
Работа с LDAP в autoIT | iDemon | AutoIt | 0 | 30-05-2009 15:50 | |
Разное - [решено] Работа со списками на AutoIt | Demka_DV | AutoIt | 3 | 14-05-2009 11:10 | |
[решено] Проблема с памятью | Quickly | Материнские платы и память | 2 | 13-11-2008 16:27 | |
[решено] траблы с памятью | Kazus | Непонятные проблемы с Железом | 15 | 24-05-2007 14:04 |
|