2010-12-23 3 views
0

Ich versuche, Text von der Listview eines anderen Prozesses zu lesen. Bisher konnte ich die Anzahl der Zeilen und Spalten ermitteln. Jetzt möchte ich durch jede Zelle gehen und sie lesen. Ich habe ein wenig Nachforschungen angestellt, und ich fand, dass ich SendMessage verwenden musste, um das LVITEM jeder Zelle zu erhalten. Ich denke, LVITEM.iItem muss die Zeile # sein, und LVITEM.iSubItem muss die Spalte # sein. Auch wie würde ich gehen, um den Text in meinen char * zu bekommen. Ich habe einige Beispiele mit CString :: GetBuffer gesehen. Aber ich bin in c, also habe ich das nicht, gibt es ein Äquivalent oder eine andere Möglichkeit, das zu tun?Erhalte Text von LVITEM mit LVM_GETITEM und SendMessage in C

char* itemText; 

LVITEM itemInfo = {0}; 
itemInfo.iItem = r; // r is an int. this should be row # right? 
itemInfo.iSubItem = c; // c is an int, this should be the column # right? 
itemInfo.mask = LVIF_TEXT; 
itemInfo.cchTextMax = 256; 
itemInfo.pszText = itemText; 
SendMessage(procList, 0x1005, 0, (LPARAM)&itemInfo); 

Antwort

1

Da der Speicherblock, der den Text enthält, die von dem anderen Prozess gehört, müssen Sie ein paar Tricks ziehen Sie den Text aus dem Prozess in Ihrem Prozess zu ordnen.

Hier ist ein Blogbeitrag, den ich im Jahr 2004 gemacht habe, um zu zeigen, wie das gemacht werden kann. Vorsicht, Sie müssen Administratorrechte haben, um dies zu tun.

http://taylorza.blogspot.com/2009/08/archive-hacking-my-way-across-process.html

+0

Ordnung, die nicht zu hart aussieht. Vielen Dank! Wie würde ich wählen, welche Zelle ich lesen soll? Ist es so, wie ich es in meinem Beispiel gezeigt habe, oder habe ich etwas falsch gemacht? – Lienau

+0

@Lienau, ja, Sie verwenden das iSubItem-Mitglied, um anzugeben, an welchem ​​Unterelement (Spalte) Sie interessiert sind. Ich würde vorschlagen, dass Sie den Code in Ihrem eigenen Prozess zuerst mit einer lokalen ListView und dann den Code zum Behandeln der Marshalling, auf diese Weise kennen Sie jeden Schritt des Weges, was funktioniert und wann es bricht. –

Verwandte Themen