سؤال

لديّ تطبيق C# مع نماذج Windows ، باستخدام أتمتة فتح ملف باستخدام برنامج داخلي (MySoftware). لدي الرمز التالي على النحو التالي. أفهم أن WinWaitactive () يجب أن تنتظر حتى أقوم بالنقر فوق نافذة البرنامج داخل المنزل (MySoftWarewindow) وجعلها نشطة ، قبل أن ينتقل الرمز إلى السطر التالي ويفتح ملف XML المحدد (السطر 6 في الرمز أدناه). بدلاً من ذلك ، ما يحدث هو أن السطر التالي من التعليمات البرمجية يعمل حتى قبل أن أتمكن من جعل البرنامج داخل المنزل نشطًا ، وبالتالي تشغيل الزر المفتوح (السطر 6 في الكود أدناه) . ما رأيك في حدوث خطأ هنا؟ شكرًا!

 aut = new AutoItX3Lib.AutoItX3Class();
 aut.WinWaitActive("mySoftwareWindow", "", 1);
 aut.WinMenuSelectItem("mySoftwareWindow", "", "&File", "&Open", "", "", "", "", "", "");
 aut.Send("C:\\test.xml", 0);
 //click the Open button
 aut.Send("!o", 0);
 aut.Send("{ENTER}", 0); 
هل كانت مفيدة؟

المحلول

المهلة هي جداً قصير ، ثانية واحدة ليست كافية. قم بتجميع مهلة ما لا يقل عن 10 أضعاف أسوأ حالة ، اذهب إلى 20 على الأقل هنا. و تأكد من التحقق من قيمة إرجاع الوظيفة ، فلا جدوى من المتابعة إذا كان الفشل قد أعود.

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