本文整理汇总了Python中winKernel.readProcessMemory函数的典型用法代码示例。如果您正苦于以下问题:Python readProcessMemory函数的具体用法?Python readProcessMemory怎么用?Python readProcessMemory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了readProcessMemory函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: _getTextRange
def _getTextRange(self,start,end):
if self.obj.editAPIVersion>=2:
bufLen=((end-start)+1)*2
if self.obj.isWindowUnicode:
textRange=TextRangeUStruct()
else:
textRange=TextRangeAStruct()
textRange.chrg.cpMin=start
textRange.chrg.cpMax=end
processHandle=self.obj.processHandle
internalBuf=winKernel.virtualAllocEx(processHandle,None,bufLen,winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
textRange.lpstrText=internalBuf
internalTextRange=winKernel.virtualAllocEx(processHandle,None,ctypes.sizeof(textRange),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
winKernel.writeProcessMemory(processHandle,internalTextRange,ctypes.byref(textRange),ctypes.sizeof(textRange),None)
res=watchdog.cancellableSendMessage(self.obj.windowHandle,EM_GETTEXTRANGE,0,internalTextRange)
finally:
winKernel.virtualFreeEx(processHandle,internalTextRange,0,winKernel.MEM_RELEASE)
buf=(ctypes.c_byte*bufLen)()
winKernel.readProcessMemory(processHandle,internalBuf,buf,bufLen,None)
finally:
winKernel.virtualFreeEx(processHandle,internalBuf,0,winKernel.MEM_RELEASE)
if self.obj.isWindowUnicode or (res>1 and (buf[res]!=0 or buf[res+1]!=0)):
text=ctypes.cast(buf,ctypes.c_wchar_p).value
else:
text=unicode(ctypes.cast(buf,ctypes.c_char_p).value, errors="replace", encoding=locale.getlocale()[1])
# #4095: Some protected richEdit controls do not hide their password characters.
# We do this specifically.
# Note that protected standard edit controls get characters hidden in _getStoryText.
if text and controlTypes.STATE_PROTECTED in self.obj.states:
text=u'*'*len(text)
else:
text=self._getStoryText()[start:end]
return text
开发者ID:JamaicanUser,项目名称:nvda,代码行数:35,代码来源:edit.py
示例2: _getTextRange
def _getTextRange(self,start,end):
if self.obj.editAPIVersion>=2:
bufLen=((end-start)+1)*2
if self.obj.isWindowUnicode:
textRange=TextRangeUStruct()
else:
textRange=TextRangeAStruct()
textRange.chrg.cpMin=start
textRange.chrg.cpMax=end
processHandle=self.obj.processHandle
internalBuf=winKernel.virtualAllocEx(processHandle,None,bufLen,winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
textRange.lpstrText=internalBuf
internalTextRange=winKernel.virtualAllocEx(processHandle,None,ctypes.sizeof(textRange),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
winKernel.writeProcessMemory(processHandle,internalTextRange,ctypes.byref(textRange),ctypes.sizeof(textRange),None)
res=watchdog.cancellableSendMessage(self.obj.windowHandle,EM_GETTEXTRANGE,0,internalTextRange)
finally:
winKernel.virtualFreeEx(processHandle,internalTextRange,0,winKernel.MEM_RELEASE)
buf=(ctypes.c_byte*bufLen)()
winKernel.readProcessMemory(processHandle,internalBuf,buf,bufLen,None)
finally:
winKernel.virtualFreeEx(processHandle,internalBuf,0,winKernel.MEM_RELEASE)
if self.obj.isWindowUnicode or (res>1 and (buf[res]!=0 or buf[res+1]!=0)):
text=ctypes.cast(buf,ctypes.c_wchar_p).value
else:
text=unicode(ctypes.cast(buf,ctypes.c_char_p).value, errors="replace", encoding=locale.getlocale()[1])
else:
text=self._getStoryText()[start:end]
return text
开发者ID:sonar-gnu-linux,项目名称:nvda,代码行数:30,代码来源:edit.py
示例3: _getTextRange
def _getTextRange(self, start, end):
bufLen = (end - start) + 1
textRange = TextRangeStruct()
textRange.chrg.cpMin = start
textRange.chrg.cpMax = end
processHandle = self.obj.processHandle
internalBuf = winKernel.virtualAllocEx(
processHandle, None, bufLen, winKernel.MEM_COMMIT, winKernel.PAGE_READWRITE
)
try:
textRange.lpstrText = internalBuf
internalTextRange = winKernel.virtualAllocEx(
processHandle, None, ctypes.sizeof(textRange), winKernel.MEM_COMMIT, winKernel.PAGE_READWRITE
)
try:
winKernel.writeProcessMemory(
processHandle, internalTextRange, ctypes.byref(textRange), ctypes.sizeof(textRange), None
)
watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_GETTEXTRANGE, 0, internalTextRange)
finally:
winKernel.virtualFreeEx(processHandle, internalTextRange, 0, winKernel.MEM_RELEASE)
buf = ctypes.create_string_buffer(bufLen)
winKernel.readProcessMemory(processHandle, internalBuf, buf, bufLen, None)
finally:
winKernel.virtualFreeEx(processHandle, internalBuf, 0, winKernel.MEM_RELEASE)
cp = watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_GETCODEPAGE, 0, 0)
if cp == SC_CP_UTF8:
return unicode(buf.value, errors="replace", encoding="utf-8")
else:
return unicode(buf.value, errors="replace", encoding=locale.getlocale()[1])
开发者ID:daisymax,项目名称:nvda,代码行数:30,代码来源:scintilla.py
示例4: _getLineNumFromOffset
def _getLineNumFromOffset(self,offset):
ciChar=AECHARINDEX()
processHandle=self.obj.processHandle
internalCiChar=winKernel.virtualAllocEx(processHandle,None,ctypes.sizeof(ciChar),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
winUser.sendMessage(self.obj.windowHandle,AEM_RICHOFFSETTOINDEX,offset,internalCiChar)
winKernel.readProcessMemory(processHandle,internalCiChar,ctypes.byref(ciChar),ctypes.sizeof(ciChar),None)
winKernel.virtualFreeEx(processHandle,internalCiChar,0,winKernel.MEM_RELEASE)
return ciChar.nLine
开发者ID:atsuoishimoto,项目名称:tweetitloud,代码行数:8,代码来源:akelEdit.py
示例5: _get__columnOrderArray
def _get__columnOrderArray(self):
coa=(c_int *self.columnCount)()
processHandle=self.processHandle
internalCoa=winKernel.virtualAllocEx(processHandle,None,sizeof(coa),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
winKernel.writeProcessMemory(processHandle,internalCoa,byref(coa),sizeof(coa),None)
res = watchdog.cancellableSendMessage(self.windowHandle,LVM_GETCOLUMNORDERARRAY, self.columnCount, internalCoa)
if res:
winKernel.readProcessMemory(processHandle,internalCoa,byref(coa),sizeof(coa),None)
finally:
winKernel.virtualFreeEx(processHandle,internalCoa,0,winKernel.MEM_RELEASE)
return coa
开发者ID:KarishmaChanglani,项目名称:nvda,代码行数:12,代码来源:sysListView32.py
示例6: _getColumnImageIDRaw
def _getColumnImageIDRaw(self, index):
processHandle=self.processHandle
internalItem=winKernel.virtualAllocEx(processHandle,None,sizeof(self.LVITEM),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
item=self.LVITEM(iItem=self.IAccessibleChildID-1,mask=LVIF_IMAGE|LVIF_COLUMNS,iSubItem=index)
winKernel.writeProcessMemory(processHandle,internalItem,byref(item),sizeof(self.LVITEM),None)
item.mask=LVIF_IMAGE|LVIF_COLUMNS
winKernel.writeProcessMemory(processHandle,internalItem,byref(item),sizeof(self.LVITEM),None)
watchdog.cancellableSendMessage(self.windowHandle,LVM_GETITEMW, 0, internalItem)
winKernel.readProcessMemory(processHandle,internalItem,byref(item),sizeof(item),None)
finally:
winKernel.virtualFreeEx(processHandle,internalItem,0,winKernel.MEM_RELEASE)
return item.iImage
开发者ID:BabbageCom,项目名称:nvda,代码行数:13,代码来源:sysListView32.py
示例7: _getColumnLocationRaw
def _getColumnLocationRaw(self,index):
processHandle=self.processHandle
localRect=RECT(left=2,top=index)
internalRect=winKernel.virtualAllocEx(processHandle,None,sizeof(localRect),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
winKernel.writeProcessMemory(processHandle,internalRect,byref(localRect),sizeof(localRect),None)
watchdog.cancellableSendMessage(self.windowHandle,LVM_GETSUBITEMRECT, (self.IAccessibleChildID-1), internalRect)
winKernel.readProcessMemory(processHandle,internalRect,byref(localRect),sizeof(localRect),None)
finally:
winKernel.virtualFreeEx(processHandle,internalRect,0,winKernel.MEM_RELEASE)
windll.user32.ClientToScreen(self.windowHandle,byref(localRect))
windll.user32.ClientToScreen(self.windowHandle,byref(localRect,8))
return (localRect.left,localRect.top,localRect.right-localRect.left,localRect.bottom-localRect.top)
开发者ID:KarishmaChanglani,项目名称:nvda,代码行数:13,代码来源:sysListView32.py
示例8: _getFormatFieldAndOffsets
def _getFormatFieldAndOffsets(self, offset, formatConfig, calculateOffsets=True):
style = watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_GETSTYLEAT, offset, 0)
if calculateOffsets:
# we need to manually see how far the style goes, limit to line
lineStart, lineEnd = self._getLineOffsets(offset)
startOffset = offset
while startOffset > lineStart:
curStyle = watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_GETSTYLEAT, startOffset - 1, 0)
if curStyle == style:
startOffset -= 1
else:
break
endOffset = offset + 1
while endOffset < lineEnd:
curStyle = watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_GETSTYLEAT, endOffset, 0)
if curStyle == style:
endOffset += 1
else:
break
else:
startOffset, endOffset = (self._startOffset, self._endOffset)
formatField = textInfos.FormatField()
if formatConfig["reportFontName"]:
# To get font name, We need to allocate memory with in Scintilla's process, and then copy it out
fontNameBuf = ctypes.create_string_buffer(32)
internalBuf = winKernel.virtualAllocEx(
self.obj.processHandle, None, len(fontNameBuf), winKernel.MEM_COMMIT, winKernel.PAGE_READWRITE
)
try:
watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_STYLEGETFONT, style, internalBuf)
winKernel.readProcessMemory(self.obj.processHandle, internalBuf, fontNameBuf, len(fontNameBuf), None)
finally:
winKernel.virtualFreeEx(self.obj.processHandle, internalBuf, 0, winKernel.MEM_RELEASE)
formatField["font-name"] = fontNameBuf.value
if formatConfig["reportFontSize"]:
formatField["font-size"] = "%spt" % watchdog.cancellableSendMessage(
self.obj.windowHandle, SCI_STYLEGETSIZE, style, 0
)
if formatConfig["reportLineNumber"]:
formatField["line-number"] = self._getLineNumFromOffset(offset) + 1
if formatConfig["reportFontAttributes"]:
formatField["bold"] = bool(
watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_STYLEGETBOLD, style, 0)
)
formatField["italic"] = bool(
watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_STYLEGETITALIC, style, 0)
)
formatField["underline"] = bool(
watchdog.cancellableSendMessage(self.obj.windowHandle, SCI_STYLEGETUNDERLINE, style, 0)
)
return formatField, (startOffset, endOffset)
开发者ID:daisymax,项目名称:nvda,代码行数:51,代码来源:scintilla.py
示例9: _get_name
def _get_name(self):
curIndex=watchdog.cancellableSendMessage(hwndWinamp,WM_WA_IPC,-1,IPC_PLAYLIST_GET_NEXT_SELECTED)
if curIndex <0:
return None
info=fileinfo2()
info.fileindex=curIndex
internalInfo=winKernel.virtualAllocEx(self.processHandle,None,sizeof(info),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
winKernel.writeProcessMemory(self.processHandle,internalInfo,byref(info),sizeof(info),None)
watchdog.cancellableSendMessage(self.windowHandle,WM_WA_IPC,IPC_PE_GETINDEXTITLE,internalInfo)
winKernel.readProcessMemory(self.processHandle,internalInfo,byref(info),sizeof(info),None)
finally:
winKernel.virtualFreeEx(self.processHandle,internalInfo,0,winKernel.MEM_RELEASE)
return unicode("%d.\t%s\t%s"%(curIndex+1,info.filetitle,info.filelength), errors="replace", encoding=locale.getlocale()[1])
开发者ID:Alain-Ambazac,项目名称:nvda,代码行数:14,代码来源:winamp.py
示例10: _getSelectionOffsets
def _getSelectionOffsets(self):
if self.obj.editAPIVersion>=1:
charRange=CharRangeStruct()
processHandle=self.obj.processHandle
internalCharRange=winKernel.virtualAllocEx(processHandle,None,ctypes.sizeof(charRange),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
winUser.sendMessage(self.obj.windowHandle,EM_EXGETSEL,0, internalCharRange)
winKernel.readProcessMemory(processHandle,internalCharRange,ctypes.byref(charRange),ctypes.sizeof(charRange),None)
winKernel.virtualFreeEx(processHandle,internalCharRange,0,winKernel.MEM_RELEASE)
return (charRange.cpMin,charRange.cpMax)
else:
start=ctypes.c_uint()
end=ctypes.c_uint()
res=winUser.sendMessage(self.obj.windowHandle,EM_GETSEL,ctypes.byref(start),ctypes.byref(end))
return start.value,end.value
开发者ID:atsuoishimoto,项目名称:tweetitloud,代码行数:14,代码来源:edit.py
示例11: _get_name
def _get_name(self):
hItem=winUser.sendMessage(self.windowHandle,CLM_GETSELECTION,0,0)
internalBuf=winKernel.virtualAllocEx(self.processHandle,None,MAXITEMTEXTLEN,winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
winUser.sendMessage(self.windowHandle,CLM_GETITEMTEXT,hItem,internalBuf)
buf=create_unicode_buffer(MAXITEMTEXTLEN)
winKernel.readProcessMemory(self.processHandle,internalBuf,buf,MAXITEMTEXTLEN,None)
text=buf.value
statusMsgPtr=winUser.sendMessage(self.windowHandle,CLM_GETSTATUSMSG,hItem,0)
if statusMsgPtr>0:
buf2=create_unicode_buffer(MAXSTATUSMSGLEN)
winKernel.readProcessMemory(self.processHandle,statusMsgPtr,buf2,MAXSTATUSMSGLEN,None)
text="%s %s"%(text,buf2.value)
winKernel.virtualFreeEx(self.processHandle,internalBuf,0,winKernel.MEM_RELEASE)
return text
开发者ID:atsuoishimoto,项目名称:tweetitloud,代码行数:14,代码来源:miranda32.py
示例12: _getCharFormat
def _getCharFormat(self,offset):
oldSel=self._getSelectionOffsets()
if oldSel!=(offset,offset+1):
self._setSelectionOffsets(offset,offset+1)
if self.obj.isWindowUnicode:
charFormatStruct=CharFormat2WStruct
else:
charFormatStruct=CharFormat2AStruct
charFormat=charFormatStruct()
charFormat.cbSize=ctypes.sizeof(charFormatStruct)
processHandle=self.obj.processHandle
internalCharFormat=winKernel.virtualAllocEx(processHandle,None,ctypes.sizeof(charFormat),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
winKernel.writeProcessMemory(processHandle,internalCharFormat,ctypes.byref(charFormat),ctypes.sizeof(charFormat),None)
winUser.sendMessage(self.obj.windowHandle,EM_GETCHARFORMAT,SCF_SELECTION, internalCharFormat)
winKernel.readProcessMemory(processHandle,internalCharFormat,ctypes.byref(charFormat),ctypes.sizeof(charFormat),None)
winKernel.virtualFreeEx(processHandle,internalCharFormat,0,winKernel.MEM_RELEASE)
if oldSel!=(offset,offset+1):
self._setSelectionOffsets(oldSel[0],oldSel[1])
return charFormat
开发者ID:atsuoishimoto,项目名称:tweetitloud,代码行数:19,代码来源:edit.py
示例13: _get_lvAppImageID
def _get_lvAppImageID(self):
item=LVItemStruct(iItem=self.IAccessibleChildID-1,mask=LVIF_IMAGE)
(processID,threadID)=winUser.getWindowThreadProcessID(self.windowHandle)
processHandle=self.processHandle
internalItem=winKernel.virtualAllocEx(processHandle,None,sizeof(LVItemStruct),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
winKernel.writeProcessMemory(processHandle,internalItem,byref(item),sizeof(LVItemStruct),None)
winUser.sendMessage(self.windowHandle,LVM_GETITEM,0,internalItem)
dispInfo=NMLVDispInfoStruct()
dispInfo.item=internalItem
dispInfo.hdr.hwndFrom=self.windowHandle
dispInfo.hdr.idFrom=self.windowControlID
dispInfo.hdr.code=LVN_GETDISPINFO
internalDispInfo=winKernel.virtualAllocEx(processHandle,None,sizeof(NMLVDispInfoStruct),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
winKernel.writeProcessMemory(processHandle,internalDispInfo,byref(dispInfo),sizeof(NMLVDispInfoStruct),None)
winUser.sendMessage(self.parent.parent.windowHandle,winUser.WM_NOTIFY,LVN_GETDISPINFO,internalDispInfo)
winKernel.virtualFreeEx(processHandle,internalDispInfo,0,winKernel.MEM_RELEASE)
winKernel.readProcessMemory(processHandle,internalItem,byref(item),sizeof(LVItemStruct),None)
winKernel.virtualFreeEx(processHandle,internalItem,0,winKernel.MEM_RELEASE)
return item.iImage
开发者ID:atsuoishimoto,项目名称:tweetitloud,代码行数:19,代码来源:sysListView32.py
示例14: _getPointFromOffset
def _getPointFromOffset(self,offset):
if self.obj.editAPIVersion==1 or self.obj.editAPIVersion>=3:
processHandle=self.obj.processHandle
internalP=winKernel.virtualAllocEx(processHandle,None,ctypes.sizeof(PointLStruct),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
p=PointLStruct(0,0)
winKernel.writeProcessMemory(processHandle,internalP,ctypes.byref(p),ctypes.sizeof(p),None)
watchdog.cancellableSendMessage(self.obj.windowHandle,EM_POSFROMCHAR,internalP,offset)
winKernel.readProcessMemory(processHandle,internalP,ctypes.byref(p),ctypes.sizeof(p),None)
finally:
winKernel.virtualFreeEx(processHandle,internalP,0,winKernel.MEM_RELEASE)
point=textInfos.Point(p.x,p.y)
else:
res=watchdog.cancellableSendMessage(self.obj.windowHandle,EM_POSFROMCHAR,offset,None)
point=textInfos.Point(winUser.LOWORD(res),winUser.HIWORD(res))
(left,top,width,height)=self.obj.location
point.x=point.x+left
point.y=point.y+top
return point
开发者ID:sonar-gnu-linux,项目名称:nvda,代码行数:19,代码来源:edit.py
示例15: _getColumnHeaderRaw
def _getColumnHeaderRaw(self,index):
buffer=None
processHandle=self.processHandle
internalColumn=winKernel.virtualAllocEx(processHandle,None,sizeof(self.LVCOLUMN),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
internalText=winKernel.virtualAllocEx(processHandle,None,CBEMAXSTRLEN*2,winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
column=self.LVCOLUMN(mask=LVCF_TEXT,iSubItem=index,pszText=internalText,cchTextMax=CBEMAXSTRLEN)
winKernel.writeProcessMemory(processHandle,internalColumn,byref(column),sizeof(self.LVCOLUMN),None)
res = watchdog.cancellableSendMessage(self.windowHandle,LVM_GETCOLUMNW, index, internalColumn)
if res:
winKernel.readProcessMemory(processHandle,internalColumn,byref(column),sizeof(self.LVCOLUMN),None)
buffer=create_unicode_buffer(column.cchTextMax)
winKernel.readProcessMemory(processHandle,column.pszText,buffer,sizeof(buffer),None)
finally:
winKernel.virtualFreeEx(processHandle,internalText,0,winKernel.MEM_RELEASE)
finally:
winKernel.virtualFreeEx(processHandle,internalColumn,0,winKernel.MEM_RELEASE)
return buffer.value if buffer else None
开发者ID:KarishmaChanglani,项目名称:nvda,代码行数:19,代码来源:sysListView32.py
示例16: _getColumnContentRaw
def _getColumnContentRaw(self, index):
buffer=None
processHandle=self.processHandle
internalItem=winKernel.virtualAllocEx(processHandle,None,sizeof(self.LVITEM),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
internalText=winKernel.virtualAllocEx(processHandle,None,CBEMAXSTRLEN*2,winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
item=self.LVITEM(iItem=self.IAccessibleChildID-1,mask=LVIF_TEXT|LVIF_COLUMNS,iSubItem=index,pszText=internalText,cchTextMax=CBEMAXSTRLEN)
winKernel.writeProcessMemory(processHandle,internalItem,byref(item),sizeof(self.LVITEM),None)
len = watchdog.cancellableSendMessage(self.windowHandle,LVM_GETITEMTEXTW, (self.IAccessibleChildID-1), internalItem)
if len:
winKernel.readProcessMemory(processHandle,internalItem,byref(item),sizeof(self.LVITEM),None)
buffer=create_unicode_buffer(len)
winKernel.readProcessMemory(processHandle,item.pszText,buffer,sizeof(buffer),None)
finally:
winKernel.virtualFreeEx(processHandle,internalText,0,winKernel.MEM_RELEASE)
finally:
winKernel.virtualFreeEx(processHandle,internalItem,0,winKernel.MEM_RELEASE)
return buffer.value if buffer else None
开发者ID:KarishmaChanglani,项目名称:nvda,代码行数:19,代码来源:sysListView32.py
示例17: _getColumnLocationRaw
def _getColumnLocationRaw(self,index):
assert index>0, "Invalid index: %d" % index
processHandle=self.processHandle
# LVM_GETSUBITEMRECT requires a pointer to a RECT structure that will receive the subitem bounding rectangle information.
localRect=RECT(
left=LVIR_LABEL, # Returns the bounding rectangle of the entire item, including the icon and label
top=index # The one-based index of the subitem
)
internalRect=winKernel.virtualAllocEx(processHandle,None,sizeof(localRect),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
winKernel.writeProcessMemory(processHandle,internalRect,byref(localRect),sizeof(localRect),None)
watchdog.cancellableSendMessage(self.windowHandle,LVM_GETSUBITEMRECT, (self.IAccessibleChildID-1), internalRect)
winKernel.readProcessMemory(processHandle,internalRect,byref(localRect),sizeof(localRect),None)
finally:
winKernel.virtualFreeEx(processHandle,internalRect,0,winKernel.MEM_RELEASE)
# #8268: this might be a malformed rectangle
# (i.e. with a left coordinate that is greather than the right coordinate).
left = min(localRect.left, localRect.right)
top = min(localRect.top, localRect.bottom)
right = max(localRect.left, localRect.right)
bottom = max(localRect.top, localRect.bottom)
return RectLTRB(left, top, right, bottom).toScreen(self.windowHandle).toLTWH()
开发者ID:BabbageCom,项目名称:nvda,代码行数:22,代码来源:sysListView32.py
示例18: _getPointFromOffset
def _getPointFromOffset(self,offset):
if self.obj.editAPIVersion==1 or self.obj.editAPIVersion>=3:
processHandle=self.obj.processHandle
internalP=winKernel.virtualAllocEx(processHandle,None,ctypes.sizeof(PointLStruct),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
try:
p=PointLStruct(0,0)
winKernel.writeProcessMemory(processHandle,internalP,ctypes.byref(p),ctypes.sizeof(p),None)
watchdog.cancellableSendMessage(self.obj.windowHandle,winUser.EM_POSFROMCHAR,internalP,offset)
winKernel.readProcessMemory(processHandle,internalP,ctypes.byref(p),ctypes.sizeof(p),None)
finally:
winKernel.virtualFreeEx(processHandle,internalP,0,winKernel.MEM_RELEASE)
point=textInfos.Point(p.x,p.y)
else:
res=watchdog.cancellableSendMessage(self.obj.windowHandle,winUser.EM_POSFROMCHAR,offset,None)
point=textInfos.Point(winUser.GET_X_LPARAM(res),winUser.GET_Y_LPARAM(res))
# A returned coordinate can be a negative value if
# the specified character is not displayed in the edit control's client area.
# If the specified index is greater than the index of the last character in the control,
# the control returns -1.
if point.x <0 or point.y <0:
raise LookupError("Point with client coordinates x=%d, y=%d not within client area of object" %
(point.x, point.y))
point.x, point.y = winUser.ClientToScreen(self.obj.windowHandle, point.x, point.y)
return point
开发者ID:BabbageCom,项目名称:nvda,代码行数:24,代码来源:edit.py
示例19: getListGroupInfo
def getListGroupInfo(windowHandle,groupIndex):
(processID,threadID)=winUser.getWindowThreadProcessID(windowHandle)
processHandle=oleacc.GetProcessHandleFromHwnd(windowHandle)
localInfo=LVGROUP()
localInfo.cbSize=sizeof(LVGROUP)
localInfo.mask=LVGF_HEADER|LVGF_FOOTER|LVGF_STATE|LVGF_ALIGN|LVGF_GROUPID
localInfo.stateMask=0xffffffff
remoteInfo=winKernel.virtualAllocEx(processHandle,None,sizeof(LVGROUP),winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
winKernel.writeProcessMemory(processHandle,remoteInfo,byref(localInfo),sizeof(LVGROUP),None)
messageRes=winUser.sendMessage(windowHandle,LVM_GETGROUPINFOBYINDEX,groupIndex,remoteInfo)
winKernel.readProcessMemory(processHandle,remoteInfo,byref(localInfo),sizeof(LVGROUP),None)
winKernel.virtualFreeEx(processHandle,remoteInfo,0,winKernel.MEM_RELEASE)
localHeader=create_unicode_buffer(localInfo.cchHeader)
winKernel.readProcessMemory(processHandle,localInfo.pszHeader,localHeader,localInfo.cchHeader*2,None)
localFooter=create_unicode_buffer(localInfo.cchFooter)
winKernel.readProcessMemory(processHandle,localInfo.pszFooter,localFooter,localInfo.cchFooter*2,None)
winKernel.closeHandle(processHandle)
if messageRes==1:
return dict(header=localHeader.value,footer=localFooter.value,groupID=localInfo.iGroupId,state=localInfo.state,uAlign=localInfo.uAlign,groupIndex=groupIndex)
else:
return None
开发者ID:atsuoishimoto,项目名称:tweetitloud,代码行数:21,代码来源:sysListView32.py
注:本文中的winKernel.readProcessMemory函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论