طريقة واحدة للاتصال من الخلفية exe إلى ActiveX (أداة الشريط الجانبي)

StackOverflow https://stackoverflow.com/questions/1629456

  •  06-07-2019
  •  | 
  •  

سؤال

أحتاج إلى تواصل صغير بين عملية التطبيق/الخلفية والأداة ، أعتقد أنه أسهل في صنع وحدة ActiveX الخاصة بها فقط getText () و setText (). أحتاج إلى تمرير سلسلة مرة واحدة في الثانية أو نحو ذلك. أعتقد أن كائن ActiveX يجب أن يستخدم البيانات المشتركة بحيث يمكن لـ EXE ActiveSoBject () (التي تم إنشاؤها بواسطة صفحة JavaScript Gadget) الوصول إلى البيانات التي تم تعيينها بواسطة EXE.

ما هي أفضل طريقة للقيام بهذا النشط؟ هل يجب أن أسمي بعض طريقة myactivex.settext () من عملية التشغيل ، ولكن كيفية مشاركة البيانات بين وحدات ActiveX في هذه الحالة؟ ما هو وضع الخيوط للاختيار؟ هل يؤثر الاستئصال على شيء ما؟ هل يجب علي إنشاء كائن أتمتة من Delphi Gui؟

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

المحلول

أنت بحاجة إلى نوع من IPC (اتصال بين العمليات). لديك العديد من الخيارات:

  • الجوارب
  • رسائل
  • أنابيب اسمها
  • ذكريات مشتركه
  • Mailslots
  • الملفات (الإخطارات) ....

هناك العديد من الطرق ، لقد وصفت للتو أكثرها شعبية. إذا كنت تبحث عن حل سريع وسهل الاستخدام ، يمكنك التحقق من بلدي IPC (أنابيب مسماة)

نصائح أخرى

أعتقد أن الخيار الأفضل لك هو استخدام مآخذ إندي إلى comunicate 2 o المزيد من التطبيقات. لنقل البيانات بين التطبيقات ، أستخدم رؤوس نوع المحتوى في HTTP للسماح بتمثيلات مختلفة (النص ، ثنائي ، XML).

وداعا.

يمكنك استخدام Mailslots (تشمل أيضا في JVCL أعتقد). أنها تعمل بشكل جيد لتواصل طريقة واحدة.

أبسط (على ما أظن) هو استخدام SendMessage مع WM_CopyData.

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