Announcement

Collapse
No announcement yet.

Brodcast

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Brodcast

    Hi Leute,
    Mein derzeitiges Problem ist, dass ich einen Broadcast an die Windowsfenster machen will, damit sie die Registry neu laden, in der ich etwas geaendert habe, ohne einen Windowsneustart zu machen.
    Jetzt weiss ich jedoch nicht wie und werde aus den "PostMessage() und SendMessage()" der "user32.dll" nicht wirklich schlau.
    Koennte mir vielleicht jemand ein Beispiel geben, wie ich einen solchen Broadcast machen kann?
    Danke schonmal

  • #2
    SendMessage(HWND_BROADCAST,Message,wp,lp);
    Christian

    Comment


    • #3
      Wie du die verschiedenen API Methoden in eine .NET Sprache veröffentlichen kannst kannst du sehr schön bei http://www.pinvoke.net/ nachlesen.

      Hier ein Beispiel wie du irgendeine Message an alle Fenster sendest. Mußt nur dafür sorgen das die Zielprozesse auch auf die Message reagieren und das entsprechend gewünschte tun.

      Code:
       
      [DllImport("user32.dll", SetLastError = true)]
      [return: MarshalAs(UnmanagedType.Bool)]
      public static extern bool PostMessage(IntPtr hwnd, uint wMsg, IntPtr wParam, IntPtr lParam);
      
      [DllImport("user32.dll", SetLastError = true)]
      public static extern uint RegisterWindowMessage(string lpString);
      
      private static IntPtr HWND_BROADCAST = new IntPtr(0xffff);
      
      public void SendReloadRegistryBroadcast()
      {
          uint msgNo = RegisterWindowMessage("meineLiebeReloadRegistryMeldung");
          PostMessage(HWND_BROADCAST, msgNo, IntPtr.Zero, IntPtr.Zero);
      }

      Comment


      • #4
        Wunderbar.
        Das wird mir weiterhelfen.
        Danke sehr.

        Comment

        Working...
        X