2011-08-16 2 views
2

win32 API를 통해 네이티브 Windows 응용 프로그램의 값을 (이 포럼에 감사와 함께) 읽는 aC# 응용 프로그램이 있는데, 나는 모든 텍스트를 얻을 수 있습니다. 상자 클래스의 편집하지만 일부 데이터는 핸들을 얻을 수있는 SysListView32 컨트롤에 표시됩니다.Win32 API를 통해 당신은 어떻게 SysListView32 클래스의 가치를 얻을 수 있습니까?

그래서 주어진 핸들을 통해 목록보기에서 데이터를 가져 옵니까?

감사

+0

@ 한스 당신은 완전히 옳습니다. LVM_GETITEM은 현재 프로세스 외부에서 유효하지 않은 포인터를 전달하기 때문에 내가 원하는 바가 아닌 빠른 해결책입니다. –

답변

2
VirtualAllocEx 
WriteProcessMemory to initlize LVITEM 
SendMessage(hwnd, LVM_GETITEM, WPARAM, LPARAM) 
ReadProcessMemory 
VirtualFreeEx 
  1. 텍스트가
  2. 이 플랫폼에서 작동하지 않습니다 윈도우 모바일에서 작동하지 않습니다
  3. 포함되어있는 경우/무료 추가 버퍼를 할당 할 필요는, 당신은 x86 및 x64을 컴파일해야 32 및 64 비트 프로세스의 타겟) 올바른 비트 수를 사용하여 API를 마샬링합니다.
  4. UIPI에 의해 차단 된 경우 작동하지 않습니다.
  5. 는 분명 상기 프로세스 내에서 될 대상 프로세스
+0

고마워요, 이건 내 기술 수준을 조금 넘는 소리가 나네. (그래서 나는 일을하는 다른 방법을 시도 할거야. 사용자가 여분의 몇 단계를해야하지만 더 신뢰할 수있을 것입니다 .. 고마워요. 너의 도움으로. – Adrian

0

중 파 쉬운 방법은 inject a DLL하는 것과 경쟁 조건을 가지고.

관련 문제