Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > работа с реестром и ОЗУ


Автор: lexsa666 7.11.2009, 15:10
Привет всем..! smile 
Мальчики программисты  помогите пожалуйста..
Надо определить объем доступного ОЗУ,
Создать ключ регистрации данных и разместить соответствующие данные в реестре.
Создать процедуру поиска и активизации заданного ключа реестра.
Создать процедуру удаления заданного ключа реестра и выбранных данных в зависимости от ОС.
Совсем не знаю что делать??? smile 
Спасибо заранее всем..))))

Автор: Данкинг 7.11.2009, 19:40
Цитата(lexsa666 @  7.11.2009,  15:10 Найти цитируемый пост)
Мальчики программисты

А помощь девочек-программистов не принимается? smile 

Цитата(lexsa666 @  7.11.2009,  15:10 Найти цитируемый пост)
Совсем не знаю что делать???

Для начала - найти класс для работы с реестром. smile Например, WinRegistry.


Автор: Egorik789 9.11.2009, 06:53
lexsa666
Привет) smile 
Не знаю как можно записать данные в реестр но знаю как считать)
http://forum.vingrad.ru/forum/topic-278613/kw-streamreader.html
))

Автор: AlexeyVorotnikov 9.11.2009, 10:31
Цитата(lexsa666 @  7.11.2009,  16:10 Найти цитируемый пост)
Создать процедуру удаления заданного ключа реестра и выбранных данных в зависимости от ОС.

В некоторых ОС и реестра-то нету...

Автор: LSD 9.11.2009, 11:00
Цитата(AlexeyVorotnikov @  9.11.2009,  10:31 Найти цитируемый пост)
В некоторых ОС и реестра-то нету... 

Но в тех, что есть можно использовать http://sourceforge.net/projects/jreg/ smile

Автор: ivanovpv 9.11.2009, 11:36
Цитата(lexsa666 @  7.11.2009,  15:10 Найти цитируемый пост)
Надо определить объем доступного ОЗУ,


Это не так просто как может показаться. Одно дело определить RAM доступный для JVM - это просто:
Код

public class MyMemoryGettter 
{

    public static void main(String[] args) 
   {
       System.out.println("Total Memory"+Runtime.getRuntime().totalMemory());    
       System.out.println("Free Memory"+Runtime.getRuntime().freeMemory());

    }
}


а если речь идет о RAM операционки - тут без вызова внешней библиотеки самой ОС не обойтись. Для Win32 это можно сделать так (через JNI):

Код

import com.sun.jna.*;
 
public class MyMemoryGettter
{
   public static void main (String [] args)
   {
 
      Kernel32 lib = (Kernel32) Native.loadLibrary ("kernel32", Kernel32.class);
 
      Kernel32.MEMORYSTATUS mem = new Kernel32.MEMORYSTATUS ();
      lib.GetMem(mem);
       System.out.println ("Available physical memory " + mem.dwAvailPhys);
   }
 
}


Автор: Egorik789 9.11.2009, 12:20
LSD
А вот это  JRegistry написан на какой среде разработки? 
Я под NetBeans IDE работаю.

Автор: LSD 9.11.2009, 13:04
Цитата(Egorik789 @  9.11.2009,  12:20 Найти цитируемый пост)
А вот это  JRegistry написан на какой среде разработки?

Без понятия, но использовать его можно с любой средой.

Автор: Egorik789 9.11.2009, 13:13
LSD
А есть какая нибудь литература работы с реестром..? smile  Лучше на русском.

Автор: LSD 9.11.2009, 13:17
Цитата(Egorik789 @  9.11.2009,  13:13 Найти цитируемый пост)
А есть какая нибудь литература работы с реестром..?

Что значит работа с реестром? Описание ветвей и ключей реестра, API для доступа к реестру или что?

Автор: Egorik789 9.11.2009, 13:21
LSD
Да там..
Основные методы там.

Автор: LSD 9.11.2009, 17:04
Цитата(Egorik789 @  9.11.2009,  13:21 Найти цитируемый пост)
Да там..
Основные методы там. 

Не понял, что тебе нужно, но описание ключей можно глянуть в книгах по Windows. API по работе с реестром можно посмотреть в MSDN (тока там будет не на Java).

Автор: lexsa666 10.11.2009, 07:02
Данкинг, принимается) smile 
Да понаписали..
Что то разумное хотя бы написали..?
С ОЗУ(RAM операционки) я разобралась..
ivanovpv, не доконца привел пример и он к тому же на половину правильный...
Код

import com.sun.jna.*;
public class Main {

    public static void main(String[] args) {
       
      Kernel32 lib = (Kernel32) Native.loadLibrary ("kernel32", Kernel32.class);
      Kernel32.MEMORYSTATUS mem = new Kernel32.MEMORYSTATUS ();
      lib.GlobalMemoryStatus(mem);
      
      System.out.println ("Available physical memory " + mem.dwAvailPhys/(1024 * 1024));
     }
}
//также нужно создаь 2 класс kernel32

import com.sun.jna.*;
import com.sun.jna.win32.*;

public interface Kernel32 extends StdCallLibrary
{
public static class MEMORYSTATUS extends Structure
   {
      public int dwLength;
      public int dwMemoryLoad;
      public int dwTotalPhys;
      public int dwAvailPhys;
      public int dwTotalPageFile;
      public int dwAvailPageFile;
      public int dwTotalVirtual;
      public int dwAvailVirtual;

   } // end of MEMORYSTATUS

   void GlobalMemoryStatus (MEMORYSTATUS result);
}

Остается открытый вопрос про реестр..?)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)