مشاهدة النسخة كاملة : كيف أشغل برنامجي كمسؤول Administrator في Win7 ؟
الحويطي
25-07-2010, 01:25 PM
مرحبا بكم أخواني الكرام
كيف تشغيل البرنامج كـ Administrator للجهاز؟
ولكم مني أرق تحية
abedroof2001
25-07-2010, 04:07 PM
وجهتني نفس المشكلة كما في الصورة
http://i28.tinypic.com/drecqw.jpg
كل مرة ينفذ البرنامج ك administrator
الحويطي
25-07-2010, 04:44 PM
فهمتني خطأ أخي الغالي
السؤال برمجيا
kachwahed
25-07-2010, 05:53 PM
مرحبا بكم أخواني الكرام
السلام عليكم ورحمة الله :)
منذ مدة شاهدت محاضرة Marco Cantu حول ذلك لكنها ضاعت مني والسورس أيضا
ملخصها:
http://www.prototypical.co.uk/pdf/wrp.pdf
إلى حين أجدها جرب هذه:
function RunAsAdmin(hWnd: HWND; filename: string; Parameters: string): Boolean;
{
See Step 3: Redesign for UAC Compatibility (UAC)
http://msdn.microsoft.com/en-us/library/bb756922.aspx
}
var
sei: TShellExecuteInfo;
begin
ZeroMemory(@sei, SizeOf(sei));
sei.cbSize := SizeOf(TShellExecuteInfo);
sei.Wnd := hwnd;
sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
sei.lpVerb := PChar('runas');
sei.lpFile := PChar(Filename); // PAnsiChar;
if parameters <> '' then
sei.lpParameters := PChar(parameters); // PAnsiChar;
sei.nShow := SW_SHOWNORMAL; //Integer;
Result := ShellExecuteEx(@sei);
end;
ليس لدي Vista أو Seven لأجربها :)
راجع هنا أيضا محاضرة أخرى:
http://edn.embarcadero.com/article/33942
وهذا كتاب حول الموضوع:
http://www.delphi.org.nz/file.php/1/VistaUACandDelphi.pdf
بالتوفيق.
Amine
27-07-2010, 05:10 PM
السلام عليكم
سؤال مهم جدا ،، وانا اواجه نفس المشكل في الفيستا
بارك الله فيك اخي kachwahed على الافادة
لكن للاسف لم ينجح الكود معي حل المشكلة على الفيستا ؟؟
حاولت البحث فوجدت نفس الكود تقريبا
هل توجد طريقة اخرى ؟
Lam.Abdeldjalil
27-07-2010, 06:52 PM
و عليكم السلام ورحمة الله
لم أجرب مع الوينوز فيستا ولا 7
لكني وجدت مناقشة حول الموضوع في موقع Embarcadero
حل : إضافة XP manifest إلى الملف التنفيذي يجبر برنامجك على طلب صلاحيات admin
جرب ورد لنا الخبر :)
بالتوفيق
Amine
27-07-2010, 07:25 PM
شكرا عبد الجليل
لقد اظفته لكن لا جديد,,
لم يحدث اي تغيير
Lam.Abdeldjalil
27-07-2010, 09:38 PM
لم تنجح XP manifest :angry:
طريقة أخرى قم بنزع XP manifest
نقوم بإضافة الـ manifest يدويا إلى الريسورس
حمل الملف المرفق
قم بإضافة الريسورس إلى المشروع ( يوجد ملفا ريسورس )
أضف السطر إذا أردت فتح البرنامج بصلاحيات invoker
{$R vista.res}
أضف السطر إذا أردت فتح البرنامج بصلاحيات administrator
{$R vistaadm.res}
( ملف الريسورس أمام المشروع )
لمعرفة المزيد عن كيفية إستعمال ملفات الريسورس
http://www.delphi4arab.com/forum/showthread.php?t=2030
:)
B.M.AbdelAziZ
28-07-2010, 10:06 AM
السلام عليكم ورحمة الله
جرب اضافة مفتاح
Software\Microsoft\Windows NT\Current Version\AppCompatFlags\Layers
به مسار برنامجك وفي Data ضع RUNASADMIN
بالتوفيق
php3man
28-07-2010, 11:39 PM
بسم الله الرحمن الرحيم
السلام عليكم
طيب اذا برنامج أخر غير برنامجي كيف اختار برمجيا ما بالصوره
http://i28.tinypic.com/drecqw.jpg
الحويطي
30-07-2010, 07:08 AM
السلام عليكم ورحمة الله
جرب اضافة مفتاح
Software\Microsoft\Windows NT\Current Version\AppCompatFlags\Layers
به مسار برنامجك وفي Data ضع RUNASADMIN
بالتوفيق
كلام سليم 100% لكن هناك مشكلة هي
" أصلا أنا أود أن أستخدم الـ Run As Admin من أجل أن أكتب قيم في الرجستري "
يعني المشكلة لم تبرح مكانها .
ما هو رأيك :)
abedroof2001
30-07-2010, 05:11 PM
السلام عليكم أخي
لا أعلم كيف يكون برمجيا ولا كن أذا ملائة علامة الصح سوف تضل ممتلائة حتي وأن نقلتها ألي جهاز أخر
وبهذا تظل مرافقة لبرنامجك كأنك فعلتها برمجيا وهكذا
الحويطي
31-07-2010, 04:02 PM
السلام عليكم أخي
لا أعلم كيف يكون برمجيا ولا كن أذا ملائة علامة الصح سوف تضل ممتلائة حتي وأن نقلتها ألي جهاز أخر
وبهذا تظل مرافقة لبرنامجك كأنك فعلتها برمجيا وهكذا
كلام جميل... معلومة مهمة ... شكرا لك أخي الغالي
الحويطي
01-08-2010, 01:28 AM
كلام جميل... معلومة مهمة ... شكرا لك أخي الغالي
مع ذلك أخي الغالي أ ريد الأمر برمجيا ... ومازال البحث جاريا ... وحال حصولي عليه فلن أبخل عليكم
B.M.AbdelAziZ
01-08-2010, 10:47 AM
" أصلا أنا أود أن أستخدم الـ run as admin من أجل أن أكتب قيم في الرجستري "
يمكن اضافة المفتاح اثناء تنصيب برنامجك
mohfa
01-08-2010, 02:42 PM
هناك تطبيق صغير مع JEDI WSCL يدعى RunAsSys يمكنك البدء منه .
والله المستعان
السلام عليكم و رحمة الله و بركاته
- لتجاوز الـ UAC Rights :
- أولا قم بإنشاء ملف XML , يحتوي على :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0]
<assemblyIdentity version="1.1.1.1"
processorArchitecture="X86"
name="YourApplicationExeName"
type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2]
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly> - قم بتسمية الملف مثلا : MyPrg.manifest
- قم بإنشاء ملف نصي و أكتب فيه : 1 24 "MyPrg.manifest" و أحفظ الملف بإسم MyPrg.rc
- ولد ملف Resع, brcc32 MyPrg.rc .... تابع هذا الموضوع : هنا (http://www.delphi4arab.com/forum/showthread.php?t=2030)
- أرفق الملف الناتج MyPrg.rec الى مشروعك , {$R MyPrg.rec} - و هكذا برنامجك آليا يشغل مباشرة (Vista & 7) , كمسؤول .
بالتوفيق ,,
mohfa
02-08-2010, 06:55 PM
اخي الكريم TF6M هذا Faking " UAC " Rights .... ;)
kachwahed
02-08-2010, 07:04 PM
اخي الكريم TF6M هذا Faking " UAC " Rights ....
Faking أحسن من :D Nothing
mohfa
02-08-2010, 07:12 PM
Faking أحسن من :D Nothing
و Trying احسن من :D Nothing .
اقصد المرفق RunAsSys
الحويطي
15-08-2010, 02:58 PM
شكرا لجهودكم الطيبة أخواني الكرام ... لكن جميع ما ذكر لم يتم الإستفادة منه ...
يمكن اضافة المفتاح اثناء تنصيب برنامجك
كلام عملي ... جزاك الله خيرا
هل من أحد يدلي بدلوه
وشكرا للجميع على الجهد الطيب
vBulletin® , Copyright ©2008-2012