tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
18
ZUGRIFFE
367
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    super hilfe danke nochmals
     

  2. #17
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    @Spikee: Schade, dass der Großteil der Winapi mit Regex nichts anfangen kann

    @Terra: Wenn sich das jedesmal ändert ist ein etwas anderer Code erfordlich.
    EnumWindows und Stringsuche.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #18
    SE Tutorials.de Gastzugang
    o0 wie jetzt ... Windows weis nich was RegEx sind ? ... FAIL xD
     

  4. #19
    Avatar von ComFreek
    ComFreek ComFreek ist offline [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.358
    Blog-Einträge
    4
    @Terra: Wenn sich das jedesmal ändert ist ein etwas anderer Code erfordlich.
    EnumWindows und Stringsuche.
    Genau

    Folgendes Programm funktioniert bei mir einwandfrei:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    #include <windows.h>
    #include <conio.h>
     
    const LPTSTR Search = LPTSTR("Scan an");
    const LPCTSTR Title = "windowcloser";
    const int SleepTime = 1000;
    const bool Visible = false;
    const int CloseCharCode = VK_ESCAPE;
     
     
    BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
    {
      int TitleLength = GetWindowTextLength(hwnd);
     
      LPTSTR WindowName = new TCHAR[TitleLength];
      ZeroMemory(WindowName, sizeof(WindowName));
     
      GetWindowText(hwnd, WindowName, TitleLength);
     
      if (strncmp(WindowName, Search, strlen(Search))==0 &&
          hwnd != GetForegroundWindow())
      {
        PostMessage(hwnd, WM_CLOSE, 0, 0);
      }
      return true;
    }
     
    int main()
    {
      SetConsoleTitle(Title);
      if (Visible==false)
      {
        HWND hConsole = FindWindow(NULL, Title);
        ShowWindow(hConsole, SW_HIDE);
      }
     
      while (true)
      {
        if (Visible)
        {
          if (kbhit() && getch()==CloseCharCode)
          {
            return 0;
          }
        }
        EnumWindows(EnumWindowsProc, 0);
        Sleep(SleepTime);
      }
      return 0;
    }
    • In der Variablen "Search" steht der String, nach dem in den Fenstertiteln gesucht werden soll, bei ja "Scan an".
    • In "Title" steht der eigene Fenstertitel.
    • Mit "SleepTime" wird die Verzögerungszeit in der While-Schleife festgelegt.
    • "Visible" definiert, ob das Fenster sichtbar oder unsichtbar sein soll.
    • Und schließlich definiert "CloseCharCode" den virtuellen Keycode für die Taste, die das Programm schließen soll - vorausgesetzt es ist sichtbar.
    Außerdem wird das aktuell aktivierte Fenster nicht geschlossen, falls es auch mit "Search" anfängt.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

Ähnliche Themen

  1. Windows Tasks beenden
    Von Beppo98 im Forum .NET Application und Service Design
    Antworten: 4
    Letzter Beitrag: 21.08.08, 10:53
  2. Windows 98 per Anwendung beenden
    Von MarkusG im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 04.10.05, 10:08
  3. [MS SQL Abfrage] Mit datediff() und between Zeitfenster abfragen
    Von nauti_lus im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 07.04.05, 09:59
  4. Windows beenden
    Von snoopay im Forum Java
    Antworten: 7
    Letzter Beitrag: 09.02.04, 14:46
  5. Windows Beenden
    Von Chefprog im Forum Sonstige Sprachen
    Antworten: 3
    Letzter Beitrag: 28.06.01, 15:55