Hallo,
Momentan arbeite ich gearde an einem
DLL-Injector. Zur Funktionsweise: Man kann einzelne Aufträge in eine Liste eintragen, dazu muss man prozess name und den
DLL-Pfad angeben, die Aufträge werden dann in der Liste gesammelt und können einzeln bearbeitet, gelöscht oder injiziert werden (man kann auch alle aufträge auf einmal starten, aber das tut ja nix zur sache). Das Bearbeiten und Löschen funktioniert mittels eines eigenen PopUp-Menüs. Zur Verdeutlichung zwei Screenshots:
http://img137.imageshack.us/img137/7...jector1bh5.gif
http://img411.imageshack.us/img411/2...jector2xq1.gif
Da Multiselect eingestellt ist kann man auch mehrere Aufträge in der Liste bearbeiten, löschen und injizierten. Beim Bearbeiten stellt sich mir jedoch ein Problem in den Weg. Der entsprechende Code im PopUpMenü sieht so aus:
Delphi-Quellcode:
procedure TForm_WInjector_Main.Menu_EditClick(Sender: TObject);
var i: Integer;
begin
for i := 1 to ListView_Instructions.Items.Count do
if ListView_Instructions.Items[i-1].Selected then begin
InstructionEditor.Form_WInjector_EditInstruction.Label_InstructionNumber.Caption := 'Nr. ' + IntToStr(i);
InstructionEditor.Form_WInjector_EditInstruction.Edit_ProcessName.Text := ListView_Instructions.Items[i-1].SubItems[0];
InstructionEditor.Form_WInjector_EditInstruction.Edit_DllPath.Text := ListView_Instructions.Items[i-1].SubItems[1];
InstructionEditor.Form_WInjector_EditInstruction.Caption := 'Instruction Editor: Nr. ' + IntToStr(i);
InstructionEditor.Form_WInjector_EditInstruction.Visible := TRUE;
end;
end;
(InstructionEditor is ne eigene erstellte und eingebundene
Unit)
Wenn jetzt mehrere Einträge markiert und bearbeitet werden wird nur der letzte markierte Eintrag im Editor angezeigt (ist ja auch logisch, da die Schleife ja bis zum Ende durchläuft..). Nun meine Frage: Wie ist es möglich sozusagen mehrere Instanzen von dem InstructionEditor-Formular zu starten. Am besten wäre es wenn man x Einträge markiert hat auch x Editor-Fenster gleichzeitig aufgehen.