كيف أقوم بتشغيل برنامج C كمؤشر ترابط من تطبيق C * System Tray Application؟

لدي تطبيق C console الذي كان يتم تشغيله في المقدمة في محطة CMD في Windows واتخاذ مدخلات ضغط المفاتيح للمستخدم. ومع ذلك ، يجب الآن نقله إلى الخلفية ولا يتطلب إدخال المستخدم.

لقد قمت بإنشاء درج النظام ، والذي يتم تنفيذه بشكل صحيح من خلال النقر بزر الماوس الأيمن والنقر بزر الماوس الأيمن. ويكون لديك برنامج المحطة التي تقوم بهذه الوظيفة.

بدلاً من إعادة كتابة البرنامج مرة أخرى ، أود أن أتمكن من إنشاء سلسلة محادثات تستدعي الوظائف من برنامجي الحالي والتي لا تتطلب الجهاز.

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

Question: Is this possible? And how would I be able to implement this?

(أنا عموما لا مبرمج الكمبيوتر باستخدام أكثر جزءا لا يتجزأ من C لذلك. NET هو أجنبي تماما بالنسبة لي. أي مساعدة هو موضع تقدير كبير)

2
لا توجد تفاصيل كافية للإجابة .... ولكن من الممكن أن يقوم برنامج .NET بتشغيل تطبيق وحدة التحكم في الخلفية.
وأضاف المؤلف Keith Nicholas, مصدر
لا توجد تفاصيل كافية للإجابة .... ولكن من الممكن أن يقوم برنامج .NET بتشغيل تطبيق وحدة التحكم في الخلفية.
وأضاف المؤلف Keith Nicholas, مصدر
لا توجد تفاصيل كافية للإجابة .... ولكن من الممكن أن يقوم برنامج .NET بتشغيل تطبيق وحدة التحكم في الخلفية.
وأضاف المؤلف Keith Nicholas, مصدر
يمكن لتطبيق علبة تشغيل العملية
وأضاف المؤلف Keith Nicholas, مصدر
يمكن لتطبيق علبة تشغيل العملية
وأضاف المؤلف Keith Nicholas, مصدر
يمكن لتطبيق علبة تشغيل العملية
وأضاف المؤلف Keith Nicholas, مصدر
rodrigogq - عذر رجل. ربما قد أعطيتك نصيحة سيئة. بدا للتو ، من سؤاله ، أنه يريد أن يكون قادرا على استدعاء وظائف من برنامج C. إذا كانت إجابتك تعمل من أجله ، فهي ببساطة أكثر بساطة وتستحق الإجابة. غلبت إجابتك ، في أي حال.
وأضاف المؤلف Icemanind, مصدر
HarryJohnston - إنه لن يحتاج إلى إعادة بنائه كملف DLL. لا يزال بإمكانك تصدير الدالات في ملف EXE. لكنه يجعل أكثر منطقية كما DLL
وأضاف المؤلف Icemanind, مصدر
HarryJohnston - إنه لن يحتاج إلى إعادة بنائه كملف DLL. لا يزال بإمكانك تصدير الدالات في ملف EXE. لكنه يجعل أكثر منطقية كما DLL
وأضاف المؤلف Icemanind, مصدر
HarryJohnston - إنه لن يحتاج إلى إعادة بنائه كملف DLL. لا يزال بإمكانك تصدير الدالات في ملف EXE. لكنه يجعل أكثر منطقية كما DLL
وأضاف المؤلف Icemanind, مصدر
أعتقد من أجل القيام بذلك ، يجب تصدير الوظائف في برنامج C باستخدام شيء مثل _declspec (dllexport)
وأضاف المؤلف Icemanind, مصدر
أعتقد من أجل القيام بذلك ، يجب تصدير الوظائف في برنامج C باستخدام شيء مثل _declspec (dllexport)
وأضاف المؤلف Icemanind, مصدر
أعتقد من أجل القيام بذلك ، يجب تصدير الوظائف في برنامج C باستخدام شيء مثل _declspec (dllexport)
وأضاف المؤلف Icemanind, مصدر
rodrigogq - من سؤاله ، يقول "أود أن أكون قادراً على إنشاء موضوع يستدعي المهام من برنامجي الحالي".
وأضاف المؤلف Icemanind, مصدر
rodrigogq - عذر رجل. ربما قد أعطيتك نصيحة سيئة. بدا للتو ، من سؤاله ، أنه يريد أن يكون قادرا على استدعاء وظائف من برنامج C. إذا كانت إجابتك تعمل من أجله ، فهي ببساطة أكثر بساطة وتستحق الإجابة. غلبت إجابتك ، في أي حال.
وأضاف المؤلف Icemanind, مصدر
rodrigogq - عذر رجل. ربما قد أعطيتك نصيحة سيئة. بدا للتو ، من سؤاله ، أنه يريد أن يكون قادرا على استدعاء وظائف من برنامج C. إذا كانت إجابتك تعمل من أجله ، فهي ببساطة أكثر بساطة وتستحق الإجابة. غلبت إجابتك ، في أي حال.
وأضاف المؤلف Icemanind, مصدر
rodrigogq - من سؤاله ، يقول "أود أن أكون قادراً على إنشاء موضوع يستدعي المهام من برنامجي الحالي".
وأضاف المؤلف Icemanind, مصدر
rodrigogq - من سؤاله ، يقول "أود أن أكون قادراً على إنشاء موضوع يستدعي المهام من برنامجي الحالي".
وأضاف المؤلف Icemanind, مصدر
نعم ، من المؤكد تقريبًا أن إعادة إنشاء برنامج C الخاص بك بمثابة DLL الذي يصدر واحدة أو أكثر من المهام. أنا متأكد إلى حد ما يمكنك الاتصال DLLs إجبارية من C# ، على الرغم من أنني لست على دراية بهذه الطريقة.
وأضاف المؤلف Harry Johnston, مصدر
نعم ، من المؤكد تقريبًا أن إعادة إنشاء برنامج C الخاص بك بمثابة DLL الذي يصدر واحدة أو أكثر من المهام. أنا متأكد إلى حد ما يمكنك الاتصال DLLs إجبارية من C# ، على الرغم من أنني لست على دراية بهذه الطريقة.
وأضاف المؤلف Harry Johnston, مصدر
نعم ، من المؤكد تقريبًا أن إعادة إنشاء برنامج C الخاص بك بمثابة DLL الذي يصدر واحدة أو أكثر من المهام. أنا متأكد إلى حد ما يمكنك الاتصال DLLs إجبارية من C# ، على الرغم من أنني لست على دراية بهذه الطريقة.
وأضاف المؤلف Harry Johnston, مصدر
rodrigogq يبدو أنني سوف أعيد بناء كملف DLL. ذكرت Rodrigogq أنني قد أكون قادراً على البدء في العملية والخروج منها ، فكيف أكون قادرا على القيام بهذا ، لأن هذا يبدو لي الخيار الأبسط؟ أم أن هذه ليست فكرة جيدة؟
وأضاف المؤلف Luke, مصدر
icemanind مرحبا أنا ربما التصدير إلى DLL. ومع ذلك ، هناك أي سبب لعدم مجرد أن تكون قادرة على بدء والخروج من هذه العملية. قلت أنني كنت أتطلع إلى استدعاء وظائفي من خيط ، ولكن إذا كان من الممكن فقط بدء تطبيق C (بدون فتح الطرفية) في الخلفية ، وإغلاقه مع تطبيق النظام لا أستطيع أن أرى لماذا أريد تفعل ذلك بهذه الطريقة ... شكرا
وأضاف المؤلف Luke, مصدر
icemanind مرحبا أنا ربما التصدير إلى DLL. ومع ذلك ، هناك أي سبب لعدم مجرد أن تكون قادرة على بدء والخروج من هذه العملية. قلت أنني كنت أتطلع إلى استدعاء وظائفي من خيط ، ولكن إذا كان من الممكن فقط بدء تطبيق C (بدون فتح الطرفية) في الخلفية ، وإغلاقه مع تطبيق النظام لا أستطيع أن أرى لماذا أريد تفعل ذلك بهذه الطريقة ... شكرا
وأضاف المؤلف Luke, مصدر
icemanind مرحبا أنا ربما التصدير إلى DLL. ومع ذلك ، هناك أي سبب لعدم مجرد أن تكون قادرة على بدء والخروج من هذه العملية. قلت أنني كنت أتطلع إلى استدعاء وظائفي من خيط ، ولكن إذا كان من الممكن فقط بدء تطبيق C (بدون فتح الطرفية) في الخلفية ، وإغلاقه مع تطبيق النظام لا أستطيع أن أرى لماذا أريد تفعل ذلك بهذه الطريقة ... شكرا
وأضاف المؤلف Luke, مصدر
أغتنم أي واحد مهتم: قمت بتنفيذ كل من حلول rodrigogq و icemanind. حل -rodrigogq لاستخدام Process.Start كان سهل التنفيذ بشكل لا يصدق (وصلة ذات صلة مفيدة هي stackoverflow.com/questions/3847330/&hellip؛ ) - كانت محدودة عندما يتعلق الأمر بإغلاق العملية بشكل صحيح. كان من الصعب تنفيذ الحل الأكاديمي ، وكان له مزايا من حيث السيطرة (على سبيل المثال إذا كانت هناك حاجة إلى ملف) استخدمت حل rodrigogq في هذه الحالة ولكن هناك حالات مماثلة بالتأكيد باستخدام DLL هو أكثر ملاءمة
وأضاف المؤلف Luke, مصدر
أغتنم أي واحد مهتم: قمت بتنفيذ كل من حلول rodrigogq و icemanind. حل -rodrigogq لاستخدام Process.Start كان سهل التنفيذ بشكل لا يصدق (وصلة ذات صلة مفيدة هي stackoverflow.com/questions/3847330/&hellip؛ ) - كانت محدودة عندما يتعلق الأمر بإغلاق العملية بشكل صحيح. كان من الصعب تنفيذ الحل الأكاديمي ، وكان له مزايا من حيث السيطرة (على سبيل المثال إذا كانت هناك حاجة إلى ملف) استخدمت حل rodrigogq في هذه الحالة ولكن هناك حالات مماثلة بالتأكيد باستخدام DLL هو أكثر ملاءمة
وأضاف المؤلف Luke, مصدر
وقد طرح كل من icemanind و rodrigogq إجابات جيدة تظهر أنها ستكون حلول لمشكلتي. سوف أقوم بتحديث يوم الاثنين وأقول الخيار الذي ذهبت إليه ومدى سهولة تنفيذه.
وأضاف المؤلف Luke, مصدر
وقد طرح كل من icemanind و rodrigogq إجابات جيدة تظهر أنها ستكون حلول لمشكلتي. سوف أقوم بتحديث يوم الاثنين وأقول الخيار الذي ذهبت إليه ومدى سهولة تنفيذه.
وأضاف المؤلف Luke, مصدر
وقد طرح كل من icemanind و rodrigogq إجابات جيدة تظهر أنها ستكون حلول لمشكلتي. سوف أقوم بتحديث يوم الاثنين وأقول الخيار الذي ذهبت إليه ومدى سهولة تنفيذه.
وأضاف المؤلف Luke, مصدر
rodrigogq يبدو أنني سوف أعيد بناء كملف DLL. ذكرت Rodrigogq أنني قد أكون قادراً على البدء في العملية والخروج منها ، فكيف أكون قادرا على القيام بهذا ، لأن هذا يبدو لي الخيار الأبسط؟ أم أن هذه ليست فكرة جيدة؟
وأضاف المؤلف Luke, مصدر
rodrigogq لا يتوقع أي نوع من إدخال المستخدم أكثر من ذلك
وأضاف المؤلف Luke, مصدر
rodrigogq لا يتوقع أي نوع من إدخال المستخدم أكثر من ذلك
وأضاف المؤلف Luke, مصدر
rodrigogq لا يتوقع أي نوع من إدخال المستخدم أكثر من ذلك
وأضاف المؤلف Luke, مصدر
دعني أعيد صياغة الأمر ليكون أكثر وضوحًا. الاعتذار.
وأضاف المؤلف Luke, مصدر
دعني أعيد صياغة الأمر ليكون أكثر وضوحًا. الاعتذار.
وأضاف المؤلف Luke, مصدر
البرنامج C غامض للغاية. أعتقد أنك تعني تطبيق وحدة تحكم مكتوب في C ، وفي هذه الحالة يكون الجواب لا ، ولا يمكن تشغيل تطبيق وحدة التحكم كتطبيق للﺩرج بدون تعديلات ؛ يجب أن يكون لديك على الأقل مقبض نافذة وحلقة رسائل لتلقي الإشعارات ، التي لا تحتوي على تطبيقات وحدة التحكم.
وأضاف المؤلف Ken White, مصدر
البرنامج C غامض للغاية. أعتقد أنك تعني تطبيق وحدة تحكم مكتوب في C ، وفي هذه الحالة يكون الجواب لا ، ولا يمكن تشغيل تطبيق وحدة التحكم كتطبيق للﺩرج بدون تعديلات ؛ يجب أن يكون لديك على الأقل مقبض نافذة وحلقة رسائل لتلقي الإشعارات ، التي لا تحتوي على تطبيقات وحدة التحكم.
وأضاف المؤلف Ken White, مصدر
Keith: هذا ليس تطبيق علبة ، على الرغم من ذلك ، وهو ما يسأل السؤال.
وأضاف المؤلف Ken White, مصدر
Keith: هذا ليس تطبيق علبة ، على الرغم من ذلك ، وهو ما يسأل السؤال.
وأضاف المؤلف Ken White, مصدر
Keith: هذا ليس تطبيق علبة ، على الرغم من ذلك ، وهو ما يسأل السؤال.
وأضاف المؤلف Ken White, مصدر
إذا كان يريد فقط بدء العملية والخروج منها ، لا أعلم سبب حاجته إلى هذا الحد .. فقط ابدأ .. واخرج عندما يطلب المستخدم الخروج. نسيت شيئا ما هنا؟ سيتعين على المربع حول أن يطلب إصدار المحطة أو شيء من هذا القبيل. هم الاشياء المفصولة.
وأضاف المؤلف rodrigogq, مصدر
لوقا ، هل برنامج C الخاص بك يتوقع أي ملك للضغط المفتاح ، إدخال المستخدم؟
وأضاف المؤلف rodrigogq, مصدر
لوقا ، هل برنامج C الخاص بك يتوقع أي ملك للضغط المفتاح ، إدخال المستخدم؟
وأضاف المؤلف rodrigogq, مصدر
إذا كان يريد فقط بدء العملية والخروج منها ، لا أعلم سبب حاجته إلى هذا الحد .. فقط ابدأ .. واخرج عندما يطلب المستخدم الخروج. نسيت شيئا ما هنا؟ سيتعين على المربع حول أن يطلب إصدار المحطة أو شيء من هذا القبيل. هم الاشياء المفصولة.
وأضاف المؤلف rodrigogq, مصدر
إذا كان يريد فقط بدء العملية والخروج منها ، لا أعلم سبب حاجته إلى هذا الحد .. فقط ابدأ .. واخرج عندما يطلب المستخدم الخروج. نسيت شيئا ما هنا؟ سيتعين على المربع حول أن يطلب إصدار المحطة أو شيء من هذا القبيل. هم الاشياء المفصولة.
وأضاف المؤلف rodrigogq, مصدر
icemanind لا تمانع! تعلمت من التعليمات البرمجية الخاصة بك أيضا! :)
وأضاف المؤلف rodrigogq, مصدر
icemanind شكرا. ثم أزلت إجابتي. على أي حال ، يعد التصدير خيارًا جيدًا.
وأضاف المؤلف rodrigogq, مصدر
icemanind شكرا. ثم أزلت إجابتي. على أي حال ، يعد التصدير خيارًا جيدًا.
وأضاف المؤلف rodrigogq, مصدر
Luke I ألغيت جوابي للرجوع اليها. إذا كنت لا تتصل بشيء ، فقط جاري ، جرب ذلك.
وأضاف المؤلف rodrigogq, مصدر
Luke I ألغيت جوابي للرجوع اليها. إذا كنت لا تتصل بشيء ، فقط جاري ، جرب ذلك.
وأضاف المؤلف rodrigogq, مصدر
Luke I ألغيت جوابي للرجوع اليها. إذا كنت لا تتصل بشيء ، فقط جاري ، جرب ذلك.
وأضاف المؤلف rodrigogq, مصدر
icemanind لا تمانع! تعلمت من التعليمات البرمجية الخاصة بك أيضا! :)
وأضاف المؤلف rodrigogq, مصدر
icemanind لا تمانع! تعلمت من التعليمات البرمجية الخاصة بك أيضا! :)
وأضاف المؤلف rodrigogq, مصدر

