| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Windows Handle Terror im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Moinmoin, als hauptsächlicher C++-Linuxcoder will ich mich im Moment doch nochmal an Windows probieren. Folgender Code bereitet mir Kopfschmerzen: ...
![]() |
| | #1 (permalink) |
| Registriert seit: 18.07.05 ![]() Likes: 0 | Anzeige Moinmoin, als hauptsächlicher C++-Linuxcoder will ich mich im Moment doch nochmal an Windows probieren. Folgender Code bereitet mir Kopfschmerzen: Code: #include <Windows.h>
#include <iostream>
#include <atlbase.h>
using namespace std;
int main(int argc, char* argv[])
{
POINT punkt;
GetCursorPos(&punkt);
Sleep(1000);
HWND handle = WindowFromPoint(punkt);
TCHAR szWindowText[100]; // darin wird der Titel gespeichert
GetWindowText(hKonsole, szWindowText, 100); // Titel mit hwnd holen cout << szWindowText << endl; Viele Grüße |
| | |
| | #2 (permalink) |
| Registriert seit: 12.06.05 ![]() Likes: 2 | Ich habe deinen Code mal ausprobiert und er funktioniert unter Windows XP einwandfrei. Bis auf das nicht deklarierte hKonsole in deinem Code. Als Ausgabe bekomme ich den Fenster Title als Text.
__________________ |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Rückgabewerte sind nicht dazu da, einfach ignoriert zu werden Meist wird bei den APIs im Fehlerfall eine 0 zurückgegeben und man kann dann GetLastError & Co nutzen.
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. |
| | |
| | #4 (permalink) |
| Themenstarter Registriert seit: 18.07.05 ![]() Likes: 0 | So, Problem gelöst. Also der Code ist scheinbar wirklich schon richtig so. Allerding gibt die Funktion GetWindowText den Typ LPTSTR und kein Char zurück. Sprich Unicode. Das musste ich erst konvertieren und nun klappt es auch! |
| | |
| | #5 (permalink) |
| Senior Member Registriert seit: 13.07.08 ![]() ![]() ![]() Likes: 85 | Dann hast du auch irgendwo das Symbol UNICODE definiert. Wenn du char* haben willst, musst du dann manuell GetWindowTextA (ANSI) nutzen.
__________________ "It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."+++ BREAKING +++ Troll ertrinkt im Planschbecken +++ |
| | |
| | #6 (permalink) |
| Was für eine IDE benutzt du denn? Api Funktionen haben bei Strings immer eine W (widechar) und eine A (ASCII) Version. Ohne den postfix wird in den projekteinstellungen geschaut ob du unicode oder ASCII haben willst. Müsstest quasi nur das umstellen dann kannst du die Funktionen auch ohne A am ende wie gewünscht nutzen. Sent from my HTC Desire using Tapatalk
__________________ Be the source always with you. | |
| | |
| | #7 (permalink) |
| Senior Member Registriert seit: 13.07.08 ![]() ![]() ![]() Likes: 85 | Wie ich sagte, ist UNICODE definiert, wird GetWindowTextW per #define zu GetWindowText, wenn UNICODE nicht definiert ist, dann wird GetWindowTextA zu GetWindowText.
__________________ "It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."+++ BREAKING +++ Troll ertrinkt im Planschbecken +++ |
| | |
| | #8 (permalink) |
| Registriert seit: 28.07.08 ![]() Likes: 1 | über GetWindowText() bzw. SetWindowText() bin ich letztens mal etwas gestolpert. msdn rät zu den funktionen, dass man stattdessen SendMessage(WM_GETTEXT bzw. WM_SETTEXT) verwenden soll, falls das HWND einem anderen Prozess gehört. Ich konnte unter win7 (prozess nicht elevated) keinen Unterschied zwischen beiden varianten feststellen. Ist der doku-eintrag historisch bedingt oder gibt es da tatsächlich einen Unterschied? |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Speicher Handle und Pointer | joshua | Code Kitchen | 3 | 05.01.09 18:52 |
| Anti-Terror.... da weiss man garnicht auf welcher Seite der Terror sitzt. | Watchme | Off topic-Zone | 4 | 15.08.07 00:40 |
| Bush:" War on terror cannot be won" | n8m | News & Ankündigungen | 1 | 31.08.04 22:34 |
| E-mail terror | dasuebel | (In)security allgemein | 2 | 13.08.02 10:12 |