Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
Блин тогда легче вообще от этого кода отказаться и писать другой ужос о_О сколько еще работы

Зачем отказываться? Всевото необходимо переписать пару строчек вывода лога установки. В аттач подправленный пример с выводом лога в memo

post-8190-1256122073_thumb.jpg

Опубликовано
Зачем отказываться? Всевото необходимо переписать пару строчек вывода лога установки. В аттач подправленный пример с выводом лога в memo

Спасибо за подсказку B)

Еще такой вопрос, как через делфи вскрыть экзешник который был скомпилирован ею? Если при этом нету исходников.

Опубликовано
Еще такой вопрос, как через делфи вскрыть экзешник который был скомпилирован ею? Если при этом нету исходников.
Через делфи - никак. Но есть другие инструменты... смотря что тебе нужно. Но чистого исходника в любом случае не получить.
Опубликовано

C. Tantin

да, помоему можно только точки входа на процедуры получить

Опубликовано
Через делфи - никак. Но есть другие инструменты... смотря что тебе нужно. Но чистого исходника в любом случае не получить.

Спасибо понятно.

Опубликовано

вопрос такой:

Можно ли в Дельфе подключить скачивание файлов с ФТП или ХТТП (легальных файлов), по ссылке + по имени файла скажем например вот так:

ftp://dnl.kaspersky.com/kavremuver2010.exe or ftp://dnl.kaspersky.com/kavremuver?.exe

И еще чтобы каждый раз скачивала более свежие файлы вместо старых.

Опубликовано
Можно ли в Дельфе подключить скачивание файлов с ФТП или ХТТП (легальных файлов), по ссылке + по имени файла скажем например вот так:

ftp://dnl.kaspersky.com/kavremuver2010.exe or ftp://dnl.kaspersky.com/kavremuver?.exe

И еще чтобы каждый раз скачивала более свежие файлы вместо старых.

По ссылке - можно. По маске - тоже можно, но перебор ссылок под маску надо будет писать самому.

 

Вообще User, почитай-покачай статьи-сорсы на ресурсах типа delphimaster.ru и delphikingdom.ru, а потом если что-то будет непонятно - спрашивай =)

Опубликовано

С загрузочным модулем пока на время остановил работу, есть такая проблема, после подгрузки драйвера т.е его копирования в папку system32\drivers.

Запускаю процедуру через дельфи чтобы запустить драйвер, но! Чтобы драйвер начал полностью функционировать нужно писать в командной строке

net start kernelsecur.sys

пытаюсь после этого остановить службу сначала через дельфи путём отключения её процедуры и после через командную строку:

net stop kernelsecur.sys

Но вместо того чтобы остановить службу, она показывает ошибку.

Вопрос как можно обойти эту бутофорию запуска сначала через дельфи, а после через консоль.

А просто всё это запихнуть в одну - ну две процедуры в дельфи ?

Опубликовано (изменено)
net start kernelsecur.sys

насколько помню имя службы у тебя WinNT_KernelSecurity

Фукция запуска сервиса

function ServiceStart(aMachine, aServiceName : string ) : boolean; 
// aMachine это UNC путь, либо локальный компьютер если пусто
var 
 h_manager,h_svc: SC_Handle; 
 svc_status: TServiceStatus; 
 Temp: PChar; 
 dwCheckPoint: DWord; 
begin 
 svc_status.dwCurrentState := 1; 
 h_manager := OpenSCManager(PChar(aMachine), Nil, 
						 SC_MANAGER_CONNECT); 
 if h_manager > 0 then 
 begin 
h_svc := OpenService(h_manager, PChar(aServiceName), 
					 SERVICE_START or SERVICE_QUERY_STATUS); 
if h_svc > 0 then 
begin 
  temp := nil; 
  if (StartService(h_svc,0,temp)) then 
	if (QueryServiceStatus(h_svc,svc_status)) then 
	begin 
	  while (SERVICE_RUNNING <> svc_status.dwCurrentState) do 
	  begin 
		dwCheckPoint := svc_status.dwCheckPoint; 

		Sleep(svc_status.dwWaitHint); 

		if (not QueryServiceStatus(h_svc,svc_status)) then 
		  break; 

		if (svc_status.dwCheckPoint < dwCheckPoint) then 
		begin 
		  // QueryServiceStatus не увеличивает dwCheckPoint 
		  break; 
		end; 
	  end; 
	end; 
  CloseServiceHandle(h_svc); 
end; 
CloseServiceHandle(h_manager); 
 end; 
 Result := SERVICE_RUNNING = svc_status.dwCurrentState; 
end;

остановки

function ServiceStop(aMachine,aServiceName : string ) : boolean; 
// aMachine это UNC путь, либо локальный компьютер если пусто
var 
 h_manager,h_svc   : SC_Handle; 
 svc_status	 : TServiceStatus; 
 dwCheckPoint : DWord; 
begin 
 h_manager:=OpenSCManager(PChar(aMachine),nil, 
					   SC_MANAGER_CONNECT); 
 if h_manager > 0 then 
 begin 
h_svc := OpenService(h_manager,PChar(aServiceName), 
					 SERVICE_STOP or SERVICE_QUERY_STATUS); 

if h_svc > 0 then 
begin 
  if(ControlService(h_svc,SERVICE_CONTROL_STOP, 
					svc_status))then 
  begin 
	if(QueryServiceStatus(h_svc,svc_status))then 
	begin 
	  while(SERVICE_STOPPED <> svc_status.dwCurrentState)do 
	  begin 
		dwCheckPoint := svc_status.dwCheckPoint; 
		Sleep(svc_status.dwWaitHint); 

		if(not QueryServiceStatus(h_svc,svc_status))then 
		begin 
		  // couldn't check status 
		  break; 
		end; 

		if(svc_status.dwCheckPoint < dwCheckPoint)then 
		  break; 

	  end; 
	end; 
  end; 
  CloseServiceHandle(h_svc); 
end; 
CloseServiceHandle(h_manager); 
 end; 

 Result := SERVICE_STOPPED = svc_status.dwCurrentState; 
end;

Изменено пользователем kilo
Опубликовано

а вот подскажите и мне сенсеи: можно ли реализовать программную задержку по времени без таймера?

Опубликовано (изменено)

Можно без таймера

Ставишь задержку выполнения

uses sysutils;

repeat

....

sleep(10000);// задержка

until false;

Изменено пользователем kilo
Опубликовано
net start kernelsecur.sys

 

насколько помню имя службы у тебя WinNT_KernelSecurity

имя было изменено :(

драйвер копируется путём запуска ХСОРУ через батч файл, который соответственно подключён к кнопке.

Опубликовано
драйвер копируется путём запуска ХСОРУ через батч файл, который соответственно подключён к кнопке.

Можно и через дельфи копировать файл

CopyFile('WinNT_KernelSecurity.sys', 'C:\WINDOWS\system32\drivers\WinNT_KernelSecurity.sys', false);

Хотя путь лучше прописывать не напрямую, а через переменные среды.

Опубликовано

kilo

впринципе похоже но есть глюки к примеру sample:

form1.Color:=clred;
sleep(1000);
form1.Color:=clgreen;
sleep(1000);
form1.Color:=clred;

через 2 секунды загорится только красный, остальное что до "слипа" не выполняется:(

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...