[C#] DLL starten

04/26/2012 15:56 ɳooɓ#1
Hey

Ich habe einen DLL geschrieben, die in einen Prozess injiziert wird.
Diese soll eine Form(Fenster) aufrufen.

Meine Frage:
Wie kann ich mit einem Hotkey die DLL/Form starten ?

Gruß ɳooɓ
04/26/2012 16:21 123#2
Kenne mich in DLL Programmierung nicht aus aber in Window Forms nutzt man hierfür einen global keyboard hook
04/26/2012 16:35 ɳooɓ#3
Sorry hab mich ein bisschen vertan.
Die Frage war eig.: Was muss ich in der DLL schreiben damit die DLL startet nachdem ich sie injiziert habe?

Wenn ich sie jetzt injiziere passiert garnichts!
04/26/2012 21:41 MoepMeep#4
Indem du ExecuteInDefaultAppDomain callst ;o Das sollte allerdings auch in den MSDN-Artikeln zu dem Thema stehen.
04/26/2012 21:44 vwap#5
Ich denke er sucht das C# Synonym für DllMain.
Aber das gibt's in .NET nicht.
04/26/2012 21:48 MoepMeep#6
Quote:
Originally Posted by Headpuster View Post
Ich denke er sucht das C# Synonym für DllMain.
Aber das gibt's in .NET nicht.
Indirekt schon

Code:
public static int foo(String bar)
{
      return 1;
}
Natürlich mit freier Namenswahl :p
04/27/2012 14:05 vwap#7
Ja, aber das bringt dir relativ wenig, da die Funktion bei der Injection der Class Library nicht aufgerufen wird.
04/27/2012 15:28 MoepMeep#8
Deshalb wird eine Funktion mit diesem Aufbau auch mit ExecuteInDefaultAppDomain aufgerufen. Dies ist zumindest die einzige mir bekannte möglichkeit.
04/27/2012 15:43 vwap#9
Aber er schreibt die Host-Application ja nicht.
Er will es ja wie einen Hack machen lassen, und die DLL bspw. in Firefox injezieren.
Dann soll automatisch wie bei C(++) DllMain aufgerufen werden.
Das ist mit .NET aber einfach nicht möglich.
04/27/2012 16:20 MoepMeep#10
Quote:
Originally Posted by Headpuster View Post
Aber er schreibt die Host-Application ja nicht.
CLR-Hosting?

Quote:
Er will es ja wie einen Hack machen lassen, und die DLL bspw. in Firefox injezieren.
Dann soll automatisch wie bei C(++) DllMain aufgerufen werden.
Das ist mit .NET aber einfach nicht möglich.
Es ist natürlich anders als in C/C++, aber es funktioniert. Geht natürlich nicht mit den Standard injektoren :p
04/28/2012 21:58 ɳooɓ#11
Hey Com.

Danke für die Antworten, habt mir echt weiter geholfen.
Special thank's to MoepMeep!