Har en winform-applikation där användaren loggar in mot en server. Man kan oxå klicka på en fil så loggas man in automatiskt. Det jag har gjort är att när den nya applikationen startas med filnamnet som inparameter så kollar den om det finns någon annan instans av sig själv och skickar vidare meddelandet till den via SendMessage. Detta funkar bra. >Jag funderade lite på mdi men då syns ju inte de olika fönstrena nere i taskbaren.Senast aktiverade instansen av ett program
Nu till mitt problem. Om jag har t.ex. två instanser av programmet igång (inloggade med två olika sessioner) så skulle jag vilja skicka meddelandet till det fönstret som senast var aktiverat. Idag skickar jag till det första som jag får upp om man kör:
<code>
Process[] existing = Process.GetProcessesByName(Assembly.GetExecutingAssembly().GetName().Name);
</code>
Sen loopar jag bara igenom och hugger första bästa processen vars windowhandle inte är lika med min egen.
Jag funderade lite på mdi men då syns ju inte de olika fönstrena nere i taskbaren.
Ska man behöva spara nånstans vilken process som senast var aktiverat eller finns det nån annan smart lösning?
Jag också tankar på att att man kunde ha en klass som höll reda på alla fönstrena men det faller på att man ju inte kan skicka meddelanden till klasser utan fönster, och jag fick det inte att fungera att skicka meddelanden till ett fönster som vara Visible=false men det kanske går?
*******EDIT*******
Ett mainwindow verkar inte gå att få Visible=false.... nåja, var kanske nåt annat som strulade igår då
******************
Tacksam för tipsSv: Senast aktiverade instansen av ett program
Kan du inte ha en egen "taaskbar" (eller något annat, t.ex. flikar) i programmet som visar de öppna dokumenten då?
Alternativt kanske du kan ha flera "huvudfönster" i samma program, som alla syns i Windows taskbar, a la senare versioner av Office programmen.
Det verkar onekligen som om det vore enklare att hålla allt inom samma process.
MS