SendMessage bei ausgeblendeten Fenster

04/01/2009 - 00:09 von Martin Lentzsch | Report spam
Hallo,

ich habe gerade versucht ein SendMessage aus der user.dll an ein nicht
sichtbares Fenster zu schicke. Logischerweise bekomme ich als
MainFormHandle 0 zurück.

Ich versuche das ganze wie folgt:

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError
= true)]
private static extern IntPtr SendMessage(IntPtr hwnd, uint
Msg, IntPtr wParam, IntPtr lParam);

public static void SendMessage(ItemType aMessage, int aID)
{
Process _cp = Process.GetCurrentProcess();
Process[] _processes = Process.GetProcesses();
Process _TC=null;

IntPtr wParam = new IntPtr((int)aMessage);
IntPtr lParam = new IntPtr(aID);

if (_processes.Length > 1)
{
foreach (Process _p in _processes)
{
if (_p.ProcessName.Equals("MyApp"))
if (_p.Id != _cp.Id)
_TC = _p;
}
if (_TC != null)
{
SendMessage(_TC.MainWindowHandle, TC_MESSAGE,
wParam, lParam);
}
}

}


Ich denke das funzt für sichbare Fenster ganz gut. Nur nicht für
versteckte. Was kann man da tun?

Danke

Liebe Grüße
Martin
 

Lesen sie die antworten

#1 Kerem Gümrükcü
04/01/2009 - 03:03 | Warnen spam
Hallo Martin,

ein Fenster ist ein Fenster, egal ob es versteckt ist
oder ausgeblendet. Es hat definitv ein Handle, wobei
die Frage ist, ob das Fenster die von Dir gesendete
Nachricht "verarbeitet", bzw verarbeiten kann. Du
kannst einem Fenster was schicken, was aber nicht
bdeuet, dass das Fenster es verarbeiten muss. Auf
der anderen Seite wirst Du mit der neuen Sicherheit
in Windows Vista und größer konfrontiert werden,
die das senden von Fensternachrichten zwischen
Fenstern mit unterschiedlichen Benutzerkontexten,
bzw. Sicherheitslevels verhindert.

http://en.wikipedia.org/wiki/Securi...dows_Vista

Siehe "Application Isolation". In der MSDN wirst Du noch
viel mehr dazu finden, bzw. im Netz!

Du kannst ein Handle mit der Windows API "IsWindow()" überprüfen,
also ob das handle gültig ist. Das solltest Du immer, bevor Du irgendwelche
Handles benutzt, also in diesem Fall Fenster Handles,...

Grüße

Kerem

Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Latest Project: http://www.pro-it-education.de/soft...iceremover
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen