Ich mache ein Bild Uploader (Upload Bild zu Bild-Hosting-Website), und ich habe einige Fragen, die ein Argument (Bildstelle zu einer bereits laufenden Anwendung), denPass Argumente laufende Anwendung
- Zu allererst Nehmen wir an, MyApp.exe läuft immer
- Immer wenn ich mit der rechten Maustaste auf ein Bild klicke, habe ich ein Element im Standard-Windows-Kontextmenü mit dem Text "Bild hochladen" hinzugefügt.
- Wenn Sie darauf klicken, muss der Speicherort an die bereits ausgeführte Anwendung übergeben werden.
Mein Program.cs:
static class Program
{
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, UIntPtr
wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern uint RegisterWindowMessage(string lpString);
[STAThread]
static void Main(params string[] Arguments)
{
if (Arguments.Length > 0)
{
//This means that the the upload item in the context menu is clicked
//Here the method "uploadImage(string location)"
//of the running application must be ran
}
else
{
//just start the application
Application.Run(new ControlPanel());
}
}
}
Beachten Sie, dass die Control Klasse keine sichtbare Form hat, nur ein Tray-Icon vorhanden ist, da ein Formular, das nicht benötigt wird.
Konnte ich Hilfe bekommen, wie man das macht?
Kenny, danke für die Post. Es hat mir sehr geholfen. Gibt es in der NewInstanceHandler-Methode überhaupt ein Verweis auf das Formular (Ihr ControlPanel)? Ich weiß, dass Sie die "uploadImage" -Methode in ControlPanel referenzieren, aber das ist eine statische Methode. Aber ich muss auf die nicht-statischen Methoden verweisen. Bitte lassen Sie mich wissen – Dave