PDA

View Full Version : تغییر فایل Hosts توسط دلفی



sempaisaleh
سه شنبه 26 خرداد 1394, 18:55 عصر
با سلام خدمت دوستان
فایل هاست (Hosts) رو به صورت عادی نمیشه تغییر داد حتما باید توسط یوزر ادمین ویندوز نغییر داد.
یه سورس ساده نوشتم که میاد فایل هاست رو append میکنه می خوات توش یک خط اضافه کنه ولی متاسفانه ارور Access denied میده. کسی میدونه چطور میشه تغییرات توش داد با سورس.


با تشکر

Delphi Coder
پنج شنبه 28 خرداد 1394, 00:39 صبح
با سلام خدمت دوستان
فایل هاست (Hosts) رو به صورت عادی نمیشه تغییر داد حتما باید توسط یوزر ادمین ویندوز نغییر داد.
یه سورس ساده نوشتم که میاد فایل هاست رو append میکنه می خوات توش یک خط اضافه کنه ولی متاسفانه ارور Access denied میده. کسی میدونه چطور میشه تغییرات توش داد با سورس.


با تشکر
با اضافه کردن یه ریسورس میتونید برنامه رو با دسترسی های ادمین اجرا کنید. به احتمال زیاد این کار باید بتونه مشکل رو حل کنه.

sempaisaleh
پنج شنبه 28 خرداد 1394, 09:27 صبح
با اضافه کردن یه ریسورس میتونید برنامه رو با دسترسی های ادمین اجرا کنید. به احتمال زیاد این کار باید بتونه مشکل رو حل کنه.

مرسی از پاسخ تون
اینم کد فایل ریسورس منه. لول دسترسی رو گذاشتم رو requireAdministrator ولی نشد باز. قابل توجه بگم که زیاد Xml بلد نیستم.(یعنی کلا بلد نیستم خخخخخ)

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

sempaisaleh
پنج شنبه 28 خرداد 1394, 12:29 عصر
با سلام
مرسی از پاسخ تون
ولی مشکل من در اجرای برنامه در حالت ادمین نیست می خوام فایل Hosts رو در تغییر دهم که ارور access denied میده. این فایل فقط در حالت ادمین قابل تغییر است.
کد هایی که توی سایت دیدم برای فایل XML همه تغییر در level بود که انجام شده ولی افاقه نکرد. میشه یه راهنمایی کنید.

با تشکر

Mask
پنج شنبه 28 خرداد 1394, 12:36 عصر
برای تغییر در فایل Hosts نیاز به اجرای برنامه در مد ادمین دارید.
میتونید از لینکهای زیر استفاده کنید.
http://barnamenevis.org/showthread.php?196245-Create-Manifest-for-Win7-amp-Vista-UAC-if-Not-Running-Under-Administrative-Rights&highlight=runas.rec
http://barnamenevis.org/showthread.php?471850-%DA%86%D8%B1%D8%A7-run-as-administrator-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%D8%B2%D9%86%DB%8C%D9%85%D8%9F&highlight=runas.rec

sempaisaleh
پنج شنبه 28 خرداد 1394, 14:39 عصر
شرمنده هر کار میکنم نمیشه
فایل از طریق آموزش فایل .Rec رو ساختم و اضافه کردم ولی نشد. حتی از طریق آموزش دوم فایل Runas.Rec که ضمیمه کرده بودین رو اد کردم ولی باز ارور Access Denied میده. نمیدونم شاید مشکل از چیز دیگه ایه.
از خط سه ارور میگیره.

edit1.Text:=GetWinSysDir+'\drivers\etc\hosts';
AssignFile(myFile,edit1.Text);
append(myFile);
اینم کد یوزز فایل اصلی

program Host;

uses
Vcl.Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
{$R Runas.REC}

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

اینم کد کامل خطا

First chance exception at $7591D3CF. Exception class EInOutError with message 'File access denied'. Process Host.exe (4488)

Mask
پنج شنبه 28 خرداد 1394, 19:53 عصر
از این فایل استفاده کنید.

sempaisaleh
شنبه 30 خرداد 1394, 07:37 صبح
از این فایل استفاده کنید.

با سلام
فایلی که ضمیمه کردین رو قبلا از پستی که معرفی کرده بودید. دان کرده بودم.
اینم نمونه برنامه که مشکل داره.
http://uplod.ir/k9xd188r61yc/Host.rar.htm

Mask
شنبه 30 خرداد 1394, 10:55 صبح
انتی ویروست چیه؟

sempaisaleh
شنبه 30 خرداد 1394, 12:11 عصر
انتی ویروست چیه؟

KasperSky 2015 تحت شبکه

Mask
شنبه 30 خرداد 1394, 12:22 عصر
داداش. برنامت درسته
انتی ویروست نمیزاره. رو سیستم من هم کسپر جلوشو گرفت. وقتی غیر فعالش کردم بدون مشکل فایل رو چنج کرد.