- إنشاء عملية عن بعد عن طريق ومي وانتظر من ذلك للخروج I039m باستخدام System. Management لبدء عملية على هدف بعيد عن طريق ومي مثل هذا: إنبوتباراميترز (كوتكوماندلينيكوت) كوتكسكوتابل هناوتخرجباراميترز ManagementClass. InvokeMethod (كوكريتكوت، إنبوتباراميترز، لا شيء) هذا انطلاق لا تزال العملية ورمز بلدي لتشغيل، ولكن أنا بحاجة إلى وسيلة لرصد تلك العملية وعدم القيام بأي شيء آخر حتى ينتهي. هل هناك حل بسيط I039m أمل هناك 039s شيء مماثل ل process. WaitForExit مثل هناك عند إنشاء عملية محلية. I039m وجود مشكلة مع استخدام system. diagnostic. process. في الأساس، يمكنني can039t الحصول على myProcess. WaitForExit للعمل. وأظل الحصول على خطأ قائلا أن عملية كوتنو يرتبط هذا object. quot. I039m غير متأكد ما I039m القيام خطأ. ما أريد معرفته هو إذا كان هناك طريقة لعدم الانتظار لعملية عند استخدام انتحال الهوية. هناك039s أي حمولة حتى I039m غير متأكد من كيفية القيام بذلك. ينتظر دائما للخروج للمتابعة Impersonation. RunProessess (سوميبروسيسباث) السبب الذي أريد القيام به هو أن لدي تطبيق تنفيذ طويلة التي تعالج الملفات الكبيرة، ولكن أريد أن تقديم استجابة ناجحة للعميل أن العملية قد بدأت قبل توجيه إلى صفحة الحالة. لا أستطيع تشغيل العملية مع عملية عادية. بدء () لأن يوسر يحتاج إلى انتحال شخصية حساب مستخدم مرتفعة. I039ve حتى حاولت استخدام process. StartInfo بعد Impersonation. Login () وتزويد أونباس، ولكن أعتقد أن حالة إنكووت كوتلوغد هو جزء من طبقة انتحال الهوية الثابتة فقط. إف (Impersonation. Logon (LoginCredentials. UserName، LoginCredentials. Password)) هذا يفشل مع رمز الخروج امتيازات غير صالحة لدي برنامج يقوم بتشغيل الأمر سمد. مشكلتي هي أريد أن ينتظر البرنامج حتى ينتهي تجهيز سمد ثم في إغلاق واجهة المستخدم سمد. رمز I039m وجود مشاكل مع شريط التقدم. I039ve إنشاء شريط التقدم الذي يقرأ متغيرات التسجيل ويستخدم هذا الإدخال لتحديث بروجريسبار وبعض رسائل الحالة (حتى أستطيع أن نسميها من فكريبتس، الخ). أريد ذلك حتى عندما يضرب شريط الحالة بلدي 100، يتوقف شريط، ينتظر بضع ثوان، ومن ثم إنهاء. ومع ذلك، يبدو أن البرنامج يعالج التعليمات البرمجية المتبقية وينهي التطبيق قبل أن يكون الوقت لإعادة رسم تماما شريط التقدم (I039m التخمين هذا لأنه سيتم تحديث عادة إلى حوالي 10 قبل أن يخرج). I039m باستخدام شيء من هذا القبيل. إذا برنت 100 ثم progbar. Style ProgressBarStyle. Blocks progbar. Value 0 أود أن زيب ملف مع ف. التعليمات البرمجية التالية من عنوان ورل التعليمات البرمجية I039m تنفيذ عملية بعيدة باستخدام ومي وترغب في إعادة توجيه ستانداردوتبوت من هذه العملية مرة أخرى إلى البرنامج. لقد وجدت هذه الأمثلة التعليمات البرمجية: أنا تكافح كثيرا مع هذا الرمز أحاول الوصول إلى العمل. لقد نجحت في إجراء اتصال مع كائن تكبكلينت إلى جهازين منفصلين عن بعد ونقل البيانات إليهما. أساسا، I039m محاولة الاتصال إلى الجهاز 1 على المنفذ 80 وإرسال طلب جيت. بمجرد إرسال الطلب أريد للحفاظ على اتصال على قيد الحياة حتى أن البرنامج على الجانب الآخر يمكن أن ترسل لي البيانات عندما يكون جاهزا. كيف يمكنني الحفاظ على اتصال مفتوح وقراءة البيانات في كل مرة يتم إتاحتها في تيار لقد حاولت وحاول استخدام NetworkStream. Read و بيجينريد دون جدوى. أقرب لقد جئت نائم بلدي الموضوع كل 30 ثانية ثم القيام آخر طلب جيت التي ليست هناك حاجة. هنا هو رمز الحالي لدي للقراءة من تيار. أنا أعرف أنني بحاجة إلى حلقة هنا في مكان ما: ملاحظة: ريموتيسوكيت هو كائن تكبكلينت الخاص بي التي يتم توصيلها بواسطة هذه النقطة ديم سيرفيرستريم كما نيتوركستريم RemoteSocket. GetStream () رست كوجيت كونترولكليبورواردينغستريمكاميرا نامكوت أمب أورلنكود (الاسم) أمب كوت HTTP1.0quot أمب فكرلف أمب فكرلف I تعرف كيفية إطلاق ملف أو قابل للتنفيذ في ف 2005. سيتم إطلاق الملف والتنفيذ في التعليمات البرمجية يستمر على الفور. ولكن ماذا لو كنت بحاجة لبدء البرنامج، وانتظر حتى ينتهي التنفيذ، وقراءة رمز الخروج الذي يرسل مرة أخرى، واتخاذ بعض الإجراءات بناء على رمز العمل كيف أفعل ذلك كيف يمكنني جعل برنامج ف التي يمكن كوتايتكوت ل عملية لبدء ثم قتله I039d ترغب في الحصول على وظيفة في البرنامج الذي ينتظر لبدء عملية، وبمجرد أن يفعل ذلك، فإنه ينفذ التعليمات البرمجية. إد ترغب في الحصول على شكل من 039 مربع الرسائل بلا رسالة 039 أو 039splash screen039 في انتظار القول كوتايتينغ لبدء العملية. كوت وبمجرد أن تبدأ العملية، مربع رسالة سوف يطفو على السطح قائلا كوتريبروسيس ستارتكوت. كنت أفكر في وجود جهاز توقيت مع انخفاض التأخير حلقات باستمرار لمعرفة ما إذا كانت العملية موجودة، ولكن هذا سيكون قليلا الخام على المعالج، لا أيضا، كيف يمكنني إنجاز 039buttonless messagebox039 الذي يغلق تلقائيا مرة واحدة تم العثور على عملية I039m في محاولة لتطوير تطبيق ويندوز حيث يمكنني الحصول على اتصال إلى الملقم البعيد والبحث عن حالة العملية الذهاب في الملقم البعيد. لدينا العديد من الملقمات النائية حيث التثبيت التلقائي من البرامج مستمرة. لدينا ملف شمل (installstatus. xml) حيث يخبرنا في أي مرحلة التثبيت (مثال، إنبروغريس، اكتمل، فشل.) لذلك هدفنا هو تطوير تطبيق ويندوز حيث يمكنني الحصول على اتصال إلى تلك الخوادم والبحث عن حالة التثبيت الخاصة بهم (قد يكون من الممكن استخدام installstatus. xml للبحث عن حالة التثبيت). في كل مرة أقوم بالاتصال بخادم، يجب أن يتم تخزين معلومات الخادم في ملف شمل (أريد إنشاء ملف شمل حيث يجب أن يتم تخزين جميع خوادم قائمة ط الاتصال يجب أن تكون المخزنة) واجهة المستخدم في الجانب الأيسر يجب أن يكون قائمة من الخوادم يمكنني الاتصال. عندما أحصل على اتصال إلى الخادم، في الجانب الأيمن من واجهة المستخدم، أريد أن عرض حالة التثبيت (في التقدم، فشل. تفتح الشفرة التالية مستند ورد وتملأ البيانات كما تم تصميمها. عند الخروج منه، تبقى عملية WINWORD. EXE نشطة. إذا قمت بتنفيذ التعليمات البرمجية مرة ثانية والخروج منه مرة أخرى، تتم إضافة عملية WINWORD. EXE الثانية ويبقى نشطا. المثال الموضح في عنوان ورل. don039t تنتج نفس المشكلة. من الواضح I039m لا تخرج من التعليمات البرمجية كما ينبغي ولكن لا أرى أين where. code كنت أحاول أن تفعل حلقة حتى وأثناء وحتى ويتيفوريكسيت شيء يعمل بقدر ما لم أكن جيدة حقا مع loops. code أريد أن أقتحم الأمر إلغاء التثبيت مع ف، ولكن نريد أن ننتظر حتى الانتهاء من عملية إلغاء التثبيت مثل لوحة التحكم، يبدو أن الأمر شل لا يدرك it. code. أساسا، أنا مجرد محاولة إغلاق ثريادبروسيس بعد it039s القيام به. (بيفال تكست أس سترينغ) بريفات سوب Button1 انقر (بيفال سيندر أس System. Object، بيفال e أس System. EventArgs) مقابض Button1.Click ديم يسي كما بروسيسستارتينفو جديد (qum7.batquot) بيسي ستارتينفو خاص كمد كعملية مندوب عام سوب إنفوكويثسترينغ الشفرة. أنا أحاول إغلاق مؤشر الترابط حتى مرة واحدة it039s القيام به، أغلقت للخير وشكلي مغلق كذلك. حاولت Me. Close () مما يؤدي إلى: عملية كوتوس-ثرياد غير صالحة: التحكم 039Form1039 الوصول إليها من مؤشر ترابط آخر غير مؤشر الترابط الذي تم إنشاؤه على خطأ. كوت. Me. Invoke (نيو إنفوكويثسترينغ (أدرسوف كلوسيمي)، ه) - النتائج في خطأ عدم تطابق المعلمة. ومع ذلك، أشياء مثل مسغبوكس (كوتدونيكوت) يعمل تماما. لدينا تطبيق يسمح واجهة المستخدم المخصصة والتفاعل عبر سك. تم تطوير دل لهذا الغرض باستخدام ف و سك. يشير متغير الكائن إلى التطبيق وهناك بعض المتغيرات الكائن الأخرى للمكونات داخل التطبيق. لقد نشرت بلدي أب، وتثبيته على جهاز الكمبيوتر الخاص بي. الآن، أنا تشغيله ويعمل كبيرة، ولكن عندما أغلق عليه. exe don039t نهاية. أنا تشغيل وحدات الماكرو من زر انقر في طلبي. أريد وحدات الماكرو لتشغيل بنجاح قبل أن تبدأ عملية أخرى. أريد ستارتماكروسي لبدء وإكمال أولا قبل أن يبدأ ديليتفيليزي. أنا بحاجة إلى الانتظار حتى تكتمل قبل أن أفعل الدالات التالية. أدناه هو رمز بلدي. بريفات سوب Button2 انقر فوق (المرسل كما System. Object، ه كما System. EventArgs) مقابض button2.Click ستارتماكروسي () ديليتفيلسي () إنهاء الرمز الفرعي. أنا أعمل على قاذفة اللعبة، وأنا بحاجة إلى عرض سكرينكوت كوتسبلاش حتى بدأت اللعبة الرئيسية. لهذا، أنا بحاجة إلى معرفة ما إذا كان أو لم يكن العملية نافذة الرئيسية التي يتم تحميلها بالكامل وعرضها. الآن لاحظت مقبض النافذة الرئيسي هو 0 عندما يكون هناك لا شيء، لذلك حاولت استخدام ذلك: كودبوت مقبض أبدا يصبح غير صفرية . حاولت استخدام العنوان ولكن دون جدوى. أنا لا أريد أن أذهب إلى quThread. wait () كوت منذ ذلك الحين سوف دفقة تبقى حتى لو تم إطلاق اللعبة بالفعل. I039m لا يسأل عن كيفية الخروج من البرنامج (التخلص ()) بدلا من ذلك لدي برنامج يتحقق ما إذا كانت عملية معينة قيد التشغيل وإذا كان الأمر كذلك فإنه يعرض مربع رسالة، توقف العملية و (يجب) الخروج من البرنامج. إذا لم يتم الكشف عن العملية ثم البرنامج بتحميل عادة ويفتح برنامج خارجي. مشكلتي هي أنه يتوقف عن العملية ولا يزال يعمل البرنامج. كيف يمكنني إيقاف التعليمات البرمجية تماما والخروج من برنامج بلدي كتبت السطور التالية من التعليمات البرمجية داخل معالج حتى لحدث بروسسيكسيتد. الشيء الغريب حقا هو أنه في السطر الخامس أحصل على خطأ كاتبروسيس يجب الخروج قبل إنفورمايتون المطلوب يمكن تحديدها. (عند محاولة الوصول إلى رمز الخروج وقت الخروج أمب) بريفات سوب أسوسياتدبروسيسكسيتد (مرسل بيفال ككائن، بيفال e كما System. EventArgs) مقابض AssociatedProcess. Exited القيام به حتى AssociatedProcess. HasExited صحيح أريد التحقق من ما إذا كانت عملية تعمل في الكمبيوتر البعيد أو لا وإذا كان قيد التشغيل، قتله. أنا باستخدام التعليمات البرمجية التالية ولكن، فإنه يعطي خطأ qucouldn039t الاتصال ماشينكوت البعيد. هل أنا بحاجة إلى القيام بأي إعدادات الأمان في جهاز الكمبيوتر عن بعد حيث أنا ربط لكل ميوبج كما عملية في System. Diagnostics. Process. GetProcesses (كوت 192.168.0.138quot) إذا myObj. ProcessName. Equals (كوتومالارم System. exequot) ثم ميوبج. Kill () إند إف نيكست أنا أكتب برنامجا يبحث عن إكس معين يعمل على المحطات على نفس مجموعة العمل، إذا وجد أنه بعد ذلك سوف تقتله. أنا أعرف كيفية البحث عن تشغيل العمليات على جهاز الكمبيوتر المحلي ولكن لا يمكن معرفة كيفية القيام بذلك على جهاز كمبيوتر عن بعد. أنا قذيفة قادرة (كوتاسكيل S اسم الكمبيوتر F إم إكسيكوت) الذي يعمل، ولكن ليس لدي تسجيل الخطأ. إذا كان هناك خطأ التطبيق يتوقف فقط. يبدأ الرمز أدناه العملية الصحيحة ولكن لا يتم عرض نموذج ويندوز أبدا على الجهاز البعيد. كيف يمكنني الحصول على التطبيق لتحميل فعلا. بريفات سوب رونريموتبروسيس () سمد سمد كما سلسلة كوتك: بروغرام فيليزينترنيت ExplorerIEXPLORE. EXE كوت أمب txtData. Text. Trim 039 إضافة مرجع إلى System. Management في مستكشف الحلول لقد قمت بإنشاء أبليكاتيون الذي يفتح ملفات بدف لمختلف إعدادات جي بي آر إس من مختلف الهواتف . يتم تخزين هذه الملفات بدف على جهاز كمبيوتر بعيد (الجهاز المركزي). أواجه مشاكل في استخدام process. start. هذه هي التعليمات البرمجية التي أستخدمها في زر البحث الخاص بي: عملية ديم كعملية جديدة process. start ((q192.168.2.78C: المستندات والإعداداتمنددا الوثائقيسبرسبينكت) أمب ComboBox5.Text أمب qu. pdfquot) هل process. start التعرف على عناوين إب نسخ ملف إلى هدف بعيد حيث اتصالات ونك إلى الهدف قد لا يكون ممكنا. ومع ذلك اتصالات ونك من الهدف والعودة إلى الخادم سيكون دائما ممكنا. لذلك كانت الخطة لاستخدام ومي لبدء قذيفة الأوامر عن بعد (سمد) واستخدام الأمر نسخة للاستيلاء على الملف. ولكن هذا العمل لا يعمل. الأمر التالي يعمل بشكل جيد عند تنفيذ يدويا من سطر الأوامر الهدف: في فسكريبت، لإنشاء عملية جديدة على جهاز بعيد، هل يمكن استخدام هذا أود أن تفعل الشيء نفسه في استخدام ومي، وحاولت القيام به هذا على بلدي، ولكن بلدي التعليمات البرمجية لا يعمل بشكل صحيح. إذا قمت بتحديد بيانات اعتماد تسجيل الدخول الخاصة بي، سيتم تنفيذ العملية على الجهاز البعيد وتعمل التعليمات البرمجية بشكل جيد، ولكن أريد أن يقوم البرنامج بإرسال استعلام ومي باستخدام انتحال الهوية. اعتقدت هذا كان من المفترض أن ترسل بيانات اعتماد المستخدم للمستخدم باستخدام البرنامج إلى موفر ومي البعيد على الجهاز البعيد. هنا هو التعليمات البرمجية التي أستخدمها: أحتاج إلى التحقق مما إذا كانت عملية explorer. exe قيد التشغيل على كمبيوتر بعيد للتحقق من وجود مستخدم تسجيل الدخول إلى الكمبيوتر. أريد أيضا الحصول على مالك العملية من عملية explorer. exe للتحقق من المستخدم الذي تم تسجيل الدخول. لقد وجدت بعض الأمثلة فسكريبت على الانترنت، ولكن أنا can039t يبدو أن الحصول عليها للعمل. إذا كان أي شخص يعرف من أفضل طريقة لفحص إذا وما المستخدم تسجيل الدخول إلى جهاز كمبيوتر، من فضلك أعطني الرد أيضا. لقد حاولت System. Diagnostics. Process. GetProcesses، ولكن i can039t يبدو أن الحصول على صاحب العملية، وربما ومي سوف تفعل خدعة. أحاول الحصول على قائمة من العمليات التي تعمل على الجهاز البعيد واسم المستخدم تشغيلها. حتى الآن حصلت I039ve: ديم بس كما System. Diagnostics. Process لكل بس في System. Diagnostics. Process. GetProcesses (كوتميسرفركوت) ListBox1.Items. Add (ps. ProcessName) نكستيم باستخدام ومي لبدء عملية على جهاز بعيد. الدعوة إلى إنشاء عملية إرجاع فورا وأنا أيضا الحصول على معرف العملية على الجهاز البعيد. أود الانتظار حتى تكتمل العملية البعيدة. ويتمثل أحد الخيارات في استقصاء ما إذا كانت العملية على الجهاز البعيد مع المعرف المحدد لا تزال موجودة. ومع ذلك، كنت أتساءل عما إذا كان هناك طريقة أفضل لتحقيق هذا، ربما باستخدام وظائف وينابي الأصلية فقط للحصول على معلومات إضافية، وهذا هو الرمز الذي أستخدمه حاليا لبدء العملية عن بعد: طلب أبر 14 09 في 15:54 الأم الطريقة Win32 لتحقيق هذا سيكون لأداء ويتفورسينلوبجيكت () على مقبض العملية التي تم إرجاعها بواسطة كريتيبروسيس (). ولكن أنا لا أعتقد أن هذا المقبض هو متاح لك من ومي. توفر هذه المقالة خيارا آخر يمكن أن تفكر فيه - بدلا من استقصاء قائمة العمليات وانتظار العملية الخاصة بك لتختفي، فإنه يتكرر الاستعلام عن أحداث حذف العملية مطابقة معرف العملية الخاص بك: يمكنك أيضا تحسين على هذا باستخدام كائن ماناجيمنتيفاتشر وطريقة ويتفورنكستيفنت لها لتجنب الاضطرار إلى استطلاع لأحداث الحذف.
No comments:
Post a Comment