الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عكس حاصية visible=false و Hide=True

بدأه pickatshou في 25 أكتوبر 2012 · 2 رد · 984 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني ,

برنامج صغير ورائع ولكن مفعوله قوي جدا جدا , مثلا نحن نعرف معظم البرامج التي نفتحها تكون فيها خانات Disable

Windows Enabler.exe

أبحث عن أداة عند فتح البرامج تقوم بإظهار الأزرار المخفية بخاصية

" "Hide=True"

"Visible=False

#2

هل من مجيب لسؤالي هذا لعلي إلى سؤال آخر أسير

#3

إنظر للمثال في المرفقات, فيه برنامجين Target.exe و EnableTarget.exe مع الشفرة المصدرية في المجلد src, مكتوب بـC ويُمكنك إستخدام أي لغة أخرى يمكنك إستخدام Windows API عن طريقها.

الأوّل Enable.exe فيه نافذة وزرّ Click Me معطّل :

post-231926-005166500 1351477187_thumb.p

والآخر EnableTarget.exe برنامج لتفعيل ذلك الزرّ :

post-231926-055528200 1351477188_thumb.p

الدالة المسؤولة عن تفعيل الزّر :

BOOL OnDialogButtonClicked(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    HWND hwndTarget;
    LPCTSTR lpsWindowTitle = TEXT("Target");
    INT intDialogItem = 1001;
    BOOL bResult;

    hwndTarget = FindWindow(NULL, lpsWindowTitle);

    if(!hwndTarget) {
        MessageBox(hwndDlg, TEXT("Cannot find or open that window"), NULL, MB_OK | MB_ICONWARNING);
        return FALSE;
    }

    bResult = EnableWindow(GetDlgItem(hwndTarget, intDialogItem), TRUE);

    /*
     * bResult = ShowWindow(GetDlgItem(hwndTarget, intDialogItem), SW_SHOW);
     */

    if(bResult)
        MessageBox(hwndDlg, TEXT("OK, button is active now"), TEXT("Done!"), MB_OK);
    else
        MessageBox(hwndDlg, TEXT("Cannot enable that button"), NULL, MB_OK | MB_ICONWARNING);

    return TRUE;
}

كل مايلزم لتفعيل الزّ في البرنامج الأولّ هو الحصول على مقبض للنافذة بإستخدام الدالة FindWindow وتمرير عنوان البرنامج لها , Target في مثالنا. ثم الحصول على رقم الزرّ المعطل بإستخدام أي محرر مصادر مثل ResEdit :

post-231926-058302700 1351477191_thumb.p

بعدها إستدع الدالة GetDlgItem ومرر لها مقبض النافذة ورقم الزر, 1001, للحصول على مقبض له. بعدها يُمكنك تمرير المقبض للدالة EnableWindow مع TRUE إذا كان معطل أو ShowWindow مع SW_SHOW إذا كان مخفي وسيُمكنك إستخدامه حينها.

Example.zip

المرفقات
1.png2.png3.png

تم تعديل هذه المشاركة بواسطة Mr.B في 29 أكتوبر 2012 في 05:53

مواضيع مشابهة