سؤال

أحاول تكييف تطبيق تم تطويره في VS 2008/C# يستمع إلى رسائل WM_ لتطبيق آخر من خلال استخدام طريقة Control.wndproc. عندما "app.exe" يتم تشغيل الإصدار ، رسائل WM_USER مرئية ومعالجتها ؛ ولكن عندما "app.vshost.exe" يتم تشغيل الإصدار ، ولم تعد هذه الرسائل نفسها مرئية للتطبيق وبالتالي لا تتم معالجتها. يبدو أن كلا من إصدارات ".exe" و "vshost.exe" تتلقى رسائل WM_ الأخرى (من خلال وضع استراحة على WNDPROC ، ومع ذلك لا يمكن احتجاز رسائل WM_USER في إصدار "Vshost.exe". إعدادات أمان التطبيق تم تعيينه ليكون "تطبيق الثقة الكامل".

لجعل الأمور أكثر إرباكًا ، عندما نقلت نفس رمز المصدر إلى كمبيوتر آخر ، تمكن الكمبيوتر الثاني من رؤية ومعالجة رسائل WM_USER لكل من إصدارات "app.exe" و "app.vshost.exe" ، والتي تقودني للاعتقاد بأنها مشكلة بيئة في جهاز الكمبيوتر الخاص بي.

هل يمكن لأي شخص توجيهني إلى ما يمكن أن يكون فريدًا في بيئة التطوير التي يمكن أن تفسر الفرق في رؤية رسائل WM_USER؟

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

المحلول

إذا كنت تقوم بتشغيل Visual Studio كمسؤول على الشخص الذي لا يعمل ، وهذا هو Windows Vista ، فإن الحل هو عدم تشغيل Visual Studio كمسؤول.

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