procedure TForm1.Button1Click(Sender: TObject);
var
X:string;
h: THandle;
function EnumChildProc(AHnd: hWnd): BOOL; stdcall;
{Child를 얻기위한 function을 정의해주죠 stdcall 이나 export를 선언 해주어야합니다
왜냐면..
(응용프로그램이처리할 콜백함수로 처리하기위해서).
EnumChildWindows에 쓰기위해..}
var
S:string;
ClassName:Array[0..255] of Char;
{클래스명을 받기 위해선언합니다 GetClassName에...}
begin
Result := True;
GetClassName(AHnd, ClassName, 255);
{핸들에 대한 클래스명을 받아오고...}
S := PChar(ClassName);
{문자비교를 하기위해 PCha형으로 바꿔주고...}
==> 1차로 s하고 Pchar로 형변환이 서로 안맞다고 나오네요
어떻게 해야하죠?
if Pos('Button', S) > 0 then
begin
SendMessage(AHnd, {WM_USER ..등등}, 0, 0);
end;
end;
begin
X:='계산기';
h := FindWindow(nil, PChar(X));
EnumChildWindows(h, @EnumChildProc, 0);
end;
이뜻은 스트링변수에 어레이타입의 변수를 Char의 포인터로 바꾼다는
의미죠..
당근 스트링과 Pchar는 틀리죠 ^^
S := strpas(@classname[0]);
이정도만 해도 되겠죠..
S := strpas(classname);
이래도 될지도 모르겠고요 배열변수는 음..
대충 의미파악해서 쓰세요.