Frage

TL; DR: Wenn ein Programms gerade Eigenschaften Datagridview-Kontrolle des ManagedSpy mit bewirkt, dass es das Programm in seinen Datagridview-Daten als XML in seinem Speicher zuweisen. Wie kann ich die gleiche Sache veranlassen, von meinem Programm geschehen? (Es ist nicht ganz ein Datagridview, die Steuerung genannt wird Infragistics.Win.UltraWinGrid.UltraGrid)

Full Story:

Ich bin mit ManagedSpy ( http://msdn.microsoft.com /en-us/magazine/cc163617.aspx ) auf einem Programm auszuspionieren, dass wir als DataProgram beziehen werde. Bitte beachten Sie Abbildung 2 auf dieser Seite für einen Screenshot von ManagedSpy.

hat DataProgram ein Datagridview-ish voller Informationen, die ich brauche. Es hat auch eine Option, dass Informationen in eine Excel-Datei zu exportieren. Ich würde eher die Möglichkeit haben, es zu CSV in meine Zwischenablage zu exportieren.

Wenn ich DataProgram die Kontrollen auf ManagedSpy des treeview zu Fuß durch, kann ich die genaue Datagridview feststellen, dass ich die Informationen von benötigen. Ich weiß, es ist die richtige, weil ich es mit der rechten Maustaste und „Schaufenster“ wählen und es wird ein Feld um die Steuerung zu blinken.

Hier ist der seltsame Teil: Recht, wenn ich einen Linksklick es seine Eigenschaften auf der rechten Seite von ManagedSpy der Fenster zu sehen, passiert etwas Magisches. Die gesamte Tabelle ist innerhalb DataProgram Speicher als XML zugeordnet, so dass mit Hilfe eines Memory-Scanner kann ich sehen, dass die ganze Tisch vor meinen Augen genau dort ist ... und dann wird der Garbage Collector nimmt es weg. Aber es ist es für einige gut 30 Sekunden oder so (natürlich variiert, mit der GC ist nicht deterministisch). By the way, ist die Steuerklasse Infragistics.Win.UltraWinGrid.UltraGrid, und es ist wie ein aufgepeppt Datagridview (Ich stelle mir vor).

Hier ist meine Frage: Wie man sehen kann ich DataProgram will Speicher genau an der Stelle lesen zugewiesen hat es die XML-Tabelle. Ich weiß, wie die Erinnerung bereits lesen (mit Readprocessmemory). Ich möchte lernen, wie ich DataProgram auslösen können, dass die XML-Tabelle aus meinem Programm zuzuweisen wie ManagedSpy tut. Wohlgemerkt, ist ManagedSpy Quellcode von der Website zur Verfügung, aber ich bin nicht in der Lage, es zu debuggen, da es nur als Administrator ausgeführt wird und aus irgendeinem Grunde kann ich es nicht machen laufen. Ich muß nur wissen, wie ich kann, von meinem Programm, DataProgram provozieren, so dass XML-Daten zu erstellen, dass ich es aus seinem Speicher lesen kann.

War es hilfreich?

Lösung

Durch das Kopieren über die Funktion RefreshWindows () und die Ereignisse treeWindow_AfterSelect und treeWindow_BeforeExpand, das Hinzufügen eines TreeView und Property, Verweisen auf die ManagedSpyLib.dll und dann einige Code schreiben das TreeView zu gehen und wählen Sie den richtigen Knoten konnte ich das duplizieren Funktionalität, die ich brauchte.

Anscheinend ist der Weg ManagedSpyLib funktioniert ist komplizierter dann dachte ich (vor allem, weil es in es geschafft C ++, lol), aber der Msdn Artikel sagt die gleichen durch die Verwendung einer normalen DLL in nicht verwalteten Code (wie x86asm) codiert erreicht werden kann . Ich werde versuchen, und tun, dass später, weil zur Zeit diese Bibliothek tut viel mehr als das, was ich brauche (es Spuren Ereignisse usw.).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top