Tipp 1: Wie Sie den Fenstergriff erhalten

Tipp 1: Wie Sie den Fenstergriff erhalten


Das Konzept der Benutzeroberfläche in Windows basiert auf dem Konzept der Fenster.. Dialoge, Schaltflächen, Bedienfelder, Listen - das alles Fenster.. Daher müssen Sie, um Aktionen mit einem beliebigen Element der Benutzeroberfläche Ihrer eigenen oder fremden Anwendung ausführen zu können, Deskriptor Fenster.



Wie man den Fenstergriff bekommt


Du brauchst



  • - Plattform-SDK-Paket;
  • - Der Compiler.


Anleitung


1


Get Deskriptor Fensterund erschafft es. Rufen Sie die API-Funktionen CreateWindow oder CreateWindowEx auf, oder rufen Sie die entsprechenden Wrapper-Methoden (für die erforderlichen Objekte) der Klassen des verwendeten Frameworks oder der Bibliothek auf, die die Funktionalität der Arbeit mit Fensteroder Steuerelemente Die Funktionen CreateWindow und CreateWindowEx geben Deskriptor Fenster wenn es erfolgreich erstellt wurde. Wenn der Aufruf fehlschlägt, geben sie einen NULL-Wert zurück. Ursache des Fehlercodes kann unter Verwendung der GetLastError API-Funktionen abgefragt werden. Prototypen und eine detaillierte Beschreibung der Parameter von Create und CreateWindowEx Funktionen klicken Sie auf die Links http://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx und http: // msdn .microsoft.com / en-us / library / windows / Desktop / ms632680% 28v = VS.85% 29.aspx .Wenn verschiedene Frameworks Klasse Objekterstellung Windows-Betriebssystem verwenden, auftreten kann entweder explizit (durch den Aufruf) und implizit (Umsetzung der RAII-Strategie). Daher Deskriptor Fenster Es ist besser, auf dem bereitgestellten initialisierten Objekt zu empfangen. Methoden der Klassenrückkehr Deskriptor Fenster, gekapselt durch das Objekt, erfahren Sie in der Dokumentation des entsprechenden Frameworks. In MFC ist eine ähnliche Methode beispielsweise GetSafeHwnd der Klasse CWnd.


2


Get Deskriptor Fenster indem Sie es suchen. Verwenden Sie die API-Funktionen FindWindow und FindWindowEx oder die entsprechenden Wrapper-Methoden der Klassenobjekte des entsprechenden Frameworks. Deskriptor Fenster oberste Ebene, wenn sie gefunden wird, oder NULL bei Fehler. Suche erfolgt nach Klassenname und Titel Fenster.. Beschreibung der Parameter und Aspekte der Funktionhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx ist der Link .Semantika Arbeitsfunktion Find FindWindowEx mit dem einzigen Unterschied ähnlich ist, die sie suchen produziert Kinderfenster. für FindWindowEx Dokumentation von http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx Link gegeben.


3


Finden Deskriptor Fenster im Prozess der Aufzählung ihrer Sätze. Verwenden Sie die API-Funktionen EnumWindows, EnumChildWindows, EnumThreadWindows oder die Methoden der Klassenobjekte des verwendeten Frameworks Die EnumWindows- und EnumChildWindows-Funktionsliste Fenster Top-Level und Kind Fenster jeweils. EnumThreadWindows zählt alle Nicht-Kinder auf Fenster des angegebenen Streams. Jede dieser Funktionen muss einen Zeiger auf die Rückrufprozedur übergeben, die im Arbeitsprozess übertragen wird Deskriptors gefundene Fenster als Parameter.Wenn Sie die Aufzählungsfunktionen kombinieren, indem Sie die Eigenschaften von Fenstern im Rückrufverfahren abrufen und analysieren, können Sie Deskriptor die erforderliche Fenster.. Die Dokumentation zu den beschriebenen Funktionen finden Sie inLinks: - EnumWindows: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497%28v=vs.85%29.aspx; - EnumChildWindows: http://msdn.microsoft.com/ en-us / library / windows / Desktop / ms633494% 28v = VS.85% 29.aspx; - EnumThreadWindows: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633495%28v=vs .85% 29.aspx.


4


