ايران ويج

نسخه‌ی کامل: طرز استفاده از GetWindowText API
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
اگه میشه طرز استفاده از GetWindowText رو واسم توضیح بدین
برای کار با این تابع handel پنجره یا کنترل رو به همراه یک بافر و طول بافر به تابع میدی
شاید یه مثال هم خالی از لطف نباشه

کد:
function GetText(Handle:hwnd):string;
var
SLen:integer;
begin
sLen := SendMessage(Handle,WM_GETTEXTLENGTH,0,0);
SetLength(Result,sLen);
SendMessage(Handle,WM_GETTEXT,sLen+1,LongInt(@Result[1]));
end;

;SLen:integer: توی این قسمت یه متغیر از نوع integer تعریف میشه که در مرحله بعد طول رشته رو تعیین میکنه.

sLen := SendMessage(Handle,WM_GETTEXTLENGTH,0,0); : تو این قسمت هم که طول رشته در متغیری که در بالا تعریف کرده بودیم قرار میگیره.

SetLength(Result,sLen); : اینجا طول رشته با طول خروجی تابع ست میشن.

SendMessage(Handle,WM_GETTEXT,sLen+1,LongInt(@Result[1])); : و در آخرهم این کد اصلی هستش که خروجی رو به ما میده.


سوالی بود در خدمتم Question
اگه اشتباه نکنم اینجا انجمن ویژوال بیسیکه نه دلفی ؟!!!
زياد فرق نميكنه.
اینم ویژوال بیسیکش
برای اونایی که ویژوال بیسیک کارن البته تقریبا همونه فقط توابع مورد استفاده فرق دارن ولی شاید کسی تا حالا با API ها کار نکرده باشه این تابع کلی

کد:
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
روش کار با تابع بالا
کد:
Private Function GetText(cHwnd As Long) As String
Dim cStrText As String * 256
GetWindowText cHwnd, cStrText, 128
GetText= Left(cStrText, InStr(1, cStrText, Chr(0)) - 1)
End Function
در خط یکی مونده به آخر مییاییم بافر خالی مونده را حذف میکنیم
بهش هندل پنجره رو میدی و در آخر عنوان پنجره رو تحویل میگیری
pswin نوشته است:اگه اشتباه نکنم اینجا انجمن ویژوال بیسیکه نه دلفی ؟!!!

شکل کلیش تو ویژوال بیسیک هم فرق زیادی با این کد نداره Question