7 إجابة

لست متأكدا إذا كان هذا هو ما تطلبه ، ولكن إذا كنت تسأل ما إذا كان يمكنك استدعاء وظائف من برنامج C الخاص بك من تطبيق C# ، فيمكنك ذلك. طالما لديك الشفرة المصدرية لبرنامج C الخاص بك. لكي تكون الوظائف في C متاحة لبرنامج C# ، يجب أن يتم تصديرها. سأريك مثالاً:

MyAddDll.h

#include 

extern "C"
{
    __declspec(dllexport) int Add(int a, int b);
}

المهم هنا هو أن الدالة الخاصة بك يتم لفها في كتلة extern "C" . في الأساس ، هذا يخبر المترجم بعدم تعكير اسم وظيفتك. القطعة الهامة الأخرى هي __ declspec (dllexport) . يخبر هذا المحول البرمجي أنك تريد تصدير هذه الوظيفة بحيث يمكن استدعاؤها من برنامج آخر (مثل برنامج C #).

MyAddDll.cpp

#include 
#include "MyAddDll.h"

extern "C"
{
    __declspec(dllexport) int Add(int a, int b)
    {
        return (a + b);
    }
}

مرة أخرى ، يتم التفاف التعليمات البرمجية في كتلة extern "C" وتحتاج إلى إضافة __ declspec (dllexport) إلى الدالة. الآن يمكنك ترجمة هذا إما إلى ملف DLL أو ملف EXE. الآن أن نسميها من C# ، لها مباشرة إلى الأمام:

MyProgram.cs

class Program
{
    [DllImport("c:\\PathToMyDllOrExeFile\\MyAddDll.dll")]
    public static extern int Add(int val1, int val2);

    static void Main(string[] args)
    {
        int val1 = 12;
        int val2 = 4;
        Console.WriteLine("{0} + {1} = {2}", val1, val2, Add(val1, val2));
    }
}

هذا كل ما هنالك!

واحد "gotcha" على الرغم من التأكد من أن كلا من برنامج C وبرنامج C# الخاص بك كلاهما كلاهما 32 بت أو 64 بت. لا يمكنك ترجمة برنامج C الخاص بك كـ 64 بت وبرنامج C# الخاص بك كـ 32 بت. يجب عليهما استخدام نفس طول البتة.

4
وأضاف
Luke - أي ملفات C التي تحتوي على وظائف تريد أن تكون قادرة على الاتصال في C# تحتاج إلى أن تكون ملفوفة
وأضاف المؤلف Icemanind, مصدر
Luke - شيء واحد آخر. لقد قمت بافتراض أن برنامج C الخاص بك قد تم تجميعه باستخدام برنامج Microsoft Visual Studio. إذا لم يكن هذا صحيحًا ، فأخبرني وسأقوم بتحديث إجابتي. __ declspec (dllexport) موجودة فقط في برنامج التحويل البرمجي لشركة Microsoft. لأي مترجم آخر ، سيكون علينا عمل ملف export.def.
وأضاف المؤلف Icemanind, مصدر
مرحبا شكرا هذا مفيد جدا. إذا كان لدي ملفات C متعددة ، فكل ما تحتاج إليه هو أن تكون ملفوفة في DLL أو إذا قمت بتغليف المفتاح الرئيسي باسم DLL يمكن أن يتصل بالملفات C الأخرى؟
وأضاف المؤلف Luke, مصدر
شكرا لكم. يجب أن يكون هذا مفيدًا في تنفيذ التغيير. في صحتك
وأضاف المؤلف Luke, مصدر
أستخدم أحدث نسخة مجانية من Microsoft Visual Studio.
وأضاف المؤلف Luke, مصدر

كما تم نشره بالفعل ، يمكنك استخدام Process.Start من علبة تطبيق C #.

   //Uses the ProcessStartInfo class to start new processes, 
   //both in a minimized mode. 
    void OpenWithStartInfo()
    {
        ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
        startInfo.WindowStyle = ProcessWindowStyle.Minimized;

        Process.Start(startInfo);

        startInfo.Arguments = "www.northwindtraders.com";

        Process.Start(startInfo);
    }

http://msdn.microsoft.com/en- لنا/مكتبة/53ezey2s (ت = vs.110) .aspx اتصال

You could try launching it on a hidden state: http://msdn.microsoft.com/en-us/library/system.diagnostics.processwindowstyle(v=vs.110).aspx

بعض المبرمجين يطلبون الحذر. في حالة توقع أي إدخال ، فربما تتوقف العملية. تأكد من عدم إيقاف برنامجك.

يمكنك محاولة بدء أمر cmd مع Process.Start أيضًا ، ولكن يمكنني القول أنها أكثر من اللازم. سيؤدي ذلك إلى بدء عملية أخرى بدون التحكم في تطبيق C# tray الخاص بك:

 Process.Start("start /min cmd /c mycommand");
3
وأضاف
لست متأكداً 100٪ من أنه يريد الاتصال بموظفه التنفيذي. أفكر أنه قد يرغب في استدعاء وظيفة محددة أو وظائف محددة يتم تجميعها في ملفه التنفيذي.
وأضاف المؤلف Icemanind, مصدر
rodrigogq أعتقد أن أفضل حل لمشكلتي هو إنشاء مؤشر يستدعي دالات DLL. على الرغم من أن إجابتك قد أكون قادرة على استخدام تطبيق مختلف قليلاً ، فأنا بحاجة أيضًا إلى التشغيل التلقائي. في صحتك
وأضاف المؤلف Luke, مصدر

كما تم نشره بالفعل ، يمكنك استخدام Process.Start من علبة تطبيق C #.

   //Uses the ProcessStartInfo class to start new processes, 
   //both in a minimized mode. 
    void OpenWithStartInfo()
    {
        ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
        startInfo.WindowStyle = ProcessWindowStyle.Minimized;

        Process.Start(startInfo);

        startInfo.Arguments = "www.northwindtraders.com";

        Process.Start(startInfo);
    }

http://msdn.microsoft.com/en- لنا/مكتبة/53ezey2s (ت = vs.110) .aspx اتصال

You could try launching it on a hidden state: http://msdn.microsoft.com/en-us/library/system.diagnostics.processwindowstyle(v=vs.110).aspx

بعض المبرمجين يطلبون الحذر. في حالة توقع أي إدخال ، فربما تتوقف العملية. تأكد من عدم إيقاف برنامجك.

يمكنك محاولة بدء أمر cmd مع Process.Start أيضًا ، ولكن يمكنني القول أنها أكثر من اللازم. سيؤدي ذلك إلى بدء عملية أخرى بدون التحكم في تطبيق C# tray الخاص بك:

 Process.Start("start /min cmd /c mycommand");
3
وأضاف
لست متأكداً 100٪ من أنه يريد الاتصال بموظفه التنفيذي. أفكر أنه قد يرغب في استدعاء وظيفة محددة أو وظائف محددة يتم تجميعها في ملفه التنفيذي.
وأضاف المؤلف Icemanind, مصدر
rodrigogq أعتقد أن أفضل حل لمشكلتي هو إنشاء مؤشر يستدعي دالات DLL. على الرغم من أن إجابتك قد أكون قادرة على استخدام تطبيق مختلف قليلاً ، فأنا بحاجة أيضًا إلى التشغيل التلقائي. في صحتك
وأضاف المؤلف Luke, مصدر

كما تم نشره بالفعل ، يمكنك استخدام Process.Start من علبة تطبيق C #.

   //Uses the ProcessStartInfo class to start new processes, 
   //both in a minimized mode. 
    void OpenWithStartInfo()
    {
        ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
        startInfo.WindowStyle = ProcessWindowStyle.Minimized;

        Process.Start(startInfo);

        startInfo.Arguments = "www.northwindtraders.com";

        Process.Start(startInfo);
    }

http://msdn.microsoft.com/en- لنا/مكتبة/53ezey2s (ت = vs.110) .aspx اتصال

You could try launching it on a hidden state: http://msdn.microsoft.com/en-us/library/system.diagnostics.processwindowstyle(v=vs.110).aspx

بعض المبرمجين يطلبون الحذر. في حالة توقع أي إدخال ، فربما تتوقف العملية. تأكد من عدم إيقاف برنامجك.

يمكنك محاولة بدء أمر cmd مع Process.Start أيضًا ، ولكن يمكنني القول أنها أكثر من اللازم. سيؤدي ذلك إلى بدء عملية أخرى بدون التحكم في تطبيق C# tray الخاص بك:

 Process.Start("start /min cmd /c mycommand");
3
وأضاف
لست متأكداً 100٪ من أنه يريد الاتصال بموظفه التنفيذي. أفكر أنه قد يرغب في استدعاء وظيفة محددة أو وظائف محددة يتم تجميعها في ملفه التنفيذي.
وأضاف المؤلف Icemanind, مصدر
rodrigogq أعتقد أن أفضل حل لمشكلتي هو إنشاء مؤشر يستدعي دالات DLL. على الرغم من أن إجابتك قد أكون قادرة على استخدام تطبيق مختلف قليلاً ، فأنا بحاجة أيضًا إلى التشغيل التلقائي. في صحتك
وأضاف المؤلف Luke, مصدر

يمكنك بدء برنامج C من .NET code عبر System.Diagnostics.Process. سيتم تشغيله في عملية منفصلة.

يمكنك قتل العملية من .NET code أيضًا

1
وأضاف
يسأل السؤال عن تطبيق علبة النظام ، وهو ليس مثل تطبيق وحدة التحكم الذي تم تشغيله من خلال Process .
وأضاف المؤلف Ken White, مصدر

يمكنك بدء برنامج C من .NET code عبر System.Diagnostics.Process. سيتم تشغيله في عملية منفصلة.

يمكنك قتل العملية من .NET code أيضًا

1
وأضاف
يسأل السؤال عن تطبيق علبة النظام ، وهو ليس مثل تطبيق وحدة التحكم الذي تم تشغيله من خلال Process .
وأضاف المؤلف Ken White, مصدر

يمكنك بدء برنامج C من .NET code عبر System.Diagnostics.Process. سيتم تشغيله في عملية منفصلة.

يمكنك قتل العملية من .NET code أيضًا

1
وأضاف
يسأل السؤال عن تطبيق علبة النظام ، وهو ليس مثل تطبيق وحدة التحكم الذي تم تشغيله من خلال Process .
وأضاف المؤلف Ken White, مصدر