Get Deskriptor Fenster von bekannten Koordinaten. Funktionen WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx return DeskriptorDie windowsFromPoint-Funktion ist am einfachsten zu verwenden, kehrt jedoch nicht DeskriptorVersteckte und deaktivierte Fenster. auf seine Anwendungsdokumentation ist der Link http://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx .Funktsii ChildWindowFromPoint und finden ChildWindowFromPointEx Deskriptors Kinder des angegebenen Elternteils Fenster, Zugehörigkeit zu einem bestimmten Punkt. In diesem Fall kann das Verhalten von ChildWindowFromPointEx mit einem zusätzlichen Parameter flexibel verwaltet werden. Dokumentation für diese Funktionen auf die Links zur Verfügung gestellt: - ChildWindowFromPoint: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632676%28v=vs.85%29.aspx; - ChildWindowFromPointEx: http: // msdn.microsoft.com/en-us/library/windows/desktop/ms632677%28v=vs.85%29.aspx.



Tipp 2: Wie erkenne ich den Griff?


Deskriptor Fenster oder Handle Window - spezifischEin Bezeichner, der vom Betriebssystem während seiner Erstellung an das Fenster ausgegeben wird. Wenn Sie aus irgendeinem Grund den Systemdeskriptor eines Fensters kennen müssen (z. B. beim Schreiben einer Anwendung), können Sie dies mit dem HWND-Programm tun.



Wie erkenne ich den Griff?


Du brauchst



  • - HWND-Programm.


Anleitung


1


Lokalisieren Sie diese Anwendung über Suchmaschinenim Internet und auf Ihren Computer herunterladen. Dieses Programm ist eine kostenlose Anwendung, die vom Programmierer Pavel Lesnikov entwickelt wurde. Bevor Sie das Archiv mit dem Programm entpacken, überprüfen Sie die heruntergeladenen Daten mit einer Antivirensoftware. Entpacken Sie das Archiv mit dem Programm. Führen Sie das Dienstprogramm aus, indem Sie zweimal auf die Datei WHD.exe klicken. Das Programmfenster hat eine einfache Schnittstelle: Steuerelemente und ein Feld zum Anzeigen von Deskriptoren. Wenn Sie keinen Archivierer haben, laden Sie aus dem Internet ein Programm namens Win Rar herunter.


2


Stellen Sie den Schalter auf "Von derCursor "und drücken Sie CapsLock auf der Tastatur. Nach dieser Operation werden die Bezeichner aller Fenster, über die der Mauscursor läuft, automatisch im Ausgabefeld der Deskriptoren angezeigt. Um dieses Verfahren zu deaktivieren, klicken Sie erneut auf CapsLock. Geben Sie die Klasse des Fensters ein, dessen Deskriptor Sie kennen möchten.


3


Klicken Sie auf die Schaltfläche "OK" und das folgende Feld wird angezeigt.Such-ID. Um das Programmfenster zu schließen, klicken Sie auf das Kreuz in der oberen rechten Ecke. Um den Programmentwickler zu kontaktieren, gehen Sie zu http://vokinsel.dviger.com. Sie können dort in Echtzeit Ratschläge erhalten und sich über die Verfügbarkeit neuer Versionen der Software informieren.


4


Dieses Dienstprogramm erfordert keine Installation undeinfach zu bedienen. Die auf diese Weise erhaltenen Fensterkennungen können später in anderen Anwendungen verwendet werden, um auf Windows-Dienstfenster und -fenster laufender Programme zuzugreifen. Wenn Sie nicht wissen, wie Sie diese Programme verwenden können, lesen Sie die Hilfe. In der Regel beschreiben Entwickler die grundlegenden Prinzipien der Arbeit mit Programmen.




Tipp 3: Wie man den Griff bekommt


AnwendungsprogrammierschnittstelleBetriebssysteme der Windows-Familie werden durch eine Reihe von Funktionen dargestellt. Wenn sie aufgerufen werden, können verschiedene Objekte (Dateien, Prozesse, Threads, Synchronisationsobjekte usw.) erstellt werden. genug abstrakt und einheitlichen Zugriff auf diese Objekte zu gewährleisten, ist die Identifikation erfolgt Deskriptoren - „unpersönlich“ Zahlenwerte.



Wie man den Griff bekommt


Du brauchst



  • - Übersetzer aus einer Programmiersprache, die die Verwendung der Windows API erlaubt;
  • - vielleicht das Windows Platform SDK.


Anleitung


1


