Blog Home  Home Feed your aggregator (RSS 2.0)  
artiso Blog - Access-Fenster über COM ausblenden
Neues rund um's Thema .Net
 
 Tuesday, August 01, 2006

In einer Anwendung aus der ich auf Access via COM zugreife, wollte ich das Access-Fenster ausblenden. Die "visible" Eigenschaft kann man auch setzten - es passiert nur nix, daher das ganze über DLLImport. Wichtig ist, dass man sich den/die "handle" auf das/die Fenster merkt - die findet man sonst nicht mehr und kann sie sonst auch nicht mehr sichbar schalten.
Das Beispiel kann man natürlich auch auf jede andere Anwendung übertragen und das Process-Objekt hat ja auch noch paar andere Methoden, um ein bestimmtes Fenster zu finden, "GetProcessByID()" usw. sind auch vorhanden.

z.B. ausblenden von allen Access-Fenstern:

ArrayList processHandles = new ArrayList();
foreach (Process p in Process.GetProcessesByName("msaccess"))
{
   ShowWindow((int)p.MainWindowHandle, 0);  // 0 steht für unsichtbar
   
processHandles.Add((int)p.MainWindowHandle);
}

einblenden

foreach
(int processHandle in processHandles)
{
   
ShowWindow(processHandle, 9);  // 9 bedeutet restore - sprich so, wie das Fenster vor dem ausblenden aussah (Position, Größe)
}

und der dllimport, damit die Funktion genutzet werden kann:

[DllImport("User32")]
private static extern int ShowWindow (int hwnd, int nCmdShow);

Tuesday, August 01, 2006 5:35:56 AM (Mitteleuropäische Zeit, UTC+01:00)  #    Comments [0]    | 
Copyright © 2008 Thomas. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: