BrettF Posted February 11, 2008 Posted February 11, 2008 I keep getting this message (sometimes, sometimes not): _WinAPI_WriteProcessMemory: Only part of a ReadProcessMemory Or WriteProcessMemory request was completed. It happens when _MemWrite is called in Memory.au3 Func _MemWrite(ByRef $tMemMap, $pSrce, $pDest = 0, $iSize = 0, $sSrce = "ptr") Local $iWritten If $pDest = 0 Then $pDest = DllStructGetData($tMemMap, "Mem") If $iSize = 0 Then $iSize = DllStructGetData($tMemMap, "Size") Return _WinAPI_WriteProcessMemory(DllStructGetData($tMemMap, "hProc"), $pDest, $pSrce, $iSize, $iWritten, $sSrce) EndFunc ;==>_MemWrite Is it my computer, or is there a general problem (I never have memory problems with any other programs)?It's not meant for external use. Unless you know exactly what your doing, I'd quit now... Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version!
ToyleY Posted February 13, 2008 Posted February 13, 2008 It's not me using Memory.au3. It is called from line 671 in GuiRichEdit.au3._MemWrite ($struct_MemMap, $TextRange_ptr)Oh well -- And I donated $3 to Autoit yesterday, as an offering to the gods to try to get an answer.
martin Posted February 13, 2008 Posted February 13, 2008 It's not me using Memory.au3. It is called from line 671 in GuiRichEdit.au3. _MemWrite ($struct_MemMap, $TextRange_ptr) Oh well -- And I donated $3 to Autoit yesterday, as an offering to the gods to try to get an answer. It might be worth reloading GuiRichEdit.au3 in case something is out of date with it because the one in gafrost's thread has that at line 670 not 671. Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.
Siao Posted February 13, 2008 Posted February 13, 2008 @ToyleYAnd if what Martin said doesn't fix the issue, post a small script which reproduces the problem, not just a snippet of some function which you think causes the problem (because if you need help, that often means your line of thinking isn't correct, otherwise you wouldn't need help to begin with ). That greatly improves chances of getting help. Nothing's 100% guaranteed, but still, better chance. "be smart, drink your wine"
Oldschool Posted March 1, 2008 Posted March 1, 2008 @syronSince you found the include, I'm surprised you have not seen this from the same thread:expandcollapse popup;Include my _Memory() functions #include <Memory.au3> ;Get the process ID Global $ProcessID = WinGetProcess("window_name");or however you want to get it _ReadUsingPointers () Func _ReadUsingPointers () ;define local variables Local $Data, $Pointer_1, $Pointer_2, $Pointer_3 Local $StaticAddress = 0x6FBCBB60 ;input static address in hex Local $Offset1 = 56 ;enter offsets in decimal, not hex Local $Offset2 = 200 Local $Offset3 = 40 ;Open the process Local $DllHandle = _MemoryOpen($ProcessID) ;Read the process $Data = _MemoryRead($StaticAddress, $DllHandle) ;data returned is in decimal and must be combined ;with the offset for the next _MemoryRead(). $Pointer_1 = '0x' & hex($Data + $Offset1) $Data = _MemoryRead($Pointer_1, $DllHandle) ;repeat $Pointer_2 = '0x' & hex($Data + $Offset2) $Data = _MemoryRead($Pointer_2, $DllHandle) ;repeat... $Pointer_3 = '0x' & hex($Data + $Offset3) $Data = _MemoryRead($Pointer_3, $DllHandle) ;continue repeating until you get to the desired data ;can use either way ;MsgBox(4096, "Data Read", $Data) MsgBox(4096, "Data Read", _MemoryRead($Pointer_3, $DllHandle)) ;Close the process _MemoryClose($DllHandle) EndFunchttp://www.autoitscript.com/forum/index.php?showtopic=28351Or if you have already figured out your own solution, please do share...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now