PDA

View Full Version : اجرا کردن برنامه در حالت run as administrator



mahdi1373
جمعه 25 دی 1388, 11:47 صبح
من می خواهم برنامه ام در حالت run as administrator اجرا شود. چطور میتونم کاری کنم که کاربر وقتی برنامه ام را اجرا کرد در این حالت اجرا شود؟

M.T.P
جمعه 25 دی 1388, 12:09 عصر
با سلام
مایکروسافت اجازه نصب و راه اندازی و اجرا شدن بصورت admin رو فقط به کمپانی ها و شرکت های معروف که تو ویندوز ثبت شده داده و غیر از این هر برنامه یا فایلی که بخواهد به هر نحوی تو فایل های ویندوز یا پوشه هاش یا هسته اش تغییری رو اعمال کنه بلوکه میشه مگه اینکه خود شما Run as admin رو انتخاب کنی. موفق باشی

mahdi1373
جمعه 25 دی 1388, 19:01 عصر
حالا کدی ندارید که بفهمیم برنامه در حالت run as administrator اجرا شده یا نه؟

M.T.P
جمعه 25 دی 1388, 21:05 عصر
ببین مهدی جان اون برنامه هایی که گفتی تو Startup رفتن بدون اینکه Admin اجرا بشن بخاطره اینکه درسته برنامه شون از یه شرکت معتبر منتشر نشده اما توسط یه برنامه معروف ساخت Setup نصب شده و ویندوز این اجازه رو به اون برنامه داده ، مطمئن باش اگه راهی داشت مایکروسافت هیچ وقت این قابلیت امنیتی رو به ویندوز اضافه نمیکرد.
موفق باشی

vahidvb
سه شنبه 18 آبان 1389, 11:28 صبح
I have been all over the Internet and there is nothing that explicitly tells you how to mark your file to "Run As Administrator". Everyone uses the buzz words but no one states exactly how to do it, Especially for VB exe's.

I will give you a quick lesson on how it can be done with a little work. Since VB handles resource information differently than other languages such a C++‎ you can forget about using VB's resource editor on the exe. In my procedure you will need the help of a the program "Resource Hacker" by Angus Johnson http://www.angusj.com/resourcehacker/

The procedure is as follows:

1 - Open the exe in the Resource Hacker
2 - Go to Action->Add a New Resource
3 - Select any text file. it really doesn't matter for you are going to delete the information anyway. So choose a small one...
4 - Use the following entries to fill in the New Resource box

Resource Type - 24
Resource Name - 1
Resource Language - 3081

4 - Select your new resource from the list and Replace whatever is in the language (3081) with a copy the XML script (Below) then compile the script and save back to the original exe. That's It!!!. Your exe is now marked to request to run as administrator on Vista. You will know this worked by the shield that Vista places on your applications icons.

Don't forget to change the marker EXENAME in the XML script to the same name as the exe you are marking or it won't work!!!

Code:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="EXENAME"
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>

mohsen_archi
جمعه 21 آبان 1389, 11:32 صبح
با استفاده از کد زیر میتوان برنامه رو به صورت run as administrator اجرا کرد



Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Sub SetStringValue(hKey As Long, strPath As String, strValue As String, strData As String)
Dim keyhand As Long
Dim i As Long
i = RegCreateKey(hKey, strPath, keyhand)
i = RegSetValueEx(keyhand, strValue, 0, 1, ByVal strData, Len(strData))
i = RegCloseKey(keyhand)
End Sub
Private Sub Form_Load()
rrPath = App.Path
If Right(App.Path, 1) = "\" Then rrPath = Left(App.Path, (Len(App.Path) - 1))
Call SetStringValue(&H80000001, "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers", rrPath & "\" & App.EXEName & ".exe", "RUNASADMIN")
End Sub

Felony
جمعه 21 آبان 1389, 12:25 عصر
با سلام
مایکروسافت اجازه نصب و راه اندازی و اجرا شدن بصورت admin رو فقط به کمپانی ها و شرکت های معروف که تو ویندوز ثبت شده داده و غیر از این هر برنامه یا فایلی که بخواهد به هر نحوی تو فایل های ویندوز یا پوشه هاش یا هسته اش تغییری رو اعمال کنه بلوکه میشه مگه اینکه خود شما Run as admin رو انتخاب کنی. موفق باشی
تو ویندوز ثبت شده باشن ؟!


ببین مهدی جان اون برنامه هایی که گفتی تو Startup رفتن بدون اینکه Admin اجرا بشن بخاطره اینکه درسته برنامه شون از یه شرکت معتبر منتشر نشده اما توسط یه برنامه معروف ساخت Setup نصب شده و ویندوز این اجازه رو به اون برنامه داده ، مطمئن باش اگه راهی داشت مایکروسافت هیچ وقت این قابلیت امنیتی رو به ویندوز اضافه نمیکرد.
موفق باشی
عجب ... !
پس طرف اگر برای یه برنامه مخرب با InstallShield فایل Setup بسازه کارش حله ؟!
Setup یه برنامه چه ربطی به خود اون برنامه داره ؟!

M.T.P
جمعه 21 آبان 1389, 14:18 عصر
تو ویندوز ثبت شده باشن ؟!
منظورم اینه که Publisher برنامه مشخص باشه.


عجب ... !
پس طرف اگر برای یه برنامه مخرب با InstallShield فایل Setup بسازه کارش حله ؟!
Setup یه برنامه چه ربطی به خود اون برنامه داره ؟
شما هم میتونی این کار رو انجام بدی ، مسئولیت جلوگیری از اجرا نشدن اینطور برنامه ها بعهده Security ویندوز یا یک آنتی ویروس خوب هست.
البته شاید یک InstallShield هوشمند هم در آینده تولید شد ، نگران نباشید. :چشمک:

Felony
جمعه 21 آبان 1389, 16:30 عصر
منظورم اینه که Publisher برنامه مشخص باشه.


شما هم میتونی این کار رو انجام بدی ، مسئولیت جلوگیری از اجرا نشدن اینطور برنامه ها بعهده Security ویندوز یا یک آنتی ویروس خوب هست.
البته شاید یک InstallShield هوشمند هم در آینده تولید شد ، نگران نباشید. :چشمک:

باید امضاء معتبری برای ویندوز داشته باشه .

در مورد سوال پرسیده شده تو تاپیک هم در مورد UAC تحقیق کنید .