سؤال

(ص / ن)

يحرر:الوصول للقراءة فقط جيد.

لا يوجد حل صحيح

نصائح أخرى

لم أجرب هذا بعد، لكن أعتقد أنني وجدت حلاً بديلاً.

لا يستطيع Adobe AIR الكتابة إلى سجل Windows، ولكن يمكنك، مع ذلك، تشغيل عملية أصلية في AIR 2.إليك مشاركة مدونة توضح كيفية القيام بذلك: http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html

الآن، على نظام التشغيل Windows، يمكنك تعديل سجل Windows باستخدام ملفات .reg.ملفات .reg هي مجرد ملفات نصية عادية تتم قراءتها بواسطة regedit.exe.لذا، من الناحية النظرية، يمكنك كتابة ملف .reg إلى نظام الملفات، ثم تشغيل regedit.exe مع تمرير ملف .reg و...TADA!لقد قمت للتو بتعديل سجل Windows من تطبيق AIR الخاص بك!

لقراءة القيمة، يمكنك استخدام وظيفة التصدير الخاصة بـ regedit للكتابة إلى ملف reg والقراءة من ملف reg.تفاصيل خيارات رجديت: http://www.robvanderwoude.com/regedit.php

فيما يلي بعض الموارد الإضافية:
بناء جملة ملف .reg: http://support.microsoft.com/kb/310516
الكتابة إلى ملف مع AIR: http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html

إذا كنت ترغب في إجبار المستخدم على تثبيت تطبيق آخر أيضًا، فيمكنك كتابة خدمة Windows C# أو C++ صغيرة تفتح ببساطة مقبسًا يوفر نوعًا من البروتوكول للوصول إلى السجل.ثم في AIR، يمكنك استخدام فئة المقبس لإرسال رسائل من/إلى خدمة C# والتي من شأنها إرجاع النتائج إلى تطبيق AIR.

عند تحميل التطبيق، يمكنك محاولة الاتصال بالمقبس، وإذا تم رفض الاتصال، فيمكنك مطالبة المستخدم بتنزيل/تثبيت الخدمة.

أما بالنسبة للوصول المباشر إلى السجل، فأنا متأكد تمامًا من أن Adobe لن تسمح بذلك من AIR.

إذا كنت تستطيع أن أشعر بالرعب.

لماذا تصاب بالرعب؟Air عبارة عن نظام أساسي لسطح المكتب، كما أن الوصول إلى واجهات برمجة التطبيقات (API) الخاصة بنظام التشغيل (مثل الوصول إلى التسجيل) أمر منطقي للغاية.

ومع ذلك، فهو غير مدعوم الآن (ونظرًا لأن Adobe تبدو شديدة التركيز على نظام Mac، فأنا أشك في أنه سيتم إضافته على الإطلاق).

لقد استقرت على الحصول على اسم المستخدمين من اسم دليل المستخدم

سيعمل استخدام File.userDirectory.name في معظم الحالات، ولكن يبدو أن التنفيذ هش للغاية، فهو يعتمد على نظام التشغيل الذي يحافظ على تقليد استخدام اسم المستخدم كدليل له.يمكنني التفكير في بعض الأشياء المحتملة التي قد تؤدي إلى كسرها (اللعب باستخدام TweakUI وما إلى ذلك).

هل تحاول تحديد ما إذا كان المستخدم مسؤولاً أم لا؟

إذا كان الأمر كذلك، فيمكنك تصنيف اسم المستخدم باستخدام "File.userDirectory.name".

وأعتقد أنه لمعرفة ما إذا كان المستخدم مسؤولًا، فمن المحتمل أن تحاول الوصول إلى ملف يتطلب امتيازات المسؤول (ربما تحاول كتابة ملف إلى Windows/System32).إذا فشل الوصول إلى الملف، فمن المحتمل أن تفترض أن المستخدم لديه حساب محدود.

لقد تأخرت قليلاً، ولكن حصلت على رغبة أحد العملاء في قراءة بعض القيم من السجل عندما كان المشروع على وشك الانتهاء.لو كان هناك المزيد من هذه الأنواع من الرغبات، لما اخترت AIR أبدًا.لكنني وجدت امتدادًا رائعًا من FluorineFx، ومن خلال توسيعه، يمكنني الآن قراءة قيم السلسلة والكلمة المزدوجة من السجل.ويندوز فقط: http://aperture.fluorinefx.com/

فيما يلي نموذج لتعديل سجل Windows في Adobe Air باستخدام NativeProcess وPython.بحيث يمكنك إضافة أو حذف أو قراءة المفاتيح من خلال سطر واحد فقط من التعليمات البرمجية !!

تحميل: أدوبي معدل التسجيل الجوي على جيثب

يمكنك نظريًا تعديل ملفات التسجيل الفعلية، لكنني لا أشجع هذه الفكرة بشدة.

كن حذرًا جدًا إذا قررت إنشاء خادم مأخذ توصيل يستمع لأوامر التسجيل.من المحتمل أنك تقوم بإنشاء ثغرة أمنية وقد تعترض جدران الحماية الشخصية للمستخدمين الطريق من حيث سهولة الاستخدام.

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