1 package org.jinterop.dcom.test; 2 3 import java.net.UnknownHostException ; 4 5 import org.jinterop.dcom.common.IJIAuthInfo; 6 import org.jinterop.dcom.common.JIDefaultAuthInfoImpl; 7 import org.jinterop.dcom.common.JIException; 8 import org.jinterop.winreg.IJIWinReg; 9 import org.jinterop.winreg.JIPolicyHandle; 10 import org.jinterop.winreg.JIWinRegFactory; 11 12 13 19 public class TestWinReg { 20 21 public static void main(String [] args) { 22 23 if (args.length < 5) 24 { 25 System.out.println("Please provide address domain username password keyname"); 26 return; 27 } 28 IJIAuthInfo authInfo = new JIDefaultAuthInfoImpl(args[1],args[2],args[3]); 29 30 31 32 try { 33 IJIWinReg registry = JIWinRegFactory.getSingleTon().getWinreg(authInfo,args[0],true); 34 JIPolicyHandle policyHandle = registry.winreg_OpenHKLM(); 36 JIPolicyHandle policyHandle2 = registry.winreg_OpenKey(policyHandle,"Software\\Classes",IJIWinReg.KEY_ALL_ACCESS); 38 39 System.out.println("Printing first 1000 entries under \"Software\\Classes\"..."); 40 for (int i = 0;i < 1000;i++) 41 { 42 String [] values = registry.winreg_EnumKey(policyHandle2,i); 43 System.out.println(values[0] + " , " + values[1]); 44 } 45 46 System.out.println("****************************************************"); 47 System.out.println("\nCreating Key " + args[4] + " under \"Software\\Classes\"..."); 48 String key = args[4].trim(); 49 JIPolicyHandle policyHandle3 = registry.winreg_CreateKey(policyHandle2,key,IJIWinReg.REG_OPTION_NON_VOLATILE,IJIWinReg.KEY_ALL_ACCESS); 50 51 System.out.println("Setting values to " + key); 52 registry.winreg_SetValue(policyHandle3,"j-Interop_None"); 53 registry.winreg_SetValue(policyHandle3,"j-Interop_String",".".getBytes(),false,false); 54 Object [] values1 = registry.winreg_QueryValue(policyHandle3,"j-Interop_String",1024); 55 registry.winreg_SetValue(policyHandle3,"j-Interop_String_Ex","%PATH%\\Test12345".getBytes(),false,true); 56 registry.winreg_SetValue(policyHandle3,"j-Interop_Bin","123456789".getBytes(),true,false); 57 registry.winreg_SetValue(policyHandle3,"j-Interop_Dword",100); 58 59 String [] strings = {"123", "456", "6789", "10","11"}; 60 byte[][] data = new byte[strings.length][]; 61 for (int i = 0; i < strings.length;i++) 62 { 63 data[i] = strings[i].getBytes(); 64 } 65 66 registry.winreg_SetValue(policyHandle3,"j-Interop_Multi_sz",data); 67 68 for (int i = 0; i < 6;i++) 69 { 70 Object [] values = registry.winreg_EnumValue(policyHandle3,i); 71 System.out.println(values[0] + " , " + values[1]); 72 } 73 74 System.out.println("Retrieving j-Interop_String_Ex value " + key); 75 Object [] values = registry.winreg_QueryValue(policyHandle3,"j-Interop_String_Ex",1024); 76 System.out.println(new String ((byte[])values[1])); 77 78 System.out.println("Deleting j-Interop_Bin value"); 79 registry.winreg_DeleteKeyOrValue(policyHandle3,"j-Interop_Bin",false); 80 81 System.out.println("Saving the " + key + " in a file to local server location as c:\\temp\\j-Interop"); 82 registry.winreg_SaveFile(policyHandle3,"c:\\temp\\j-Interop"); 83 84 registry.winreg_CloseKey(policyHandle3); 85 registry.winreg_CloseKey(policyHandle2); 86 registry.winreg_CloseKey(policyHandle); 87 88 89 113 114 } catch (JIException e) { 115 e.printStackTrace(); 117 } catch (UnknownHostException e) { 118 e.printStackTrace(); 120 } 121 122 123 124 } 125 126 } 127 | Popular Tags |