تشخیص نوع کنترل ویندوز یا وب سایت
امروز هرچی گشتم نتونستم به نتیجه ای برسم و اون اینکه میخوام با یه برنامه سی شارپ و هر جایی که با موس کلیک میکنم مشخصات یا نام اون کنترل رو در محیط ویندوز یا وب سایت بده...
مثل این کد:
private void buyQ_MouseUp(object sender, MouseEventArgs e)
{
string ctrlName = ((Control)sender).Name;
textBox1.Text = ctrlName;
}
کد بالا نام کنترلهای موجود در فرم جاری رو نشون میده. اما من میخوام این دستور برای کل صفحه دسکتاپ کار کنه، مخصوصا توی وب سایت ها... نشون بده که آیا کنترل موردنظر دکمه هست یا تکست باکس یا ....
نقل قول: تشخیص نوع کنترل ویندوز یا وب سایت
نقل قول: تشخیص نوع کنترل ویندوز یا وب سایت
نقل قول:
نوشته شده توسط
ASHKANLAEI
منظورتون از دسکتاپ چیه؟
هر برنامه یا نرم افزاری که در محیط ویندوز اجرا شده....
البته هدف بیشتر وب سایت هست و میخوام نام کنترل ها یا لینکهای یه صفحه وب را بدست بیاورم....
نقل قول: تشخیص نوع کنترل ویندوز یا وب سایت
از توابع API استفاده کن. هندل هر پنجره رو بر میگردونه بعدش میتونی نوع پنجره و هر متن رو برگردونی
نقل قول: تشخیص نوع کنترل ویندوز یا وب سایت
نقل قول:
نوشته شده توسط
mehdi5106
هر برنامه یا نرم افزاری که در محیط ویندوز اجرا شده....
البته هدف بیشتر وب سایت هست و میخوام نام کنترل ها یا لینکهای یه صفحه وب را بدست بیاورم....
درود
در خود ویندوز اگر بخواهید اینکارو کنید ابزارهایی مثل :
WinSpy++
Autolt Window Info
و.... وجود دارند.
اما در وب خیلی راحت به کمک ابزار inspect خود مرورگر
نقل قول: تشخیص نوع کنترل ویندوز یا وب سایت
خیلی از کنترل هایی که در برنامه ها می بینید، مخصوصا برنامه هایی که تعداد کنترل نمایشی زیادی دارند، فرضا اونهایی که با کتابخانه qt ساخته میشه یا موتور گرافیکی OpenGl و DirectX دارند، در حالت عادی فاقد پنجره هستند و Windowless اند.
یعنی برای هر کدوم یک Window استاندارد با Handle اختصاصی وجود نداره که بتوانید Text یا Class شون رو بخونید و حتی متوجه بشید که در موقعیت فلان x و y چه کنترلی قرار داره، چه برسه به نوع شون.
دلیل اصلی اینکه براشون پنجره در نظر نمی گیرند اینه که هم سبکتر میشن و هم قابلیت هایی مثل شفافیت کنترل رو بهتر میشه روشون پیاده سازی کرد.
همچین کنترل هایی که پنجره ندارند رو نمیشه شناسایی کرد مگر اینکه به شیوه شناسایی مناسب شون دسترسی داشته باشید.
فرضا اگر QT_USE_NATIVE_WINDOWS با مقدار 1 در Environment ویندوز (مشابه PATH و WINDIR و TEMP و ...) ثبت بشه، برنامه هایی که با QT کار می کنند (مثل تلگرام نسخه دسکتاپ) زورکی صاحب پنجره های استاندارد ویندوز میشن و می توانید شناسایی شون کنید.
گرچه معمولا کارکرد شون دچار اختلال میشه و دیگه برنامه شون درست کار نمی کنه.
برای کنترل های فاقد پنجره باید بدونید از چه کتابخانه ای استفاده شده و چطور میشه بهشون دسترسی داشت وگرنه فقط پنجره اصلی برنامه رو شناسایی می کنید.
نقل قول: تشخیص نوع کنترل ویندوز یا وب سایت
دوستان در خصوص ویندوز گفتن،
اما اگه میخای در صفحه وب بتونی از این کارا بکنی :
اگه میخای فقط یک صفحه وب رو پارس کنی و اطلاعات تمام کنترلها (element ها) رو داشته باشی، یه گزینه
HtmlAgilityPack هست.
اگه بخای یه مرحله جلوتر بری و تعامل هم داشته باشی با کنترلهای روی صفحه، یه گزینه استفاده از Headless Browser ها هست. یه مورد خوب هم، کتابخونه Puppeteer هست که توی جاوااسکریپت استفاده میشه. برای C# هم از PuppeteerSharp می تونی استفاده کنی. میتونی هرنوع تعاملی که خود کاربر واقعی با یک صفحه وب داره رو، از طریق این کتابخونه با صفحه داشته باشی.