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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 19:03   #1
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию Консоль (Delphi)

Добрый день?

Как в консоле использовать Handle? Он не распознается.
Подключены: Dialogs, ShellApi, SysUtils, Windows.
VadEr вне форума Ответить с цитированием
Старый 09.06.2009, 20:15   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вообще-то THandle находится в System, который даже подключать не надо, он автоматически подключается.
Так что вы что-то напутали.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 10.06.2009, 15:50   #3
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Если я что-то напутал, то пожалуста проверте код программы. Предпологается, что программа в скрытом режиме скопирует базы для Касперского v.7 из самого Касперского в текущую директорию. Программа нормально работает, если это полоценное приложение с формой. А надо как "демон".

Код:
program Project1;

uses
  SysUtils, ShellApi, Windows;

var
  From : array [0..255] of Char;
  SHFileOpStruct : TSHFileOpStruct;
  i : byte;
  d : string;

procedure copy;
begin
  with SHFileOpStruct do
    begin
      Wnd:= Handle;
      wFunc:=FO_COPY;
      pFrom:=@From;
      pTo:=PChar(d + '\KAV-bases');
      fFlags:=0;
      fAnyOperationsAborted := False;
      hNameMappings:=nil;
      lpszProgressTitle:=nil;
    end;
 SHFileOperation( SHFileOpStruct );
end;


begin
   GetDir(0,d);
   if not DirectoryExists('KAV-bases') then CreateDir('KAV-bases');

   SetCurrentDirectory( PChar( GetEnvironmentVariable('ALLUSERSPROFILE')
          + '\Application Data\Kaspersky Lab\AVP7\Bases' ) );
   From := '*';
   copy;

   i := 0;
   SetCurrentDirectory( PChar( GetEnvironmentVariable('ALLUSERSPROFILE')
          + '\Application Data\Kaspersky Lab\AVP7\Data' ) );
   Repeat
       i := i + 1;
       case i of
            1: From := '*.xml';
            2: From := '*.ini';
            3: From := '*.dat';
            4: From := '*.pbv';
       end;
       copy;
    until i = 4;

   SetCurrentDirectory( PChar( GetEnvironmentVariable('ALLUSERSPROFILE')
          + '\Application Data\Kaspersky Lab\AVP7\Data\ru' ) );
   From := '*';
   copy;

   i := 0;
   SetCurrentDirectory( PChar( GetEnvironmentVariable('ALLUSERSPROFILE')
          + '\Application Data\Kaspersky Lab\AVP7\Data\Updater\Temporary Files\temporaryFolder\AutoPatches\kav6\7.0.1.321' ) );
   Repeat
       i := i + 1;
       case i of
            1: From := '*.dll';
            2: From := '*.ppl';
       end;
       copy;
    until i = 2;

   SetCurrentDirectory( PChar( GetEnvironmentVariable('ALLUSERSPROFILE')
          + '\Application Data\Kaspersky Lab\AVP7\Data\Updater\Temporary Files\temporaryFolder\AutoPatches\kav6\7.0.1.321\X86' ) );
   From := '*';
   copy;
end.
VadEr вне форума Ответить с цитированием
Старый 10.06.2009, 16:35   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Application.Handle посмотрите
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.06.2009, 16:37   #5
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Попробуйте заменить строчку:
Код:
Wnd:= GetActiveWindow;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 10.06.2009, 17:13   #6
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Так если не надо, чтобы было окошко со статусом, зачем в этот hWnd писать что-то кроме нуля?
Somebody вне форума Ответить с цитированием
Старый 10.06.2009, 19:16   #7
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Всем спасибо за помощь!
VadEr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консоль Win Noor Свободное общение 5 20.12.2008 19:05
Сишка консоль Droid Общие вопросы C/C++ 3 18.09.2008 14:27
помогите с паскалем или Delphi - консоль Vitas1234 Фриланс 5 15.06.2008 16:52
Консоль+поле ввода в форме в Delphi KatT Помощь студентам 0 01.06.2008 16:08
Консоль MAcK Общие вопросы Delphi 4 19.12.2007 19:05