Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2011, 17:22   #1
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию Ошибка при открытии файла hosts

Добрый день.

Вот программа:
Код:
procedure TForm1.btn1Click(Sender: TObject);
var f: TFileStream;
s:string;
begin
   s:=('127.0.0.1'+edt1.Text);
   f:=TFileStream.Create('C:\WINDOWS\system32\drivers\etc\hosts', fmOpenReadWrite);
   f.Seek(0, soFromEnd);
   f.Write(s, length(s));
   f.Free;

end;
Как только пытаюсь запустить у меня вылетает ошибка открытия файла. Что нужно тут делать?

Последний раз редактировалось bananasus; 22.02.2011 в 17:29.
bananasus вне форума Ответить с цитированием
Старый 22.02.2011, 17:42   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

снимать с файла аттрибут read-only на время.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2011, 17:46   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

если windows 7, то думаю мороки больше будет,
там даже в ручную, сложно поменять
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 22.02.2011, 17:49   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

дать при запуске права админа, а потом то что я писал до этого.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2011, 21:20   #5
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию

Цитата:
если windows 7, то думаю мороки больше будет,
там даже в ручную, сложно поменять
Не, вручную там легко поменять, только не работает оно там. У меня на ХР блокируется, а у друга на семерке все равно работает. Тут видимо что-то другое.

А по теме: как програмно обеспечить права админа или снять атрибут. я просто не совсем разбираюсь...
bananasus вне форума Ответить с цитированием
Старый 22.02.2011, 21:34   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Кхм... а почему TfileStream?
Можно же TStringList или на худой конец TTextFile.


Вот тоже у знакомого были проблемы на семёрке при открытии данного файла. Решилось всё так:
На форме:
1. Memo
2. 2е кнопи
3. 1 Checkbox
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    LoadFileBtn: TButton;
    SaveFileBtn: TButton;
    BuckupFileChk: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure LoadFileBtnClick(Sender: TObject);
    procedure SaveFileBtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

var
  WinDir:string;
  OwnerDir:string='system32\drivers\etc\';

{$R *.dfm}

function GetWinDir: string;
const
  BuffSize = 255;
var
  CharBuff: PChar;
begin
  GetMem(CharBuff, BuffSize);
  GetWindowsDirectory(CharBuff, BuffSize);
  Result := IncludeTrailingBackslash(string(CharBuff));
  FreeMem(CharBuff);
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
WinDir:=GetWinDir;
If BuckupFileChk.Checked then
begin
MkDir(WinDir+OwnerDir+'BuckUp');
CopyFile(PAnsiChar(WinDir+OwnerDir+'hosts'),
PAnsiChar(WinDir+OwnerDir+'BuckUp\hosts.bak'),True);
end;
end;

procedure TForm1.LoadFileBtnClick(Sender: TObject);
begin
Memo1.Lines.LoadFromFile(WinDir+OwnerDir+'hosts');
end;

procedure TForm1.SaveFileBtnClick(Sender: TObject);
begin
Memo1.Lines.SaveToFile(WinDir+OwnerDir+'hosts');
end;

end.

Последний раз редактировалось Человек_Борща; 22.02.2011 в 21:37.
Человек_Борща вне форума Ответить с цитированием
Старый 23.02.2011, 18:39   #7
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию

С проблемой разобрался. Это касперский не дает записывать в этот файл. При выключенном каспера все работает прекрасно. Он прогу еще как троян определяет. Есть вообще способ бороться с этим?
bananasus вне форума Ответить с цитированием
Старый 23.02.2011, 18:43   #8
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

я так поборол
microsoft security essentials
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 23.02.2011, 18:48   #9
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию

Ты бы пояснее выражался....
bananasus вне форума Ответить с цитированием
Старый 23.02.2011, 19:16   #10
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

поменял антивир, введи в гугл и поимеш
он, вроди блокирует ток реално вирусы, пока мои проги не трогал
VirusN13
ArtGrek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при открытии файла Klim Bassenger Microsoft Office Excel 2 16.09.2018 15:44
Ошибка при открытии файла в lazarus'е GaJIbI4 Помощь студентам 5 12.06.2010 10:23
Ошибка при открытии файла Ciberal Общие вопросы Delphi 2 09.06.2009 22:58
C++: ошибка при открытии файла Retiz Помощь студентам 2 30.08.2008 22:12
ошибка при открытии файла pas Var17 Общие вопросы Delphi 2 23.01.2008 15:30