Entwickler-Ecke

WinForms - Application.Current null


HansWurst217 - Fr 18.03.11 16:36
Titel: Application.Current null
Hallo,
ich programmiere gerade eine WindowsForms Anwendung mit C#, in welcher JumpLists vorkommen sollen.
Hierzu muss ich die aktuelle Anwendung abfragen können.
Die Eigenschaft System.Windows.Application.Current liefert jedoch immer null, wieso das?
Vielen Dank für eure Hilfe!
Grüße


Oppi35 - Fr 18.03.11 16:58

Hallo HansWurst,

zu JumpLists kann ich Dir leider nicht weiterhelfen. Aber m.E. ist die Eigenschaft System.Windows.Application.Current nur für WPF vorgesehen (s. auch MSDN Hilfe).
Auszus aus MSDN HIlfe:
Die Applicationklasse: Kapselt eine Windows Presentation Foundation (WPF)-Anwendung.

Müsstest also mal googeln, ob diese Eigenschaft auch für Windows Forms Anwendungen gibt. Ich habe auf die Schnelle leider nichts gefunden.

Gruß
Frank


IsNull - Fr 18.03.11 17:21

Unter Win Forms hast du die Klasse Application mit statischen Methoden: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.aspx


HansWurst217 - Fr 18.03.11 17:40

Hallo,
danke euch beiden schonmal ... das mit WPF hatte ich schon vermutet und Ersatz dafür für WindowsForms habe ich auch nciht gefunden.
Die Klasse msdn.microsoft.com/e...rms.application.aspx hilft mir aber doch nicht weiter oder? Welche EIgenschaft sollte mir da helfen?


IsNull - Fr 18.03.11 17:47

Zitat:
Welche EIgenschaft sollte mir da helfen?

Öhm was genau willst du den machen? Mir sagt Jump-List im Zusammenhang mit dem App Objekt auch nicht viel. Wenn du die aktuelle Application Instanz willst, welche gerade ausgeführt wird, kannst du ...System.Reflection.Assembly.GetExecutingAssembly()... verwenden.

Wenn du was anderes willst musst du schon konkreter werden :)


Th69 - Fr 18.03.11 19:46

Hallo,

wenn du die aktuelle aktive Form deiner Anwendung herausfinden willst, dann benutze die Form.ActiveForm-Eigenschaft dafür.

P.S. Hier eine Erklärung der JumpList (bei Win7): http://blog.tim-bormann.de/windows-7-jumplist.html


HansWurst217 - Fr 18.03.11 20:04

Hi,
danke das mit den JumpLists lässt sich auch noch anders regeln,
mir gehts in dieser Frage nur darum, ob es einen Ersatz für System.Windows.Application.Current bei WPF
in WindowsForms Anwendungen gibt.
Über System.Reflection.Assembly.GetExecutingAssembly() erhalte ich leider auch kein geeignetes Applicationobjekt zurück, welches diesem entspricht ...


Th69 - Sa 19.03.11 11:03

Was genau verstehst du denn unter "aktueller Anwendung", denn Application.Current ist nicht das, was du zu meinen scheinst...

Wenn du die Windows-Anwendung meinst, welche gerade aktiv ist (d.h. hervorgehobene Titelzeile sowie Fokus), dann wirst du damit nur mittels PInvoke (d.h. Verwendung der WinAPI) herankommen: http://pinvoke.net/default.aspx/user32/GetForegroundWindow.html

Damit besitzt du dann aber nur das Window-Handle, alles weitere mußt du dann auch mit den entsprechenden WinAPI-Funktionen Window functions [http://msdn.microsoft.com/en-us/library/ff468919%28v=vs.85%29.aspx] machen...

Vllt. solltest du aber mal genauer beschreiben, was du programmieren willst???


Kha - Sa 19.03.11 13:26

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
denn Application.Current ist nicht das, was du zu meinen scheinst...
Doch, ich denke schon ;) : JumpList.SetJumpList(Application, JumpList)
Die JumpLists im Windows API Code Pack [http://archive.msdn.microsoft.com/WindowsAPICodePack] kommen ohne Application-Objekt aus, aber das Problem scheint ja schon gelöst zu sein. In anderen Fällen kommt es natürlich ganz auf die API an, ob und wie Application ersetzt werden kann.