こんばんわ。
turbodelphi+Winxpの環境です。
Lhaplusの環境設定画面のタブのテキストを取得したいのです。
function GetTabText(hWindow:HWND;indx:integer):string;
var
tci: TTCItem;
PC:PChar;
begin
GetMem(PC,50);
tci.mask := TCIF_TEXT;
tci.pszText := PC;
tci.cchTextMax := 50;
SendMessage(hWindow,TCM_GETITEM,indx,LPARAM(@tci));
SetString(result,PC,lstrlen(PC));
FreeMem(PC);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
hwind : HWND;
s : String;
begin
hwind := FindWindow(nil,'Lhaplus');
s := GetTabText(hwind,0);
if s <> '' then Begin
ShowMessage(s);
End;
end;
こうコードだと0番目のタブのテキストが取得できるはずなのですが
空白文字が返ってきています。
正直どこが悪いのか不明なのですが、どなたか御教授ねがいないでしょうか?
宜しくお願いいたします。
すいません。
LhaplusはTPageControlでした。
取得するTabコントロールは
Windows標準の日付と時刻のプロパティに変えました。
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
hwind : HWND;
hwind2 : HWND;
s : String;
begin
hwind := FindWindow(nil,'日付と時刻のプロパティ');
hwind2 := FindWindowEX(hwind, 0, 'SysTabControl32', 0);
s := GetTabText(hwind2,0);
if s <> '' then Begin
ShowMessage(s);
End;
end;
ボタンの中を上記のように変更しましたが、
SendMessage(hWindow,TCM_GETITEM,indx,LPARAM(@tci));
の行で落ちてしまいます。
Delphiではタブのテキスト取得は出来ないのでしょうか。
ここでも見てくれ
http://yebisuya.dip.jp/WinTips/tips7.html
ありがとうございます。
delphiに直してみます。
ツイート | ![]() |