PDA

View Full Version : handle in api



benyamin_pc
دوشنبه 12 شهریور 1386, 23:35 عصر
اکثر api ها نیاز به یه handle دارن تا تمرکز کار رو روی اون انجام بدن
این handle ها رو چطوری میشه ایجاد کرد و مثلا" به یه فرم خاص متصل کرد؟

mohammad272005
سه شنبه 13 شهریور 1386, 00:07 صبح
شما معمولا نباید Handle رو خودت اینجاد کنی. هر کنترلی خودش خصوصیت Handle رو داره. مثل: this.Handle.

benyamin_pc
سه شنبه 13 شهریور 1386, 10:32 صبح
وقتی توسط یه Api که نیاز داره به handle یه پنجره چی باید بش بدیم؟تا روی اون پنجره متمرکز شه؟

ARA
سه شنبه 13 شهریور 1386, 19:58 عصر
اگه پنجره مربوط به برنامه خودت باشه که this.Handle
در غیر این صورت با استفاده از api و داشتن نام اون پنجره یا کلاس اون میتونی هندل اون رو پیدا کنی

منظورت چیه دقیقا میتونی یک مثال از api خاص رو بزنی

benyamin_pc
چهارشنبه 14 شهریور 1386, 00:47 صبح
مثلا" CloseWindow که handle پنجره ای را می گیرد که باید minimize شود مثلا" 4 تا پنجره تو فرم اصلیمون هست که می خواهیم یکی از اونا فقط با این api کوچیک شه یا وقتی برناممون ران میشه دو تا پنجره دیگم با خودش باز میکنه که می خواهیم یکی از اونا با این api که تو برناممون نوشتیمش کوچیک شه.

ARA
چهارشنبه 14 شهریور 1386, 11:14 صبح
[DllImport("User32.dll")]
public static extern IntPtr FindWindow(String lpClassName, String lpWindowName);

[DllImport("user32.dll")]
public static extern Int32 SendMessage(IntPtr hWnd, UInt32 msg, int wParam, int lParam);



IntPtr cmdWnd = FindWindow(null, "Calculator");
SendMessage(cmdWnd, msg, 0, 0);

بجای msgاز کدهای پیغام استفاده کن
http://www.pinvoke.net/default.aspx/Enums/WindowsMessages.html

دقیقا اون چیزی نیست که میخوای ولی امیدوارم بدردت بخوره

mohammad272005
پنج شنبه 15 شهریور 1386, 01:45 صبح
برای کارایی که گفتی، چه نیازی به API هست؟ مگه NET. از پس این کارا برنمیاد؟