Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.01.2007, 11:44
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию Вопрос

Ребята помогите вот мой вопрос
Я пишу программу и мне нада чтоб он заходил в папку программы открывал файл и чистил информацию и пересохранял... НО самое главное чтоб пользователь не слидил за ходом событий
---------
Смысл моей программы прост я хочу чтоб с помощью ей пользователь удалял с своего компа Windows Messenger
Для этого нада
1)Включить отображение скрытых файлов
2)Зайти в папку
3)Открыть файл sysoc.inf
4)Найти строку msmsgs=msgrocm.dll,0cEntry,mgmggs.inf,hide,7
5)Сделать msmsgs=msgrocm.dll,0cEntry,mgmggs.inf,,7
Ну а потом тока пользователю удалить через Установка-Удаление программ-Установка компонентов Виндоуз
------
Задача моя только потренироваться с модулем ShellAPI
----
Я знаю тока как
открыть папку и файл если не ошибаюсь так
ФАЙЛ-
Код:
ShellExecute(Handle,nil,'ПУТЬ',nil,nil,SW_RESTORE);
ПАПКУ-
Код:
ShellExecute(Handle,'explore','ПУТЬ',nil,nil,SW_RESTORE);
Если я не ошибаюсь то..
SW_RESTORE -это Активизирует и отображает окно. Если это окно свернуто или развернуто то оно восстанавлмвается до своих первоначальныз размеров и отображается в первоначальной позиции(почти тоже самое что SW_SHOWNORMAL)
То если не писать его не видно будет ход действий и как изменять информацию в файле заменять ее в нужном месте и пересохранять...
Ответить с цитированием
  #2  
Старый 11.01.2007, 12:25
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Что-то я не понял. Ты хочешь сделать чтобы пользователь видел все эти действия? Или что?
Ответить с цитированием
  #3  
Старый 11.01.2007, 12:31
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Я хочу наобарот работус файлов но чтоб пользователь не видел все то что будет произходить
Ответить с цитированием
  #4  
Старый 11.01.2007, 12:54
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Код:
var
  sl:TStringList;
  i:integer;
begin
  sl:=TStringList.Create;
  sl.LoadFromFile('C:\...\sysoc.inf');
  for i:=0 to sl.Count-1 do
    if pos('msmsgs=msgrocm.dll',sl[i])>0 {как вариант =1} then
      begin
        sl[i]:='msmsgs=msgrocm.dll,0cEntry,mgmggs.inf,,7';
        break;
      end;
  sl.SaveToFile('C:\...\sysoc.inf');
  sl.Free;
end;

Считает файл, заменит требуемую строку, и запишет. Путь естественно указать нужно
Ответить с цитированием
  #5  
Старый 11.01.2007, 12:57
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Ясно а если нужно втереть всю строку то как писать?
Ответить с цитированием
  #6  
Старый 11.01.2007, 12:59
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Тоесть стереть
Ответить с цитированием
  #7  
Старый 11.01.2007, 13:09
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Для этого нужно почитать справку по TStrings, много интересного узнаешь.
Ответить с цитированием
  #8  
Старый 11.01.2007, 14:15
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Народ сори за флуд но кто может дать кряк на Делфи я скачал пару но не пашет
Ответить с цитированием
  #9  
Старый 11.01.2007, 18:01
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Народ я вот разобрался в одном *удаление файла *
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SHFileOpStruct : TSHFileOpStruct;
  From : array [0..255] of Char;
begin
  SetCurrentDirectory( PChar( 'C:\' ) );
  From := 'Test1.tst' + #0 + 'Test2.tst' + #0 + #0;
  with SHFileOpStruct do
  begin
    Wnd := Handle;
    wFunc := FO_DELETE;
    pFrom := @From;
    pTo := nil;
    fFlags := 0;
    fAnyOperationsAborted := False;
    hNameMappings := nil;
    lpszProgressTitle := nil;
  end;
  SHFileOperation( SHFileOpStruct );
end;
Но вопроса 2
1)Он спрашивает пользователя удалять файл в корзину?
Как сделать чтоб не спрашивал я хочу чтоб если пользователь нажал кнопку *Удалить ...* оно его не спрашивала
2)Он удаляет в корзину что мешает пользователю так как в кнопке должна служить для очитски не включая корзину..
Как это сделать?
Ответить с цитированием
  #10  
Старый 11.01.2007, 18:08
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Цитата:
Сообщение от CAHbKA
Народ я вот разобрался в одном *удаление файла *
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  SHFileOpStruct : TSHFileOpStruct;
  From : array [0..255] of Char;