Holen Sie sich die Fensterdeskriptoren. Dies kann auf so viele Arten geschehen. Die spezifische Methode hängt vom endgültigen Ziel ab Verwenden Sie die API CreateWindow oder CreateWindowEx, um ein Fenster zu erstellen. Sie geben einen Deskriptor zurück, wenn sie erfolgreich sind, und NULL im Falle eines Fehlers.Geben Sie eine Suche nach den Fenstern der obersten Ebene und untergeordneten Fenstern durch verschiedene Parameter mit den Funktionen FindWindow bzw. FindWindowEx. Wenn die Suche erfolgreich ist, wird der Fenster-Deskriptor empfangen .Zählen Sie die Fenster mit den Funktionen EnumWindows, EnumChildWindows, EnumThreadWindows auf. Die Deskriptoren der gefundenen Fenster werden als ein Parameter der Callback-Funktion übergeben.Finden Sie das Handle des Fensters, das sich an einer bestimmten Position auf dem Bildschirm befindet. Rufen Sie eine der folgenden Funktionen auf: WindowFromPoint, ChildWindowFromPoint oder ChildWindowFromPointEx.


2


Beschaffen Sie Prozessdeskriptoren. Erstellen Sie einen neuen Prozess, indem Sie die API-Funktionen CreateProcess, CreateProcessAsUser, CreateProcessWithTokenW oder CreateProcessWithLogonW aufrufen. Alle geben den Deskriptor des neuen Prozesses im Feld hProcess einer Struktur vom Typ PROCESS_INFORMATION zurück, dem Zeiger, an den sie an den letzten Parameter übergeben werden muss. Verwenden Sie den OpenProcess-Aufruf. Die Bezeichner aller laufenden Prozesse erhalten Sie zB mit Hilfe der Funktionen CreateToolhelp32Snapshot, Process32First und Process32Next der Tool-Hilfe-Bibliothek Entfernen Sie den Pseudo-Descriptor des aktuellen Prozesses mit der Funktion GetCurrentProcess.


3


Ermitteln Sie die Thread-Deskriptoren. Die Funktionen CreateThread und CreateRemoteThread erstellen Threads in ihren eigenen bzw. anderen Prozessen und geben ihre Deskriptoren zurück. Um einen vorhandenen Datenstrom mit seinem Identifikator zu öffnen, nachdem er einen entsprechenden Deskriptor erhalten hat, ist dies mittels der Funktion OpenThread möglich. Der Pseudodeskriptor des aktuellen Flusses wird zurückgegeben, wenn GetCurrentThread aufgerufen wird.


4


Deskriptoren für Dateien, Verzeichnisse, physikalischeDatenträger, Volumes, Konsolen, Kommunikationsressourcen (E / A-Ports), Mail-Slots und Named Pipes können durch Aufrufen einer einzigen Funktion - CreateFile - abgerufen werden.


5


Dateideskriptoren für Dateianzeigeobjekte werden beim Aufrufen von CreateFileMapping und OpenFileMapping zurückgegeben.


6


Die Funktionen CreateMutex, CreateSemaphore undCreateEvent wird erstellt und die Funktionen OpenMutex, OpenSemaphore und OpenEvent öffnen vorhandene Synchronisierungsobjekte (Mutexe, Semaphore und Ereignisse). Alle von ihnen geben Deskriptoren zurück.


7


Manipulation aller GDI-Objekte (wie zGerätekontexte, Schriftarten, Pinsel, Stifte, Hardware-abhängige und unabhängige Raster, DIB-Abschnitte usw.) werden mittels ihrer Deskriptoren erzeugt. Die Funktionen zum Erstellen von GDI-Objekten sind zahlreich und zum Abrufen von Informationen über sie ist es erforderlich, auf den entsprechenden Abschnitt von MSDN zu verweisen.


8


Ein Deskriptor, der in einem Prozess erhalten wurde, zRegel, kann nicht in einem anderen verwendet werden. In einigen Fällen ist es jedoch möglich, ein Deskriptorduplikat zu erhalten, das dem primären Objekt entspricht. Rufen Sie die DuplicateHandle-API-Funktion auf, um den doppelten Deskriptor zu implementieren. Dies kann zum Beispiel verwendet werden, um die gleichzeitige Verwendung von unbenannten Synchronisationsobjekten oder Kanälen durch mehrere Prozesse zu implementieren.