kostenloser Webspace werbefrei: lima-city


[C#/C++] Fenster anderer Programme verstecken

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    dmm

    dmm hat kostenlosen Webspace.

    Hallo,
    ich suche momentan für ein Schulprojekt(auf Basis von CCV eine Art Smartboard bauen mit eigenem Treiber und co) eine Möglichkeit, mittels C# oder C++ Fenster anderer Programme komplett auszublenden, und zwar so, dass diese auch in der Taskleiste nicht mehr sichtbar sind.
    Habe es bereits mit verschiedenen Methoden ausprobiert, komme aber nie wirklich ans Ziel, immer bleibt das Fenster entweder in der Taskleiste oder im Programm Switch(Alt+Tab). Mit dem Tool "Hideanywindow" klappt das ganze Problemlos, jedoch sollte das am Besten aus dem C#/C++ Programm selbst passieren.

    Ich würde mich sehr über jeden Lösungsvorschlag freuen.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ..bereits mit verschiedenen Methoden ausprobiert..

    Damit wir dir was Neues erzählen können, wäre es hilfreich, deine schon genutzten Methoden zu kennen :spammer:
  4. Hallo dmm,

    mit Hilfe der Funktion EnumDesktopWindows() kannst Du die Handles aller top-level Fenster abfragen.
    Wenn Du diese hast, dann kannst Du mit Hilfe der ShowWindow() Funktion die Fenster verstecken und wieder sichtbar machen.
    Hier ist ein Beispiel in C++:
    #include <vector>
    #include <iostream>
    #include <cstring>
    #include <Windows.h>
    
    using namespace std;
    
    static BOOL CALLBACK enum_window_callback(HWND hwnd, LPARAM l_param)
    {
      char classname[256];
      vector<HWND> * window_handles;
      
      /* Exclude hidden windows from list: */
      if(!IsWindowVisible(hwnd))
        return TRUE;
    
      /* Exclude taskbar and start button from list: */
      if( !GetClassName(hwnd, classname, sizeof(classname)) || 
          !strcmp(classname, "Shell_TrayWnd") ||
          !strcmp(classname, "Button"))
        return TRUE;
    
      /* Append top level window handle to list */
      window_handles = (vector<HWND>*)l_param;
      window_handles->push_back(hwnd);
    
      return TRUE;
    }
    
    int main(int argc, char ** argv)
    {
      vector<HWND> window_handles;
    
      EnumDesktopWindows(NULL, enum_window_callback, (LPARAM)&window_handles);
    
      /* Hide top level windows: */
      for(unsigned int i=0; i<window_handles.size(); i++)
        ShowWindow(window_handles[i], SW_HIDE);
    
      /* Wait for 5 seconds: */
      Sleep(5000);
    
      /* Show top level windows: */
      for(unsigned int i=0; i<window_handles.size(); i++)
        ShowWindow(window_handles[i], SW_SHOW);
    
      return 0;
    }
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!