سؤال

أنا صنع بوت على فلاش لعبة و لقد برزت كيفية استيراد جميع AutoIt وظائف في التعليمات البرمجية C#.

string title = "Minesweeper";
string full = auto.WinGetTitle(title,"");
string handle = auto.WinGetHandle(full, "");
if (auto.WinExists(full, "") == 1)
    textBox1.Text = "window exists";
addressBox.Text = full;

for (int r = 1; r < 40; r++)
{
    auto.ControlClick(full, "", "", "left", 2, r * 10, r * 10);
    //auto.ControlClick(handle, "", "", "left", 2, r * 10, r * 10);
}

(أنا متأكد من أن uncommented واحد يجب أن يكون واحد مع مقبض والعكس صحيح ، ولكن هذا يعمل كاسحة الألغام.)

لذلك يعمل على كاسحة ألغام و لا يتطلب أن يكون الإطار النشط.عندما كنت في محاولة لجعل هذا العمل على بلدي لعبة فلاش أنه يتطلب Internet Explorer إلى أن تكون نشطة واحد.هل هذا شيء فلاش يتطلب أو هل هناك شيء إضافي أن أتمكن من القيام به لجعل هذا العمل عندما يتم تصغير اللعبة?

هذا لا يجب أن يتم ذلك باستخدام AutoIt الواردات.حاولت SendMessage من user32 في نقطة واحدة أيضا ، لكن ذلك لم ينجح محتوى الفلاش على الإطلاق بالنسبة لي.

لقد اختبرت هذا على المواقع العشوائية بدلا من موقع فلاش أو كاسحة ألغام و لسبب ما تعمل التعليمة البرمجية إذا كنت تنفيذ ذلك من خلال البرمجة Autoit البرنامج ، ولكن ليس من C# البرنامج...

20 يونيو, 2012:أنا متأكد من هذا له علاقة مع طريقة التعامل مع تمريره.لقد فعلت بعض الاختبارات مع استدعاء AutoIt ملف EXE و باستخدام مقبض أحصل من التعليمات البرمجية C# كحجة لدي إضافة 0x إلى ذلك أيضا ثم في كود AutoIt يجب أن يلقي ذلك من سلسلة إلى HWnd, بحيث يمكن أن يكون شيئا في هذه الحالة أنا لا أعرف ما يجب القيام به منذ المستوردة وظيفة تعتمد على سلسلة الإدخال من أجل التعامل معها.

هل كانت مفيدة؟

المحلول

شيء قد ترغب في محاولة لاستبعاد نافذة التعامل مع متغير التعامل مع القضايا.ينبغي أن يكون هناك حاجة إلى استخدام WinGetTitle على "كاسحة ألغام" نافذة العنوان يجب أن تعمل بشكل جيد.وفقا لبلدي AutoIt v3 نافذة معلومات الأداة في ويندوز 7 العنوان فئة من كاسحة ألغام نافذة على حد سواء كاسحة الألغام.بجد الترميز

السيارات.ControlClick("[العنوان:كاسحة الألغام;الفئة:كاسحة ألغام], "", "", "اليسار", 2, r * 10, r * 10);

قد عمل.لمزيد من المعلومات حول كيف يعمل نرى المتقدمة نافذة الوصف في AutoIt ملف المساعدة.إذا كان هذا لا يزال لا يعمل ابحث WinTitleMatchMode في ملف المساعدة.فإنه يسمح لك بإعداد بعض قواعد الرأفة في عنوان النافذة المطابقة التي يمكن أن تجعل هذا أسهل بالنسبة لك.

AutoIt X AutoIt DLL/COM التحكم الإصدار هو كيف سيكون إضافة AuotIt إلى أي لغة قد DLL/COM الدعم.في حالة أي شخص آخر كنت أتسائل كيف يمكنك استخدام AutoIt في C#.للأسف AutoIt X غالبا ما تتخلف في تطوير واختبار من اللغة الرئيسية.على الرغم من أن ليس لديهم سبب للاعتقاد المشكلة عن طريق خطأ مجرد إعطاء بعض المعلومات الأساسية عن AutoItX المشروع.إذا كان لديك بالفعل لا يجب نشر نسخة من هذا السؤال ActiveX/COM المساعدة والدعم (AutoItX) المنتدى.واحدة من أفضل الأشياء عن AutoIt في تجربتي على مدى سنوات هو المجتمع (التي لم تتحرك هنا كثيرا).خاصة أن المنتدى قسم يتردد من قبل بعض المطورين من اللغة الذي سيكون سعيدا للمساعدة.

كما 20 يونيو ملاحظة AutoIt يعامل جميع المتغيرات مثل السلاسل حتى يكشف أن شيئا خاصا.فإنه لا يعرف قيمة hex ما لم يبدأ مع 0x ذكرت.هذا وقد تسبب كل أنواع مشاكل غريبة بالنسبة لي في الماضي.لدي في عدة مناسبات إضافة صفر إلى متغير للحصول على AutoIt تقييم ذلك بشكل صحيح بعد.هذا لا يحدث في كثير من الأحيان مع AutoIt3 ولكن مجرد شيء أن نأخذ في الاعتبار.

إذا كنت بحاجة إلى أي AutoIt رمز مرجع الكثير من أعضاء AutoIt المنتدى جعلت كاسحة ألغام السير يمكنك التحقق وربما ترى شيئا مفيدا.

نصائح أخرى

تأكد من تشغيل C# البرنامج كمسؤول.هذا هو الفرق الوحيد الذي أستطيع أن أرى طريقة واحدة تعمل و أخرى لا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top