FindWindow/GetClassname Problem???
-
Warum geht das nicht???
GetClassName gibt nichts zurück oder hab ich da was falsch verstanden ???
CWnd cwnd; cwnd.m_hWnd=FindWindowEx(NULL,NULL,NULL,"tester"); if(!cwnd) MessageBox("FindWindowEx failed","Error",MB_OK); else { CWnd child; child.m_hWnd=FindWindowEx(cwnd,NULL,NULL,NULL); if(!child) MessageBox("FindWindowEx failed [child]","Error",MB_OK); char *chName=NULL; if(GetClassName(child.m_hWnd,chName,600)>1) {//Klasse gefunden MessageBox((LPCTSTR)chName,"getclassname chname",MB_OK); if(strcmp(chName,"CEdit")) { child.SendMessage(WM_SETTEXT,0,(LPARAM)"HAHA"); MessageBox("Message sent","OK",MB_OK); } } }
-
Du musst für chName Speicher reservieren, also statt char *chName=NULL; (um bei deinem sonstigen Code zu bleiben) so:
char chName[600];Bzw. statt char TCHAR verwenden, wenn du Unicode kompatibel sein willst

-
problem ist nur:
'GetClassNameA' : cannot convert parameter 2 from 'char *[1024]' to 'char *'
und das kleinere übel:
'strcmp' : cannot convert parameter 1 from 'char *[1024]' to 'const char *'
-
Kann es sein, dass du char *chName[1024] geschrieben hast

-
ja hab ich weil ohne das * krieg ich das und damit kann ich NIX anfangen!!!
StdAfx.obj : error LNK2001: unresolved external symbol ___pfnBkCheck
Projekt1.obj : error LNK2001: unresolved external symbol ___pfnBkCheck
Debug/Project1.exe : fatal error LNK1120: 1 unresolved externals
-
Du musst es aber trotzdem ohne lassen, sonst verdrängt dieser zusätzliche Fehler nur den anderen - sieht danach aus, als hast du vergessen eine Lib zu linken
