Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрипт применения твиков в зависимости от объема памяти. Как?

Ответить
Настройки темы
[решено] Скрипт применения твиков в зависимости от объема памяти. Как?

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


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

Допустим если памяти имеется 0-500 то такой то твик, 500-1000 - такой то... 1000-1500 - такой то... 1500-2000 - такой то.... 2000 и более - такой то....

Пример одного из твиков:

Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"PagingFiles"=hex(7):43,00,3a,00,5c,00,70,00,61,00,67,00,65,00,66,00,69,00,6c,\
  00,65,00,2e,00,73,00,79,00,73,00,20,00,31,00,35,00,30,00,30,00,20,00,31,00,\
  35,00,30,00,30,00,00,00,00,00

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:21, 20-01-2010

 

Аватара для semiono

Ветеран


Сообщения: 842
Благодарности: 33

Профиль | Отправить PM | Цитировать


1. По-моему windows это сама делает, однако именно её регламент я не знаю.
2. Надо сразу же определиться в том, что x86 не видит более 3.5~ Гб, а сервера с ключём /3Gb может и видят.
3. и нижний предел тоже можно прикинуть, скажем 128мб, ибо сейчас адекватно не бывает ниже
offtop:
Pozia, мне нравиться, что здесь тоже 00,00,00\ байты с чем я сам и борюсь, хотя каждому своё

-------
Полезное сообщение


Последний раз редактировалось semiono, 20-01-2010 в 01:26.


Отправлено: 01:12, 20-01-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Цитата semiono:
1. По-моему windows это сама делает, однако именно её регламент я не знаю. »
криво делает, не так как нужно
Цитата semiono:
2. Надо сразу же определиться в том, что x86 не видит более 3.5~ Гб, а сервера с ключём /3Gb может и видят. »
знаю
Цитата semiono:
3. и нижний предел тоже можно прикинуть, скажем 128мб, ибо сейчас адекватно не бывает ниже »
все бывает

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 07:34, 20-01-2010 | #3


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$a = MemGetStats()
Select 
	Case $a[1] <= 500
		RegWrite($twik1)
	Case 500 < $a[1] <= 1000
		RegWrite($twik2)
	Case 1000 < $a[1] <= 2000
		RegWrite($twik3)
	Case ELSE
		RegWrite($twik4)
EndSelect

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:37, 20-01-2010 | #4


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


kaster, неверно память определяет. У меня 4 гига а выполняется RegWrite($twik2)

Правда я так записал:

Код: Выделить весь код
$a = MemGetStats()
Select 
	Case $a[1] <= 500
		RunWait("REGEDIT /S 1.reg")
	Case 500 < $a[1] <= 1000
		RunWait("REGEDIT /S 2.reg")
	Case 1000 < $a[1] <= 2000
		RunWait("REGEDIT /S 3.reg")
	Case ELSE
		RunWait("REGEDIT /S 4.reg")
EndSelect

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 00:15, 21-01-2010 | #5


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


ммм.... потому что я дурак, написал за 3 мин по наитию, и в голове все смешалось
надо так
Код: Выделить весь код
$a = MemGetStats()
Select 
	Case $a[1] <= 500
		RunWait("REGEDIT /S 1.reg")
	Case 500 < $a[1] AND $a[1] <= 1000
		RunWait("REGEDIT /S 2.reg")
	Case 1000 < $a[1] AND $a[1] <= 2000
		RunWait("REGEDIT /S 3.reg")
	Case ELSE
		RunWait("REGEDIT /S 4.reg")
EndSelect

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:10, 21-01-2010 | #6


Ветеран


Сообщения: 903
Благодарности: 161

Профиль | Отправить PM | Цитировать


Pozia, один нюанс - память измеряется в KB, поэтому все значения $a[1] надо умножить на 1024 ...

Просто так для проформы прикладываю свой вариант скрипта по автоматическому заданию размера файла подкачки (может пригодится народу):
Код: Выделить весь код
$a = MemGetStats()
Select 
	Case $a[1] <= 261963
		RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 512 512"))
	Case 261963 < $a[1] AND $a[1] <= 523926
		RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 1024 1024"))
	Case 523926 < $a[1] AND $a[1] <= 1047852
		RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 1536 1536"))
	Case ELSE
		RunWait(RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "c:\pagefile.sys 2048 2048"))
EndSelect

Последний раз редактировалось saavaage, 01-08-2010 в 03:01.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:20, 01-08-2010 | #7


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


Если отключить файл подкачки, то ключ принимает значение: "PagingFiles"=hex(7):00,00,00,00
Через батник это задается так:
Код: Выделить весь код
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v testKeyBat /t REG_MULTI_SZ /d "\0" /f
А через AutoIt у меня получается либо hex(7):00,00 в таком варианте:
Код: Выделить весь код
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "")
либо hex(7):00,00,00,00,00,00 в таких случаях:
Код: Выделить весь код
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", @LF)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "" & @LF)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management", "PagingFiles", "REG_MULTI_SZ", "" & @LF & "")
А как же задать hex(7):00,00,00,00 ?

P.S.
saavaage, наверное, лучше использовать @HomeDrive & "\pagefile.sys" вместо "C:\pagefile.sys"

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:29, 07-08-2010 | #8


Ветеран


Сообщения: 903
Благодарности: 161

Профиль | Отправить PM | Цитировать


seriych, согласен с
Цитата seriych:
лучше использовать @HomeDrive & "\pagefile.sys" вместо "C:\pagefile.sys" »
, но дело в том, что файл подкачки не обязательно надо располагать на системном разделе. Есть мнения, что его лучше, вообще, кидать на другой жесткий диск (для улучшения производительности)...

-------
мы рождены, чтоб сказку сделать былью


Отправлено: 00:51, 08-08-2010 | #9


Аватара для seriych

Старожил


Сообщения: 182
Благодарности: 42

Профиль | Отправить PM | Цитировать


saavaage,
Вообще мнений есть много
И что на системный лучше не располагать, и на диск с торрентами... ИМХО это имеет смысл, если мы файл подкачки кинем на другой ФИЗИЧЕСКИЙ диск. А другой логический- один черт.
А @HomeDrive лучше использовать, хотябы потому что он заведомо существует, в отличие от диска C
Ну а как добавить ключик не в курсе? А то пока так использую:
Код: Выделить весь код
ShellExecute(@ComSpec, '/c reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "\0" /f', '', '', @SW_HIDE)
Работает, конечно, но хотелось бы узнать, как стандартным RegWrite сделать.
На всякий случай, зачем это нужно:
1) на некоторых нетбуках 2-4ГБ диски и файл подкачки лучше отрубить, иначе вечные жалобы на нехватку места.
2) Есть мнение, что лучше сначала обнулить файл подкачки, а после перезагрузки задать фиксированный, чтобы он был менее фрагментирован.

-------
* Книгой можно не только стаканчик с лапшой накрывать. ©


Отправлено: 01:09, 08-08-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрипт применения твиков в зависимости от объема памяти. Как?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Получение объема выделенной памяти для приложения. HORRIBLE AutoIt 1 12-10-2009 22:46
[решено] Как сделать смену оформления сайта в зависимости от времени суток в php binders Вебмастеру 9 04-10-2009 05:23
[решено] Неверное определение объема памяти в ASUS EAH3870 ab57 Видеокарты 11 28-11-2008 11:30
Проблема в отображении объема памяти Tsume Microsoft Windows 2000/XP 9 26-12-2007 20:27
Как отправлять электронную почту без применения яндекса? sano Хочу все знать 15 10-05-2006 11:56




 
Переход