العَرَض
لا يتم تشغيل البرنامج النصي الذي يمكن تنفيذه بنجاح في الوضع الذي تمت حضوره بنجاح في الوضع غير المراقب.
عادة ما يفشل مع رسالة مثل: "حدثت مشكلة أثناء تشغيل الإجراء "انقر". تعذر النقر فوق الارتباط على صفحة الويب."
السبب
تحدث حالات الفشل النموذجية في عمليات التشغيل غير المراقبة بسبب أحد الإجراءات التالية:
-
لم يتم اختبار البرنامج النصي في الوضع الذي تمت ملاحظته قبل التبديل إلى غير مراقب
-
تكوين مختلف تستخدمه جلسة العمل غير المراقبة
-
حساب Windows مختلف يستخدمه التشغيل غير المراقب عن الحساب المستخدم لإنشاء التدفق
-
دقة الشاشة (راجع كيفية تغيير دقة الشاشة)
-
تكوين المستعرض
-
المستخدم
-
مانع النافذة المنبثقة
-
الملحقات (مفقودة/ غير نشطة)
-
-
-
لا يتم تحميل الشاشات بالكامل (التأخيرات المفقودة)
-
مطالبة UAC تمنع أتمتة واجهة المستخدم عند بدء الجلسة
حل
نظرا لوجود أسباب مختلفة، يصف الحل أدناه كيفية إضافة لقطات الشاشة قبل وبعد إجراء فاشل للحصول على بعض الملاحظات المرئية. يمكن أن يساعد النظر إلى لقطات الشاشة بعناية بعد فشل البرنامج النصي غير المراقب في العثور على أحد الأسباب المذكورة أعلاه. كما يصف كيفية مقارنة إعدادات دقة العرض والمقياس.
إذا كان لديك بالفعل لقطات شاشة في التدفق الخاص بك وفشلت في التنفيذ، فقد يكون لديك مربع حوار التحكم في حساب المستخدم (UAC) يمنع تنفيذ التدفق الخاص بك. يرجى تسجيل الدخول إلى الجهاز الذي يقوم بإعادة إنتاج المشكلة مع الحساب الذي تستخدمه لتنفيذ التدفق ومعرفة ما إذا كان لديك مربع حوار حظر. إذا قمت بذلك، فقم بتغيير روتين بدء التشغيل لمنع حدوث ذلك.
إضافة لقطات شاشة لاستكشاف الأخطاء وإصلاحها
ابدأ بتسجيل الدخول إلى الكمبيوتر الذي يعيد إنتاج المشكلة مع الحساب الذي تستخدمه في اتصالك. تحقق من عدم وجود مطالبة UAC قد تمنع أتمتة واجهة المستخدم.
إذا لم يكن هناك ما يمنع أتمتة واجهة المستخدم، فخذ لقطة شاشة قبل وبعد خطوة فاشلة في الوضع غير المراقب يمكن أن يساعد في الحصول على ملاحظات مرئية.
يجب أن تستمر الخطوة الفاشلة في الفشل بحيث يمكن التقاط لقطة شاشة بعد الفشل.
1- ابحث عن إجراء "اتخاذ لقطة شاشة"
2- سحب وإفلات إجراء "التقاط لقطة شاشة" إلى جانب البرنامج النصي
3- تحرير الإجراء واستخدام "ملف" بدلا من الحافظة و"قبل" في موقع اسم الملف
4- ثم انسخ/الصق، وغير اسم ملف لقطة الشاشة مع بعد فيه
5- إحاطة الخطوة الفاشلة بالقطات الشاشة
6- تغيير سلوك onError للخطوة الفاشلة
6a- تحرير الخطوة والنقر فوق "onError" في الأسفل
6b- تعيين تشغيل التدفق إلى "متابعة تشغيل التدفق" و"الانتقال إلى الإجراء التالي"
7- حفظ وتشغيل محليا لاختبار إنتاج لقطات الشاشة وإعادة تشغيل تشغيل غير مراقب.
8- تحقق من ملفات لقطة الشاشة غير المراقبة .
التحقق من دقة الشاشة واختلافات المقياس
لمقارنة إعدادات الدقة بين عمليات تنفيذ التشغيل التي تمت حضورها وغير المراقبة، أضف الإجراءات أدناه في البرنامج النصي قبل التشغيل في كلا الوضعين:
-
انسخ/الصق القصاصة البرمجية أدناه في مصمم PAD: سيؤدي ذلك إلى إنشاء الخطوات اللازمة لالتقاط إعدادات الدقة وإخراجها في ملف طابع زمني.
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyy_MM_dd_hh_mm_ss''' Result=> FormattedDateTime
Workstation.GetScreenResolution MonitorNumber: 1 MonitorWidth=> MonitorWidth MonitorHeight=> MonitorHeight MonitorBitCount=> MonitorBitCount MonitorFrequency=> MonitorFrequency
@@copilotGeneratedAction: 'False'
Scripting.RunPowershellScript.RunPowershellScript Script: $'''Add-Type @\'
using System;
using System.Runtime.InteropServices;
using System.Drawing;
public class DPI {
[DllImport(\"gdi32.dll\")]
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
public enum DeviceCap {
VERTRES = 10,
DESKTOPVERTRES = 117
}
public static float scaling() {
Graphics g = Graphics.FromHwnd(IntPtr.Zero);
IntPtr desktop = g.GetHdc();
int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
return (float)PhysicalScreenHeight / (float)LogicalScreenHeight;
}
}
\'@ -ReferencedAssemblies \'System.Drawing.dll\' -ErrorAction Stop
Return [DPI]::scaling() * 100''' ScriptOutput=> MonitorScaleOutput
File.WriteText File: $'''c:\\test\\resolution_%FormattedDateTime%.txt''' TextToWrite: $'''height: %MonitorHeight% width: %MonitorWidth% frequency: %MonitorFrequency% bitCount: %MonitorBitCount% scale: %MonitorScaleOutput%''' AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.Unicode
-
راجع مسار ملف الإخراج من الإجراء الأخير، وتحقق من نجاح التنفيذ المحلي وحفظه.
-
قم بتشغيل البرنامج النصي في كل من الوضعين الحضور وغير المراقب، ثم تحقق مما إذا كان إخراج الدقة والمقياس له نفس القيم في كلا الوضعين.
ملاحظة
كما هو مذكور أعلاه، إذا فشل إجراء لقطات الشاشة نفسه، فقد يكون لديك مربع حوار التحكم في حساب المستخدم (UAC) يمنع تنفيذ التدفق الخاص بك. يرجى تسجيل الدخول إلى الجهاز الذي يقوم بإعادة إنتاج المشكلة مع الحساب الذي تستخدمه لتنفيذ التدفق ومعرفة ما إذا كان لديك مربع حوار حظر. إذا قمت بذلك، فقم بتغيير روتين بدء التشغيل لمنع حدوث ذلك.
إذا كان البرنامج النصي يحتوي على خطوات أخرى، فقد يفشل بعد تغيير السلوك لعدم طرح الأخطاء حتى نتمكن من التقاط لقطة شاشة. لذلك يجب تجاهل حالات الفشل بعد لقطة الشاشة الثانية.
بمجرد فهم المشكلة وإصلاحها، قم باستعادة السلوك الأصلي لتدفقك لطرح الأخطاء.