2013-08-15 2 views
0

Я пытаюсь получить ListView от стороннего приложения, вот как я пытаюсь выполнить этуПолучить ListView из приложения третьей партии

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] 
    static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, StringBuilder lParam); 
    const int LVM_GETITEMCOUNT = 0x018B; 
    const int LVM_GETITEMTEXT = 0x0189; 

    // Get ListBox contents hwnd 
    private List<string> GetListViewContents(IntPtr listviewHwnd) 
    { 
     int cnt = (int)SendMessage(listviewHwnd, LVM_GETITEMCOUNT, IntPtr.Zero, null); 
     List<string> listViewContents = new List<string>(); 
     for (int i = 0; i < cnt; i++) 
     { 
      StringBuilder sb = new StringBuilder(256); 
      IntPtr getText = SendMessage(listviewHwnd, LVM_GETITEMTEXT, (IntPtr)i, sb); 
      listViewContents.Add(sb.ToString()); 
     } 
     return listViewContents; 
    } 

Затем я использую UISpy получить дескриптор для ListView свойства в приложении и используйте следующий код для заполнения списка моих приложений:

 IntPtr ks = new IntPtr(0x00040FA8); // temp handle for the 3rd party listview 
    listBox1.DataSource = GetListViewContents(ks); 

Данных не найдено, в чем проблема?

ответ

Смежные вопросы