سؤال

أواجه بعض المشكلات 64 بت. ها هي السبق الصحفي:

لدي 32 بت كوم exe (مكتوب في Foxpro). يستدعي هذا exe كوم DLL 32 بت (مكتوب أيضًا في Foxpro). في عالم Windows 32 بت ، يتم وضع DLL في C:/Windows/System32 دليل ، مسجل مع C:/Windows/System32/regsvr32.exe وكل شيء على ما يرام. يمكن إطلاق EXE وأي عمليات تتطلب DLL على ما يرام.

إنها قصة مختلفة في العالم 64 بت. حاولت تثبيت هذا التطبيق على جهاز يعمل Windows 7 x64 مثل ذلك:

  • أضع DLL في C:/Windows/SysWOW64
  • أنا أسجلها مع C:/Windows/SysWow64/regsvr32.exe, ، لكنني لم أتمكن فقط من الحصول على التسجيل للنجاح من خلال الجري regsvr32 باستخدام خيار قائمة سياق "تشغيل كمسؤول".

الآن عندما أحاول تشغيل exe الخاص بي ، من غير قادر على استدعاء DLL إلا عندما يتم إطلاق exe الخاص بي باستخدام خيار "Run As Ashiptrator". هذا ليس جيدا. لا ينبغي أن يُطلب من المستخدم أن يكون مسؤولًا فقط لتشغيل تطبيق بسيط.

هل يعرف أي شخص كيف يمكنني الحصول على هذا العمل دون الحاجة إلى خيار "تشغيل كمسؤول"؟

شكرًا لك!

-كين

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

المحلول

الأشياء القديمة ، ربما لم تتم تجربتها أبدًا على حساب مستخدم مع امتيازات محدودة من قبل. من المحتمل أن يقوم بشيء Verboten ، مثل الكتابة إلى مفاتيح التسجيل في برنامج HKLM أو إنشاء ملف في C: Windows. لقد انتهى الأمر وفعله مع هذه الأيام.

إذا لم يكن لديك أي فكرة عما يمكن القيام به ، فاستخدم أداة Procmon الخاصة بـ Sysinternals لمراقبة ذلك باستخدام القرص والسجل. يجب أن يخرج الخطأ الذي تم رفض الوصول إليه ، على الرغم من أن الأمر يتطلب القليل من الحفر. إذا لم تتمكن من تغيير الرمز ، فعليك حقًا التفكير في نهاية هذا المكون. يمكنك اختراق حقوق مفتاح الملف أو التسجيل المحدد الذي تحاول التحضير كحل وسيط. تأكد من عدم فعل أي شيء في دلائل C: Windows ، التي تسبب مشكلة أكبر مما يحل. وهو شيء آخر ، مكونك حقًا لا ينتمي إلى دليل Windows الخاص.

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