Hallo zusammen ich habe folgendes Problem.
Ich habe mir ein kleines Tool gebaut um informationen aus der Windows Registy auszulesen.
Nun möchte ich aus dem Baum
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
den Schlüssel "CSDVersion" und "ProductId" Auslesen was ich über eine Schleife Regel.
Code:
[JAVA=42]
public String getInstallSP()
{
if(getOSName().equals("Windows XP"))
{
try
{
Process p = Runtime.getRuntime().exec("cmd.exe /C REG QUERY" + "\"" + "HKLM" + "\\" + "SOFTWARE" + "\\" + "Microsoft" + "\\" + "Windows NT" + "\\" + "CurrentVersion" + "\"");
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String s;
while ((s = in.readLine()) != null)
{
System.out.println(s);
String [] res = s.trim().split("\t");
if(res[0].equals("CSDVersion"))
{
InsallSP= (res[2]);
}
}
}
catch (Exception e)
{
System.out.println("Exception caught ="+e.getMessage());
}
if(InsallSP == null)
{
InsallSP = "**Info not available**";
}
return InsallSP;
}
else
{
try
{
Process p = Runtime.getRuntime().exec("cmd.exe /C REG QUERY" + "\"" + "HKLM" + "\\" + "SOFTWARE" + "\\" + "Microsoft" + "\\" + "Windows NT" + "\\" + "CurrentVersion" + "\"");
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String s;
while ((s = in.readLine()) != null)
{
System.out.println(s);
String [] res = s.trim().split(" ");
if(res[0].equals("CSDVersion"))
{
InsallSP = (res[2]);
}
}
}
catch (Exception e)
{
System.out.println("Exception caught ="+e.getMessage());
}
if(InsallSP == null)
{
InsallSP = "**Info not available**";
}
return InsallSP;
}
}
[/code]
Leider ist aber die Ausgabe die ich bekomme nicht Vollständig.
Wenn ich die Abfrage per Hand in die CMD Console eingebe bekomme ich alle Informationen die In diesem Schlüssel Stehen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
SubVersionNumber REG_SZ
CurrentBuild REG_SZ 1.511.1 () (Obsolete data - do not use)
InstallDate REG_DWORD 0x4ac4ab1f
ProductName REG_SZ Microsoft Windows XP
RegDone REG_SZ
RegisteredOrganization REG_SZ
RegisteredOwner REG_SZ
SoftwareType REG_SZ SYSTEM
CurrentVersion REG_SZ 5.1
CurrentBuildNumber REG_SZ 2600
BuildLab REG_SZ 2600.xpsp_sp3_gdr.101209-1647
CurrentType REG_SZ Multiprocessor Free
CSDVersion REG_SZ Service Pack 3
SystemRoot REG_SZ C:\WINDOWS
SourcePath REG_SZ C:\I386
PathName REG_SZ C:\WINDOWS
ProductId REG_SZ 76497-OEM-0011903-00101
DigitalProductId REG_BINARY A40000000300000037363439372D4F454D2D3030
31313930332D3030313031002D0000004132322D3030303031000000000000004A982F0E09259AE0
598085BF02F901000000000029C7C44A551406000200000000000000000000000000000000000000
000000003235363033000000000000005105000028B5300CE60700001A0A00000000000000000000
00000000000000000000000000000000000000006C71E6E2
c5 REG_BINARY 031B029446B40186CC236B0090672B1FF4F947CC8B2FE9B3E314AABB
28D57E93599C4012654E24407E5BF089869F0A8B9A2886D7B1A5187D2DB079F5F60C6393EB3E2251
D0278CC69195D7E5E78B09F1392CEDED2571DF7AEACAA5AB42CDE93080401E14D684F577BB158DA9
619EF5C62EE0F7A8A3A9F1A68BE086AFDC
LicenseInfo REG_BINARY E7771826359BC3BF24F184133A3D1891382A5A53438E7A20
36B889177F5126D244E160CC42F436B0A667A77000B1BCF75B23D8BE39091292
AGTSType REG_BINARY 94CDC54A00000000
Mache ich das Über meine Java Anwendung dann fehlen grade die wichtigen Informationen die ich benötige.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
SubVersionNumber REG_SZ
CurrentBuild REG_SZ 1.511.1
InstallDate REG_DWORD 0x4ac4ab1f
ProductName REG_SZ Microsoft Windows XP
RegDone REG_SZ
RegisteredOrganization REG_SZ
RegisteredOwner REG_SZ
SoftwareType REG_SZ SYSTEM
CurrentVersion REG_SZ 5.1
CurrentBuildNumber REG_SZ 2600
BuildLab REG_SZ 2600.xpsp_sp3_gdr.101209-1647
CurrentType REG_SZ Multiprocessor Free
SystemRoot REG_SZ C:\WINDOWS
SourcePath REG_SZ C:\I386
PathName REG_SZ C:\WINDOWS
AGTSType REG_BINARY 94CDC54A00000000
Hat einer von euch eine ahnung oder auch Lösung woran das liegen kann das ich verschidene Ausgaben bekomme.
Grüße und Danke im vorraus
Lenny
Ich habe mir ein kleines Tool gebaut um informationen aus der Windows Registy auszulesen.
Nun möchte ich aus dem Baum
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
den Schlüssel "CSDVersion" und "ProductId" Auslesen was ich über eine Schleife Regel.
Code:
[JAVA=42]
public String getInstallSP()
{
if(getOSName().equals("Windows XP"))
{
try
{
Process p = Runtime.getRuntime().exec("cmd.exe /C REG QUERY" + "\"" + "HKLM" + "\\" + "SOFTWARE" + "\\" + "Microsoft" + "\\" + "Windows NT" + "\\" + "CurrentVersion" + "\"");
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String s;
while ((s = in.readLine()) != null)
{
System.out.println(s);
String [] res = s.trim().split("\t");
if(res[0].equals("CSDVersion"))
{
InsallSP= (res[2]);
}
}
}
catch (Exception e)
{
System.out.println("Exception caught ="+e.getMessage());
}
if(InsallSP == null)
{
InsallSP = "**Info not available**";
}
return InsallSP;
}
else
{
try
{
Process p = Runtime.getRuntime().exec("cmd.exe /C REG QUERY" + "\"" + "HKLM" + "\\" + "SOFTWARE" + "\\" + "Microsoft" + "\\" + "Windows NT" + "\\" + "CurrentVersion" + "\"");
BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream()));
String s;
while ((s = in.readLine()) != null)
{
System.out.println(s);
String [] res = s.trim().split(" ");
if(res[0].equals("CSDVersion"))
{
InsallSP = (res[2]);
}
}
}
catch (Exception e)
{
System.out.println("Exception caught ="+e.getMessage());
}
if(InsallSP == null)
{
InsallSP = "**Info not available**";
}
return InsallSP;
}
}
[/code]
Leider ist aber die Ausgabe die ich bekomme nicht Vollständig.
Wenn ich die Abfrage per Hand in die CMD Console eingebe bekomme ich alle Informationen die In diesem Schlüssel Stehen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
SubVersionNumber REG_SZ
CurrentBuild REG_SZ 1.511.1 () (Obsolete data - do not use)
InstallDate REG_DWORD 0x4ac4ab1f
ProductName REG_SZ Microsoft Windows XP
RegDone REG_SZ
RegisteredOrganization REG_SZ
RegisteredOwner REG_SZ
SoftwareType REG_SZ SYSTEM
CurrentVersion REG_SZ 5.1
CurrentBuildNumber REG_SZ 2600
BuildLab REG_SZ 2600.xpsp_sp3_gdr.101209-1647
CurrentType REG_SZ Multiprocessor Free
CSDVersion REG_SZ Service Pack 3
SystemRoot REG_SZ C:\WINDOWS
SourcePath REG_SZ C:\I386
PathName REG_SZ C:\WINDOWS
ProductId REG_SZ 76497-OEM-0011903-00101
DigitalProductId REG_BINARY A40000000300000037363439372D4F454D2D3030
31313930332D3030313031002D0000004132322D3030303031000000000000004A982F0E09259AE0
598085BF02F901000000000029C7C44A551406000200000000000000000000000000000000000000
000000003235363033000000000000005105000028B5300CE60700001A0A00000000000000000000
00000000000000000000000000000000000000006C71E6E2
c5 REG_BINARY 031B029446B40186CC236B0090672B1FF4F947CC8B2FE9B3E314AABB
28D57E93599C4012654E24407E5BF089869F0A8B9A2886D7B1A5187D2DB079F5F60C6393EB3E2251
D0278CC69195D7E5E78B09F1392CEDED2571DF7AEACAA5AB42CDE93080401E14D684F577BB158DA9
619EF5C62EE0F7A8A3A9F1A68BE086AFDC
LicenseInfo REG_BINARY E7771826359BC3BF24F184133A3D1891382A5A53438E7A20
36B889177F5126D244E160CC42F436B0A667A77000B1BCF75B23D8BE39091292
AGTSType REG_BINARY 94CDC54A00000000
Mache ich das Über meine Java Anwendung dann fehlen grade die wichtigen Informationen die ich benötige.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
SubVersionNumber REG_SZ
CurrentBuild REG_SZ 1.511.1
InstallDate REG_DWORD 0x4ac4ab1f
ProductName REG_SZ Microsoft Windows XP
RegDone REG_SZ
RegisteredOrganization REG_SZ
RegisteredOwner REG_SZ
SoftwareType REG_SZ SYSTEM
CurrentVersion REG_SZ 5.1
CurrentBuildNumber REG_SZ 2600
BuildLab REG_SZ 2600.xpsp_sp3_gdr.101209-1647
CurrentType REG_SZ Multiprocessor Free
SystemRoot REG_SZ C:\WINDOWS
SourcePath REG_SZ C:\I386
PathName REG_SZ C:\WINDOWS
AGTSType REG_BINARY 94CDC54A00000000
Hat einer von euch eine ahnung oder auch Lösung woran das liegen kann das ich verschidene Ausgaben bekomme.
Grüße und Danke im vorraus
Lenny