Problem mit FindWindow
-
Hallo,
irgendwie findet die FindWindow Funktion hier bei mir kein Fenster egal ob ich den Klassennamen oder den Fensternamen angebe.
Kann mir vielleicht jemand mal erklären warum das simple Beispiel hier nicht funktionert?#include <stdio.h> #include <stdlib.h> #include <Windows.h> int main(){ HWND HANDLE; HANDLE = FindWindow(NULL,(LPCWSTR)"Unbenannt - Editor"); if(HANDLE == NULL) { printf("Window cannot be found!\n"); return 1; } return 0; }
Vielen Dank
-
Statt
HANDLE = FindWindow(NULL,(LPCWSTR)"Unbenannt - Editor");
probier mal so:
HANDLE = FindWindow(NULL, L"Unbenannt - Editor");
-
Dazu noch ein netter Link (speziell "Migration to Unicode"):
http://msdn.microsoft.com/en-us/goglobal/bb688113.aspx
-
Multibyte set ftw, erspart einem das ganze L"" gedöns ;P
-
omg bei RAD Studios da schreib ich einfach: FindWindow(NULL,"Unbenannt - Editor");
und dann läuft das wieso muss das bei Visual Studio so umständlich sein Ö_ö
-
Weil es gerne mehr als nur ASCII unterstützt. Entweder tut das "RAD studios" nicht, oder es benutzt Multibyte Set's als Standard.
-
oMg__ schrieb:
omg bei RAD Studios da schreib ich einfach: FindWindow(NULL,"Unbenannt - Editor");
und dann läuft das wieso muss das bei Visual Studio so umständlich sein Ö_ö...weil Unicode geil ist
- Alle halbwegs aktuellen Windows-Versionen benutzen das intern selbst, d.h. Windows kann sich das hin- und her konvertieren von Strings sparen.
- Auf anderssprachigen Systemen bleibt ein ö ein ö und wird nicht zu nem unlesbaren Kästchen oder sonst einem anderen Zeichen.
- Man kann damit Anwendungen viel leichter multilanguage-fähig machen
-
oMg__ schrieb:
omg bei RAD Studios da schreib ich einfach: FindWindow(NULL,"Unbenannt - Editor");
und dann läuft das wieso muss das bei Visual Studio so umständlich sein Ö_öDann scheint es ein sehr eingeschränktes System zu sein... ich bemitledie jetzt schon jeden Entwickler, der damit arbeiten muss... SCNR
-
Also im aktuellen RAD Studio (zumindest was Delphi betrifft) ist der Datentyp String automatisch als Unicode- bzw. Widestring deklariert.
-
Nachtrag: Also nicht bemitleidenswert. Eher im Gegenteil, mir graut es immer, wenn ich die Klimmzüge bei euch sehen muss.
-
Villeicht will ich einfach garnicht IMMER widestrings ?
const char* = "Blub";
Wozu soll der nun aus wchars bestehen ?
Finde es angehmen, das selber entscheiden zu dürfen.