2011-08-16 11 views
2

我有一個ac#應用程序讀取(感謝這個論壇)的本機Windows應用程序的值通過win32 API,我可以從所有文本類的編輯框,但有一些數據顯示在SysListView32控件中,我可以獲取該句柄。通過Win32 API你將如何獲得一個類SysListView32的價值

所以給定的句柄如何獲得列表視圖中的數據?

感謝

+0

@Hans你是完全正確的。 LVM_GETITEM傳遞一個在當前進程外無效的指針,所以它不是我希望的快速解決方案。 –

回答

2
VirtualAllocEx 
WriteProcessMemory to initlize LVITEM 
SendMessage(hwnd, LVM_GETITEM, WPARAM, LPARAM) 
ReadProcessMemory 
VirtualFreeEx 
  1. 需要分配/釋放額外的緩衝區,如果文本包含
  2. 在Windows Mobile不工作
  3. 無法跨平臺工作,你需要編譯x86和x64目標爲32位和64位進程),並以正確的位數封送API。
  4. 如果被UIPI阻止,則不起作用。
  5. 有目標進程
+0

謝謝你,這聽起來有點超出我的技能水平:(所以我想我會嘗試一種不同的做事方式,它需要用戶做更多的步驟,但它會更可靠..謝謝你您的幫助。 – Adrian

0

一個更容易的方法是將inject a DLL,那麼這顯然是在上述過程中的競爭條件。