Очень часто в сети встретишь большое количество статей по оптимизации сервисов Vista. Обычно гуру дают списки сервисов, который "нужно отключить", чтобы компьютер стал бегать быстрее. В результате, у бедных пользователей перестают работать сканеры, защищенные соединения, 1С и прочие элементы системы. И что нужно сделать, чтобы все вернулось на свои места, они не знают. Предлагаю подборку полного списка сервисов Vista с подробным описанием зависимостей и их функций. Изучив этот список, вы без труда сможете разобраться какие именно сервисы в вашем конкретном случае не нужны.
Список сервисов Vista A-C.
Условные сокращения
А-Автоматически
В-Вручную
О-Отключено
А(О)-Автоматически, отложенный запуск
| Название сервиса | Имя сервиса | По- умол чанию | Безо пасн ое | Опти мизи рова нное | Мини маль ное |
|---|---|---|---|---|---|
| Application Experience (Информация о совместимости приложений). По существу база данных сторонних приложений, для которых Windows включает соответствующие настройки системы, для того, чтобы эти программы работали без постороннего вмешательства пользователя в режиме совместимости. Зависит от: Нет Требуется для: Нет |
AeLookupSvc | А | А | В | О |
| Application Information (Сведения о приложении). Обеспечивает выполнение приложений с дополнительными административными привилегиями. Если эта служба будет остановлена, пользователи не смогут запускать приложения с дополнительными административными привилегиями, которые могут потребоваться для выполнения административных действий (таких как запуск Regedit, msconfig, управление сервисами). Если поставить режим запуска О, включить будет сложновато, так как для этого действия требуется работа данного сервиса)) Но если вдруг так получилось, подсказываю: надо перезагрузиться в SafeMode. Зависит от: DCOM Server Process Launcher (Модуль запуска процессов DCOM- сервера), Remote Procedure Call (RPC) (Удаленный вызов процедур), User Profile Service (Служба профилей пользователей) Требуется для: Нет |
AppInfo | В | В | В | В |
| Application Layer Gateway Service (Служба шлюза уровня приложений). Обеспечивает поддержку стороннего протокола для общего доступа к подключению к Интернету. Что означает, что сторонние приложения имеют возможность раздавать интернет с Вашего компьютера. Если таковых не имеется – можно отключить. Зависит от: Нет Требуется для: Нет |
ALG | В | В | В | О |
| Application Management (Управление приложениями) Обеспечивает управление приложениями посредством групповой политики. Если вы не пользуетесь Групповой Политикой (Group Policy) для управления системой – можно отключить. Зависит от: Нет Требуется для: Нет |
AppMgmt | В | В | В | О |
| Background Intelligent Transfer Service (Фоновая интеллектуальная служба передачи (BITS)). Данная служба позволяет использовать для передачи данных свободную пропускную способность канала. Служба используется для передачи асинхронных данных через http 1.1 сервера. Например она используется для Windows Update. Служба позволяет продолжить загрузку при завершении сеанса или выключении компьютера (при следующем его запуске). При попытке обновить Windows, запуск службы будет сам установлен в режим А (отложенный запуск). Зависит от: DCOM Server Process Launcher (Модуль запуска процессов DCOM- сервера), Remote Procedure Call (RPC) (Удаленный вызов процедур), COM+ Event System (Система событий COM+) Требуется для: Нет |
BITS | А (О) | А (О) | А (О) | А (О) |
| Base Filtering System (Служба базовой фильтрации). Представляет собой службу, которая управляет политиками брандмауэра и политиками IP-безопасности (IPsec), применяя фильтрацию трафика. Остановка или отключение службы BFE значительно снижает уровень безопасности системы. Это также приводит к непредсказуемым действиям при управлении IPsec и работе фаерволов. Рекомендуется оставить включенной, даже если стоит сторонний фаервол. Зависит от: DCOM Server Process Launcher (Модуль запуска процессов DCOM- сервера), Remote Procedure Call (RPC) (Удаленный вызов процедур) Требуется для: |
BFE | А | А | А | О |
| Block Level Backup Engine Service (Служба модуля архивации на уровне блоков). Используется для функции "Загрузка и восстановление" на Контрольной панели. Этот сервис работает на низкоуровневых процедурах работы с диском, напрямую записывая точки восстановления в определенную область диска, заменяя старые файлы новыми. Если вы не используете "Восстановление системы", тогда этот сервис можно отключить. Зависит от: Нет Требуется для: Нет |
wbengine | В | В | В | О |
| Certificate Propagation (Распространение сертификата). Microsoft включила много сервисов для Смарт-карт в Vista, но вероятно не слишком много людей используют их. Не путайте Смарт-карты с картами памяти, это совсем разные вещи. Смарт-карты иногда используются для входа в Vista вместо пароля. Если у Вас нет устройства для чтения Смарт-карт, сервис никогда не будет использоваться, таким образом его можно отключить. Зависит от: DCOM Server Process Launcher (Модуль запуска процессов DCOM- сервера), Remote Procedure Call (RPC) (Удаленный вызов процедур) Требуется для: Нет |
CertPropSvc | В | В | О | О |
| CNG Key Isolation (Изоляция ключей CNG). Хранит ключи для шифрования информации. Это может быть использовано приложениями использующими крипто-функции Vista. Служба изоляции ключей CNG размещается в процессе LSA. Эта служба обеспечивает изоляцию процесса ключа для закрытых ключей и связанных операций криптографии, и хранит долгоживущие ключи. Часто необходима для работы с Wi-Fi сетями. Работает только когда необходим, таким образом, безопаснее будет оставить запуск как «В». Зависит от: DCOM Server Process Launcher (Модуль запуска процессов DCOM- сервера), Remote Procedure Call (RPC) (Удаленный вызов процедур) Требуется для: Wired AutoConfig (Проводная автонастройка), WLAN AutoConfig (Служба автонастройки WLAN), Extensible Authentication Protocol (Расширяемый протокол проверки подлинности (EAP)) |
KeyIso | В | В | В | О |
Продолжение следует…
динамические массивы и матр записи
созд масива типа tstud
подпрограмма ввода и вывода
короч подпрограммы а поскок я тупой и она об этом знает мне датут шонибуть полегше но я сней в плохих отошениях хз как она ко мне отнесется
ваще темы не говорила мне мож ваще тупень дать из шонить старого
я здесь
Насоздавал блин в разных темах. Смотри. У тебя раньше был массив, например объявленный так:
var
a:array [0..24] of integer;
Это значит что в нем содержится 25 целых чисел. Матрица это тоже самое что и массив, только там данные располагаются не в строчку а в клеточку. Как корабли в морском бое. Врубился? Объявляются они так:
var
a:array [0..24,0..15] of integer;
или так
var
a:array [0..24] of array [0..15] of integer;
Вот эти записи создают матрицу размерностью 25х16
В случае массива ты можешь получить доступ к любому элементу массива так:
a[1]:=15; (записать в 1 номер число 15)
В случае матрицы:
a[1,8]:=15 (записать в 1 столбце, 8 строчке 15)
тут через ешо procedure всяке решали
Возвращаемся к массивам. Массивы бывают статические и динамические. Если ты заранее знаешь сколько элементов ты хочешь там хранить – это статические массивы. В предыдущем примере ты использовал статический массив из 24 элементов
var
a:array [0..24] of integer;
В случае динамического массива ты не знаешь его размер. Поэтому записывается он так:
var
a:array of integer;
Единственное чем динамический массив отличается от статического – необходимостью задать его размер ПЕРЕД использованием.
Делается это так:
SetLength(a,18); (Задать размер массива a 18 элементов)
Эта функция определит, что в этом массиве будет 18 элементов, с порядковыми номерами 0..17
Существует функция для того чтобы узнать, какой длинны на данный момент динамический массив.
dlina:=Length(a);
В переменную dlina будет записано число 18. Что будет говорить о том, что на данный момент в массиве можно хранить 18 элементов
эт 18 процедур которые я смогу использовать
Теперь о процедурах. В твоей программе скорее всего может потребоваться написать процедуру обработки массива. Дело в том, что массивы нельзя просто так пихать в процедуру. Поэтому их сначала надо «оппределить тип массива». Находишь в программе слово interface
После него пишешь
type
TMyarray = array [0..24] of integer;
Это скажет компилятору, что в программе появился новый тип, в котором ты хочешь хранить данные. Этот тип является массивом из 25 элементов с номерами 0..24. Заметь, что там знак равно а не двоеточие равно. Двоеточие равно это запись значения. А равно это эквивалентность. Как видишь здесь мы устанавливаем эквивалентность TMyArray и говорим что будет он у нас массив.
Далее в программе ты можешь написать процедуру обработки этого массива. Или функцию. Функция от процедуры отличается тем, что у функции есть результат. А у процедуры – нет. Вот пример программы:
uses Windows;
interface
const Maxi=24;
type
TMyarray = array [0..Maxi] of integer;
implementation
function ReOrder(a:TMyArray):TMyArray;
var
i,j:integer;
temp:integer;
begin
j:=Maxi;
for i:=0 to Maxi do
begin
temp:=a[j];
a[j]:=a[i];
a[i]:=temp;
Maxi:=Maxi-1;
end;
end;
var i:integer;
inp:TMyArray;
begin
WriteLn(‘Введите 25 элементов’);
for i:=0 to Maxi do
Read(inp[i]);
inp:=Reorder(inp);
for i:=0 to Maxi do
Write(inp[i],’ ‘);
Readln;
end.
Попробуй понять что делает эта программа
implementation?
пишеш мудренно у нас препод немного по др запись преподавал
program matrica;
Var a,b: array [1..100,1..100] of integer;
i,j,min,jmin,n: integer;
begin
writeln (‘vvedite razmernost kvadratnoi matrica’);
readln(n);
while (n>100) or (n10) or (b[i,j]<-10) then
repeat
b[i,j]:=abs(trunc(b[i,j]/10));
until b[i,j]<10
else b[i,j]:=abs(b[i,j]);
end;
{sortirovka}
i:=0;
j:=0;
for i:=1 to n do begin
jmin:=i;
for j:=i to n do if b[j,j]<b[jmin,jmin] then jmin:=j;
min:=b[jmin,jmin];
b[jmin,jmin]:=b[i,i];
b[i,i]:=min;
end;
writeln;
write (‘ishodnai matrica’);
writeln;
for i:=1 to n do begin
for j:=1 to n do write (a[i,j]:8,’ ‘);
writeln;
end;
writeln;
write (‘otsortirovannaia matrica’);
writeln;
for i:=1 to n do begin
for j:=1 to n do write (b[i,j]:8,’ ‘);
writeln;
end;
readln;
end.
как то так
const maxi = 24;
Это говорит, что в программе будет константа Maxi, которая будет значить цифру 24
function ReOrder(a:TMyArray):TMyArray;
Это значит что наша функция будет работать с массивами нашего типа TMyArray, объявленного раньше. Результатом будет тоже массив.
j:=Maxi;
for i:=0 to Maxi do
begin
temp:=a[j];
a[j]:=a[i];
a[i]:=temp;
Maxi:=Maxi-1;
end;
Этим мы переворачиваем массив задом на перед. Только я тебе нагнал тут. Там должно быть
for i:=0 to (Maxi div 2) do
Maxi div 2 это середина массива. Что делает данный код? Он запоминает последний элемент, и на его место пишет первый. Потом на месте первого пишет последний. Потом цикл идет дальше. Он запоминает предпоследний, на его место пишет второй, а на место второго – предпоследний. Ну и так далее до середины массива. Дойдя до середины, наш массив окажется полностью развернутым задом на перед.
Дальше основная часть программы.
Объявляем что в программе мы будем хранить массив нашего типа. И переменную i целочисленного типа.
var i:integer;
inp:TMyArray;
for i:=0 to Maxi do
Read(inp[i]);
Считываем с клавиатуры элементы массива.
inp:=Reorder(inp);
Здесь запускаем нашу процедуру. То есть в переменную нашу inp будут записаны результаты работы функции Reorder над ее содержимым.
for i:=0 to Maxi do
Write(inp[i],’ ‘);
Это выводит результат в строчку
inp:=Reorder(inp); не проходили препод уровень технаря (ты не знаеш когда столовая откр нишо не ел давно?)
Тот пример который ты дал не использует подпрограммы. Поэтому там это не нужно. И то нужно это именно тогда, когда подпрограмма использует массив.
В 9 в гз уже открыто обычно.
арх етитская сила эта инфа( мне мож без подпрограмм датут
давай в 8.40 за компом будь я постораюсь выйти на связь пиши ток по простому а то запалит до 11 30 успеемм разобрать ес они конеш не купят мозги и не заблокируют инет
Ты короч не парься. Я тебе как в тот раз сделаю максимально просто и распишу что и как где. Если что позвоню.Кстати вставляй другую симку, я тебе туда денег кинул. А то тебе дорого с тульской звонить
ладно я иду в душ и за НАЧЕРТ едрена вош !!!!!!!!!
Ты главное не парься. Если что на зачетной неделе прйду на защиту к тебе и все решу.
НИЧ инжегр подписали на а1 ток успею лия здать ес на след неделе ток покажу а1 в тонких линиях ( физра 5 посещений ост гг ругаюсь с препадом паспорта здор нет хз поставил ил пошлет
заданы N окружностей (запись с двумя полями Troint-центр ,r- радиус)
ввести с клавы (использовать StringGrid),записать в файл
простейшее задание она сказала пиши прощее и когда хоть шонить напишеш сразу скинь шоб видела работу!! хоть пару строк
там ешо 2 подзадания
в разделе implementation
type
TPoint = record
x,y:integer;
end;
TRound = record
coord:TPoint;
r:integer;
end;
Точно из StringGrid делать ввод?
да блин а попроще а ваще давай каканебуть по др ес есть по тупее и проще
в разделе implementation
я не понял у мя project 1
не мудри пож по тупеееее делай с IF FOR readln ИЛИ ешо в этом роде
coord:TPoint;
ну не поверит я эт не проходил
В разделе interface я ошибся
Ты заебал илья!!! Иначе никак!!!
ааааААААААА!!!НУ посмотрим ща вобью ес скажет сдул ты виноват и мне здесь три ччаса сидеть
Короче. Создаешь проект с формой. На форму кидаешь StringGrid, Edit и 2 кнопки (компонент Button).
В свойствах StringGrid ставишь
ColCount 3
FixedCols 0
FixedRows 0
В поле Text компонента Edit ввести 4
В поля Caption кнопок вводишь их названия
Выглядеть должно так, открой ссылку:
http://www.procoding.ru/screen.jpg
Код который должен быть сразу после слова interface:
type
TPoint = record
x,y:integer;
end;
TRound = record
coord:TPoint;
r:integer;
end;
TMyFile = file of TRound;
Код, который должен быть по клику на ккнопке Задать
StringGrid1.RowCount:=StrToInt(Edit1.Text);
Эта кнопка задает количество строчек и соответственно записей окружностей (число N).
Код, который должен быть по клику на кнопке Сохранить:
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
rec:TRound;
f:TMyFile;
begin
AssignFile(f,’savedfile.dat’);
Rewrite(f);
for I := 0 to StringGrid1.RowCount – 1 do
begin
rec.coord.x:=StrToInt(StringGrid1.Cells[0,i]);
rec.coord.x:=StrToInt(StringGrid1.Cells[1,i]);
rec.r:=StrToInt(StringGrid1.Cells[2,i]);
Write(f,rec);
end;
CloseFile(f);
end;
я выпросил простейшю прогу : дана матр в каждой строке найти индекс столбца с мах элементом
Код для проги по матрицам
program matrica;
Var a,b: array [1..100,1..100] of integer;
i,j,max,jmax,n: integer;
begin
writeln (‘vvedite razmernost kvadratnoi matrica’);
readln(n);
for i:=1 to n do
begin
for j:=1 to n do Read(a[i,j]);
Readln;
end;
write (‘ishodnai matrica’);
writeln;
for i:=1 to n do begin
for j:=1 to n do write (a[i,j],’ ‘);
writeln;
end;
for i:=1 to n do
begin
max:=a[i,1];
jmax:=1;
for j:=2 to n do
begin
if a[i,j]>max then
begin
max:=a[i,j];
jmax:=j;
end;
end;
WriteLn(‘Max element v stroke ‘,i,’ ‘,max,’ nahoditsya v stolbce ‘,jmax)
end;
readln;
end.
тут чел хороший тавареш попросил помоч
заданы координаты Nт точек используя подпрограммы поиска мах и мин найти пары точки растояние между которыми минимально и макс
слушай я жму проверить и как то хреново не идет ((
Я те что телепат??? ЧТо не идет а может расскажешь?
черный экран ну при запуске ввожу числа до бесконечности
max:=a[i,1];??
Программа для знакомого\
program MinMax;
type
TPoint = record
x,y:integer;
end;
procedure FindMin(Length: integer;a: array of TPoint);
begin
var i,j:integer;
idx1,idx2:integer;
lenmin,curlen:real;
begin
lenmin:=High(Integer);
for i:=1 to Length do
begin
for j := i+1 to Length – 1 do
begin
curlen:=sqrt(sqr(a[i].x-a[j].x)+sqr(a[i].y-a[j].y));
if curlen
idx1:=i;
idx2:=j;
lenmin:=curlen;
end;
end;
end;
WriteLn('Minim rasstoyanie imeut elementi ',idx1,' i ',idx2);
end;
procedure FindMax(Length: integer;a: array of TPoint);
var i,j:integer;
idx1,idx2:integer;
lenmax,curlen:real;
begin
lenmax:=0;
for i:=1 to Length do
begin
for j := i+1 to Length - 1 do
begin
curlen:=sqrt(sqr(a[i].x-a[j].x)+sqr(a[i].y-a[j].y));
if curlen>lenmax then
begin
idx1:=i;
idx2:=j;
lenmax:=curlen;
end;
end;
end;
WriteLn(‘Max rasstoyanie imeut elementi ‘,idx1,’ i ‘,idx2);
end;
Var a: array [1..100] of TPoint;
i,j,max,jmax,n: integer;
begin
writeln (‘vvedite kolvo elementov’);
readln(n);
for i:=1 to n do
begin
Read(a[i].x,a[i].y);
Readln;
end;
FindMin(n,a);
FindMax(n,a);
readln;
end.
Сначала введи размерность. Например 3. Нажми энтер.
Потом вводишь например
1 5 3 Энтер
4 1 8 Энтер
7 3 4 Энтер
max:=a[i,1];??
Изначально мы считаем что максимальный элемент находится в первом столбце. Потом в цикле просматриваем от второго до последнего. Если нашли что-то больше, чем в первом столбце – запоминаем
curlen шо такое?
Посчитанная длина между двумя точками
мне пару обьяснений черкни што
В переменную n записываем размер матрицы.
writeln (’vvedite razmernost kvadratnoi matrica’);
readln(n);
Потом считываем саму матрицу в массив а
for i:=1 to n do
begin
for j:=1 to n do Read(a[i,j]);
Readln;
end;
Выводим матрицу
write (’ishodnai matrica’);
writeln;
for i:=1 to n do begin
for j:=1 to n do write (a[i,j],’ ‘);
writeln;
end;
Ищем максимальный элемент и выводим на экран.
for i:=1 to n do //Пробегаемся по строкам
begin
max:=a[i,1]; //В каждой строке счиатем что макс это первый
jmax:=1; //Записываем что он первый
for j:=2 to n do //Смотрим остальные
begin
if a[i,j]>max then //Опа, нашелся элемент побольше
begin
max:=a[i,j]; //Тогда записываем его
jmax:=j; //И его номер
end;
end;
WriteLn(’Max element v stroke ‘,i,’ ‘,max,’ nahoditsya v stolbce ‘,jmax) //Выводим на экран
end;
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type sport=record
fam:string[20];
god:integer;
res:real;
end;
tmas=array of sport;
var a,b:tmas;
i,n,k,kol:integer;
f:textfile;
min:sport;
buf:sport;
norm:real;
godr:integer;
nper:integer;
begin
{writeln(‘Vvedite kol sports’);
readln(n);
setlength(a,n);
for i:=0 to n-1 do begin
writeln(‘Vv fam’);
readln(a[i].fam);
writeln(‘Vv god’);
readln(a[i].god);
writeln(‘Vv res’);
readln(a[i].res);
end; }
assignfile(f,’D:\temp\sport\file1.txt’);
reset(f);
n:=0;
while not eof(f) do
begin
n:=n+1;
setlength(a,n);
readln(f,a[n-1].fam);
readln(f,a[n-1].god);
readln(f,a[n-1].res);
end;
closefile(f);
writeln;
writeln(‘ fam god res’);
for i:=0 to n-1 do
writeln(a[i].fam:20,a[i].god:5,a[i].res:10:2);
//Поиск самого лучшего, мин рез
min:=a[0];
for i:=0 to n-1 do
if a[i].resa[i+1].fam then
begin
buf:=a[i];
a[i]:=a[i+1];
a[i+1]:=buf;
end;
writeln(‘POSLE SORT’);
writeln(‘ fam god res’);
for i:=0 to n-1 do
writeln(a[i].fam:20,a[i].god:5,a[i].res:10:2);
//в новый массив тех, кто выполнил норматив
writeln(‘Vv normativ’);
readln(norm);
kol:=0;
for i:=0 to n-1 do
if a[i].res<=norm then
begin
kol:=kol+1;
setlength(b,kol);
b[kol-1]:=a[i];
end;
if kol=0 then writeln(‘NET’)
else
begin
writeln(‘VIPOL NORM’);
writeln(‘ fam god res’);
for i:=0 to kol-1 do
writeln(b[i].fam:20,b[i].god:5,b[i].res:10:2);
end;
//победитель среди тех, кто родился после заданного года
writeln(‘VV GOD’);
readln(godr);
nper:=-1;
i:=-1;
while (nper=-1)and(igodr then nper:=i;
end;
if nper=-1 then writeln(‘NET’)
else
begin
min:=a[nper];
for i:=nper to n-1 do
if (a[i].god>godr) and (a[i].res<min.res) then min:=a[i];
writeln(‘POBEDITEL POSLE GODA’);
writeln(min.fam:20,min.god:5,min.res:10:2);
end;
readln;
end.\
не удаляй
мне корроч дали временый пропуск на17 число я хз могу скаазать што на входе в общагу отобрали и оставить себе но не знаю пройдет ли эта фигня ты когдп в четверг появишся