begin
  SetCurrentDirectory( PChar( 'C:\' ) );
  From := 'Test1.tst' + #0 + 'Test2.tst' + #0 + #0;
  with SHFileOpStruct do
  begin
    Wnd := Handle;
    wFunc := FO_DELETE;
    pFrom := @From;
    pTo := nil;
    fFlags := 0;
    fAnyOperationsAborted := False;
    hNameMappings := nil;
    lpszProgressTitle := nil;
  end;
  SHFileOperation( SHFileOpStruct );
end;
Но вопроса 2
1)Он спрашивает пользователя удалять файл в корзину?
Как сделать чтоб не спрашивал я хочу чтоб если пользователь нажал кнопку *Удалить ...* оно его не спрашивала
2)Он удаляет в корзину что мешает пользователю так как в кнопке должна служить для очитски не включая корзину..
Как это сделать?
Я дурак извините
1) Оно уже удаляет без карзины
2)Я поставил флаг=0 а надо было прописать FOF_NOCONFIRMATION
Если комуто нужно будет делайте
Ответить с цитированием
  #11  
Старый 11.01.2007, 18:51
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Народ Помощь нужна как совместить Console Aplication и Aplication у меня просто в консоле один код и нало его совместить или как прописать этот код в Aplication
Код:
program pfileMode;
{$APPTYPE CONSOLE}
uses SysUtils;

var
  oldFM: integer;
var
  SR: TSearchRec;

begin
  if FindFirst('C:\*.*', faAnyFile, SR) = 0 then
    repeat
      try
        oldFM := FileMode;
        FileMode := 0;
        WriteLn(SR.Name);
        //работаем с файлом
      finally
        FileMode := oldFM;
      end;
    until FindNext(SR) < > 0;
  FindClose(SR);
  readLn;
end.
Ответить с цитированием
  #12  
Старый 12.01.2007, 05:25
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Код:
procedure FindFile(aFileName:TFileName);
var
  SR: TSearchRec;
begin
  if FindFirst(aFileName, faAnyFile, SR) = 0 then
    repeat
        //работаем с файлом
    until FindNext(SR) < > 0;
  FindClose(SR);
end.
и заметь, я ничего не переписывал, только удалил лишнее
Ответить с цитированием
  #13  
Старый 12.01.2007, 10:03
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
По умолчанию

Спс большое за помощь
Ответить с цитированием
  #14  
Старый 12.01.2007, 10:27
Аватар для CAHbKA
CAHbKA CAHbKA вне форума
Новичок
 
Регистрация: 10.01.2007
Сообщения: 66
Репутация: 10
Вопрос

Цитата:
Сообщение от Aristarh Dark
Код:
procedure FindFile(aFileName:TFileName);
var
  SR: TSearchRec;
begin
  if FindFirst(aFileName, faAnyFile, SR) = 0 then
    repeat
        //работаем с файлом
    until FindNext(SR) < > 0;
  FindClose(SR);
end.
и заметь, я ничего не переписывал, только удалил лишнее
Но вот я чёто не понял ты убрал
FileMod который там самый нужный может я чето не то понял но мне надо получить доступ к системным файлам я это на всякий случай а то вдруг напишет пользователю доступ закрыт а обдурить Windows легче проcтого
Windows блокирует ПОЛНЫЙ доступ ко многим файлам, которые в данный момент использует система. К таким файлам относятся выполняемые программы, используемые библиотеки, шрифты и т.д. При поиске вирусов, к примеру, эти файлы представляют наибольший интерес.

Обдурить Windows и получить доступ к этим файлам крайне просто - нужно открывать их в режиме ReadOnly.

В Delphi за режим открытия файлов отвечает системная переменная FileMode. Boзможные значения:

0 Read only
1 Write only
2 Read/Write

По умолчанию FileMode==2, поэтому открытие заблокированых файлов нарывается на неприятность. При доступе ReadOnly доступ блокируется только д так что этот случай приходится контролировать отдельно.
Но вот а в кодн что ты написал FileMod'a нет? Мож я чё то не то говарю впринципе ошибк в проекте нет я прописал эту процедуру в код программы но меня *терзают смутные сомнения*
Ответить с цитированием
  #15  
Старый 12.01.2007, 10:35
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А убрал я это потому что не знаю каким образом ты будешь работать с файлом. Переменная FileMode имеет действие только на процедуру Reset и больше ни на что, а с файлами работать можно разными методами, и то это если их открывать, может ты их копировать хотел, или удалять... Телепаты они на другом форуме
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter