if (type.isArray()) { final ArrayList<Object> objs = new ArrayList<>(); final Object [] array = (Object[])type.getObjectAsArray().getArrayInstance(); switch (type.getType()) { case JIVariant.VT_NULL: return null; case JIVariant.VT_BSTR: return type.getObjectAsString().getString(); case JIVariant.VT_I2: // sint16 return type.getObjectAsShort(); case JIVariant.VT_I4: return type.getObjectAsInt(); case JIVariant.VT_UI1: // uint8 (convert to Java Number) return type.getObjectAsUnsigned().getValue(); case JIVariant.VT_BOOL: return type.getObjectAsBoolean(); case JIVariant.VT_DECIMAL: return type.getObjectAsFloat(); case JIVariant.VT_DATE: return type.getObjectAsDate(); default: throw new WmiException("Unknown type presented (" + type.getType() + "), defaulting to Object: " + type.toString());
public void createWorkSheet() throws JIException { int dispId = dispatch.getIDsOfNames("Workbooks"); JIVariant outVal = dispatch.get(dispId); IJIDispatch dispatchOfWorkBooks =(IJIDispatch)JIObjectFactory.narrowObject(outVal.getObjectAsComObject()); JIVariant[] outVal2 = dispatchOfWorkBooks.callMethodA("Add",new Object[]{JIVariant.OPTIONAL_PARAM()}); dispatchOfWorkBook =(IJIDispatch)JIObjectFactory.narrowObject(outVal2[0].getObjectAsComObject()); outVal = dispatchOfWorkBook.get("Worksheets"); dispatchOfWorkSheets = (IJIDispatch)JIObjectFactory.narrowObject(outVal.getObjectAsComObject()); outVal2 = dispatchOfWorkSheets.callMethodA("Add",new Object[]{JIVariant.OPTIONAL_PARAM(),JIVariant.OPTIONAL_PARAM(),JIVariant.OPTIONAL_PARAM(),JIVariant.OPTIONAL_PARAM()}); dispatchOfWorkSheet =(IJIDispatch)JIObjectFactory.narrowObject(outVal2[0].getObjectAsComObject()); }
public void performOp () throws JIException, InterruptedException { System.out.println ( this.dispatch.get ( "Version" ).getObjectAsString ().getString () ); System.out.println ( this.dispatch.get ( "Path" ).getObjectAsString ().getString () ); JIVariant variant = this.dispatch.get ( "Documents" ); //JIInterfacePointer ptr = variant.getObjectAsInterfacePointer(); //IJIDispatch documents = (IJIDispatch)JIObjectFactory.createCOMInstance(unknown,ptr); final IJIDispatch documents = (IJIDispatch)JIObjectFactory.narrowObject ( variant.getObjectAsComObject () ); final JIString filePath = new JIString ( "c:/temp/test.doc" ); final JIVariant variant2[] = documents.callMethodA ( "open", new Object[] { filePath.VariantByRef, JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM () } ); //IJIDispatch document = (IJIDispatch)JIObjectFactory.createCOMInstance(unknown,variant2[0].getObjectAsInterfacePointer()); final IJIDispatch document = (IJIDispatch)JIObjectFactory.narrowObject ( variant2[0].getObjectAsComObject () ); variant = document.get ( "Content" ); //IJIDispatch range = (IJIDispatch)JIObjectFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer()); final IJIDispatch range = (IJIDispatch)JIObjectFactory.narrowObject ( variant.getObjectAsComObject () ); variant = range.get ( "Find" ); final IJIDispatch find = (IJIDispatch)JIObjectFactory.narrowObject ( variant.getObjectAsComObject () ); Thread.sleep ( 2000 ); final JIString findString = new JIString ( "ow" ); final JIString replaceString = new JIString ( "igh" ); find.callMethodA ( "Execute", new Object[] { findString.VariantByRef, JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), replaceString.VariantByRef, JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM () } ); Thread.sleep ( 5000 ); this.dispatch.callMethod ( "Quit", new Object[] { new JIVariant ( -1, true ), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM () } ); JISession.destroySession ( this.dispatch.getAssociatedSession () ); }
return (IJIDispatch) JIObjectFactory.narrowObject( comObjectAsVariant.getObjectAsComObject() ); new JIVariant( new Integer( RETURN_IMMEDIATE + FORWARD_ONLY ) ) } ); IJIDispatch wbemEventSource = (IJIDispatch) JIObjectFactory.narrowObject( ( eventSourceSet[ 0 ] ).getObjectAsComObject() ); String asText = objTextAsVariant.getObjectAsString().getString(); System.out.println( asText );
/** * Perform some fixes on the variant when writing it to OPC items. This * method * only changes control information on the variant and not the value itself! * * @param value * the value to fix * @return the fixed value * @throws JIException * In case something goes wrong */ public static JIVariant fixVariant ( final JIVariant value ) throws JIException { if ( value.isArray () ) { if ( value.getObjectAsArray ().getArrayInstance () instanceof Boolean[] ) { value.setFlag ( JIFlags.FLAG_REPRESENTATION_VARIANT_BOOL ); } } return value; } }
typeInfo.getFuncDesc ( 0 ); this.dispatch.callMethod ( "Open", new Object[] { new JIString ( "driver=Microsoft Access Driver (*.mdb);dbq=C:\\temp\\products.mdb" ), JIVariant.OPTIONAL_PARAM (), JIVariant.OPTIONAL_PARAM (), new Integer ( -1 ) } ); if ( variant[0].isNull () ) final IJIDispatch resultSet = (IJIDispatch)JIObjectFactory.narrowObject ( variant[0].getObjectAsComObject () ); while ( !resultSet.get ( "EOF" ).getObjectAsBoolean () ) final IJIDispatch fields = (IJIDispatch)JIObjectFactory.narrowObject ( variant2.getObjectAsComObject () ); final int count = fields.get ( "Count" ).getObjectAsInt (); for ( int i = 0; i < count; i++ ) final IJIDispatch field = (IJIDispatch)JIObjectFactory.narrowObject ( variant[0].getObjectAsComObject () ); variant2 = field.get ( "Value" ); Object val = null; if ( variant2.getType () == JIVariant.VT_BSTR ) val = variant2.getObjectAsString ().getString (); if ( variant2.getType () == JIVariant.VT_I4 ) val = new Integer ( variant2.getObjectAsInt () ); System.out.println ( field.get ( "Name" ).getObjectAsString ().getString () + " = " + val + "[" + variant2.getType () + "]" );
public void pasteArrayToWorkSheet() throws JIException JIVariant variant = new JIVariant(new JIString("A1:C3")); Object[] out = new Object[]{JIVariant.class}; JIVariant[] outVal2 = dispatchOfWorkSheet.get(dispId, new Object[]{variant}); IJIDispatch dispRange = (IJIDispatch)JIObjectFactory.narrowObject(outVal2[0].getObjectAsComObject()); { new JIVariant(new JIString("defe")), new JIVariant(new Boolean(false)), new JIVariant(new Double(98765.0 / 12345.0))}, { new JIVariant(new Date()), new JIVariant(new Integer(5454)),new JIVariant(new Float(22.0 / 7.0) ) }, { new JIVariant(new Boolean(true)), new JIVariant(new JIString("dffe")),new JIVariant(new Date())} }; dispRange.put("Value2", new JIVariant(new JIArray(newValue))); JIArray newValue2 = variant2.getObjectAsArray(); newValue = (JIVariant[][])newValue2.getArrayInstance(); for(int i = 0; i < newValue.length; i++){ dispatchOfWorkBook.callMethod("close",new Object[]{Boolean.FALSE,JIVariant.OPTIONAL_PARAM(),JIVariant.OPTIONAL_PARAM()}); dispatch.callMethod("Quit"); JISession.destroySession(session);
switch ( variant.getType () ) return Variant.valueOf ( variant.getObjectAsBoolean () ); case JIVariant.VT_EMPTY: return Variant.NULL; return Variant.NULL; case JIVariant.VT_I1: return Variant.valueOf ( ( (Character)variant.getObject () ).charValue () ); case JIVariant.VT_I2: return Variant.valueOf ( variant.getObjectAsShort () ); case JIVariant.VT_I4: return Variant.valueOf ( variant.getObjectAsInt () ); case JIVariant.VT_INT: return Variant.valueOf ( variant.getObjectAsInt () ); case JIVariant.VT_I8: return Variant.valueOf ( variant.getObjectAsLong () ); case JIVariant.VT_R4: return Variant.valueOf ( variant.getObjectAsFloat () ); case JIVariant.VT_R8: return Variant.valueOf ( variant.getObjectAsDouble () ); case JIVariant.VT_BSTR: final JIString str = variant.getObjectAsString (); if ( str != null ) return Variant.valueOf ( variant.getObjectAsUnsigned ().getValue ().byteValue () ); case JIVariant.VT_UI2: return Variant.valueOf ( variant.getObjectAsUnsigned ().getValue ().shortValue () );
JIVariant results[] = dispatch.callMethodA("ConnectServer",new Object[]{JIVariant.OPTIONAL_PARAM(),new JIString("ROOT\\CIMV2"),JIVariant.OPTIONAL_PARAM(),JIVariant.OPTIONAL_PARAM() ,JIVariant.OPTIONAL_PARAM(),JIVariant.OPTIONAL_PARAM(),new Integer(0),JIVariant.OPTIONAL_PARAM()}); IJIDispatch wbemServices_dispatch = (IJIDispatch)JIObjectFactory.narrowObject((results[0]).getObjectAsComObject()); results = wbemServices_dispatch.callMethodA("ExecQuery", new Object[]{new JIString("select * from Win32_OperatingSystem where Primary=True"), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM(),JIVariant.OPTIONAL_PARAM()}); IJIDispatch wbemObjectSet_dispatch = (IJIDispatch)JIObjectFactory.narrowObject((results[0]).getObjectAsComObject()); JIVariant variant = wbemObjectSet_dispatch.get("_NewEnum"); IJIComObject object2 = variant.getObjectAsComObject(); int count = Count.getObjectAsInt(); for (int i = 0; i < count; i++) for (int j = 0; j < arrayObj.length; j++) IJIDispatch wbemObject_dispatch = (IJIDispatch)JIObjectFactory.narrowObject(((JIVariant)arrayObj[j]).getObjectAsComObject()); JIVariant variant2 = (JIVariant)(wbemObject_dispatch.callMethodA("GetObjectText_",new Object[]{new Integer(1)}))[0]; System.out.println(variant2.getObjectAsString().getString()); System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
final Object[] t123 = dispatch.callMethodA ( "GetFlavorsWithPrices", new Object[] { JIVariant.EMPTY_BYREF () } ); final Object[] t12 = dispatch.callMethodA ( "GetFlavors", new Object[] { JIVariant.EMPTY_BYREF () } ); Object[] ret0 = dispatch.callMethodA ( "LongArray", new Object[] { new JIVariant ( new JIArray ( new Integer[] { new Integer ( 1 ), new Integer ( 2 ), new Integer ( 4 ) }, true ), true ) } ); JIArray ret01 = ( (JIVariant)ret0[1] ).getObjectAsArray (); ret0 = dispatch.callMethodA ( "ReadAsicRegisterBlock", new Object[] { new JIString ( "Chonap" ), new JIString ( "Cho" ), new JIVariant ( new JIArray ( new JIUnsignedShort[] { (JIUnsignedShort)JIUnsignedFactory.getUnsigned ( new Integer ( 4000 ), JIFlags.FLAG_REPRESENTATION_UNSIGNED_SHORT ), (JIUnsignedShort)JIUnsignedFactory.getUnsigned ( new Integer ( 4001 ), JIFlags.FLAG_REPRESENTATION_UNSIGNED_SHORT ) }, true ), true ), new JIVariant ( new JIArray ( new JIUnsignedInteger[] { (JIUnsignedInteger)JIUnsignedFactory.getUnsigned ( new Long ( 9999 ), JIFlags.FLAG_REPRESENTATION_UNSIGNED_INT ), (JIUnsignedInteger)JIUnsignedFactory.getUnsigned ( new Long ( 9999 ), JIFlags.FLAG_REPRESENTATION_UNSIGNED_INT ) }, true ), true ), Boolean.FALSE, Boolean.TRUE } ); ret01 = ( (JIVariant)ret0[1] ).getObjectAsArray (); ret0 = dispatch.callMethodA ( "testSA1", new Object[] { new JIVariant ( new JIArray ( new Boolean[] { Boolean.FALSE, Boolean.TRUE }, true ), true ), new JIVariant ( new JIArray ( new Float[] { new Float ( 123.4 ), new Float ( 123.4 ) }, true ), true ), new JIVariant ( new JIArray ( new Double[] { new Double ( 123.4 ), new Double ( 123.4 ) }, true ), true ) } ); ret01 = ( (JIVariant)ret0[1] ).getObjectAsArray (); ret01 = ( (JIVariant)ret0[2] ).getObjectAsArray (); ret01 = ( (JIVariant)ret0[3] ).getObjectAsArray (); ret0 = dispatch.callMethodA ( "testSA3", new Object[] { new JIVariant ( new JIArray ( new JIVariant[] { new JIVariant ( new JIVariant ( dispatch, true ) ), new JIVariant ( dispatch, true ), new JIVariant ( new JIString ( "Hello" ) ), new JIVariant ( 123, true ) }, true ), true ) } ); ret01 = ( (JIVariant)ret0[1] ).getObjectAsArray (); ret0 = dispatch.callMethodA ( "testSA2", new Object[] { new JIVariant ( new JIArray ( new Byte[] { new Byte ( (byte)1 ), new Byte ( (byte)1 ) }, true ), true ), new JIVariant ( new JIArray ( new JIVariant[] { new JIVariant ( dispatch, true ) }, true ), true ), new JIVariant ( new JIArray ( new JIVariant[] { new JIVariant ( unknown, true ) }, true ), true ) } ); ret01 = ( (JIVariant)ret0[1] ).getObjectAsArray (); ret01 = ( (JIVariant)ret0[2] ).getObjectAsArray (); ret01 = ( (JIVariant)ret0[3] ).getObjectAsArray (); final JIArray aIn = new JIArray ( new JIVariant[] { new JIVariant ( new JIString ( "40807810804000300798" ) ), new JIVariant ( new JIString ( "1" ) ) }, true ); final JIVariant varArray = new JIVariant ( aIn ); final JIVariant vOpt = new JIVariant ( 8194 ); callObject.addInParamAsVariant ( JIVariant.EMPTY_BYREF (), JIFlags.FLAG_NULL ); callObject.addInParamAsVariant ( JIVariant.EMPTY_BYREF (), JIFlags.FLAG_NULL ); final JIArray arrt = ( (JIVariant)t[0] ).getObjectAsVariant ().getObjectAsArray (); System.out.println ( arrt );
public JIVariant BeforeNavigate2 ( IJIComObject dispatch, final JIVariant URL, final JIVariant Flags, final JIVariant TargetFrameName, final JIVariant PostData, final JIVariant Headers, final JIVariant Cancel ) throws JIException { dispatch = JIObjectFactory.narrowObject ( dispatch ); JIVariant realURL = URL; while ( realURL.isByRefFlagSet () ) { realURL = realURL.getObjectAsVariant (); } System.out.println ( "BeforeNavigate2 -> " + realURL.getObjectAsString ().getString () ); //uncomment and return this to stop loading the page //JIVariant variant = new JIVariant(true,true); return Cancel; }
void displayValues() throws JIException { System.out.println("ACStatus: " + dispatch.get("ACStatus").getObjectAsShort()); System.out.println("BatteryFullTime: " + dispatch.get("BatteryFullTime").getObjectAsInt()); System.out.println("BatteryLifePercent: " + dispatch.get("BatteryLifePercent").getObjectAsShort()); System.out.println("BatteryLifeTime: " + dispatch.get("BatteryLifeTime").getObjectAsInt()); System.out.println("BatteryStatus: " + dispatch.get("BatteryStatus").getObjectAsShort()); System.out.println("OSVersion: " + dispatch.get("OSVersion").getObjectAsFloat()); //dispatch.callMethod("AboutBox"); }
this.dispatch.callMethod ( "Add", new Object[] { new Integer ( i ), JIVariant.OPTIONAL_PARAM () } ); final IJIComObject object2 = variant.getObjectAsComObject (); for ( int j = 0; j < arrayObj.length; j++ ) System.out.println ( ( (JIVariant)arrayObj[j] ).getObjectAsInt () + "," + ( (Integer)values[1] ).intValue () );
private Object unmarshal(JIVariant v, Class<?> returnType) throws JIException { if(returnType==IJIDispatch.class) { return JIObjectFactory.narrowObject(v.getObjectAsComObject()); } if(JIProxy.class.isAssignableFrom(returnType)) {// typed wrapper return wrap(returnType.asSubclass(JIProxy.class),v.getObjectAsComObject()); } if(returnType==JIVariant.class) return v; if(returnType==int.class || returnType==Integer.class) return v.getObjectAsInt(); if(returnType==void.class) return null; if(returnType==String.class) return v.getObjectAsString2(); if(returnType==boolean.class) return v.getObjectAsBoolean(); throw new UnsupportedOperationException(returnType.getName()); } }
public JIVariant NewWindow2 ( final JIVariant ppDisp, final JIVariant Cancel ) throws JIException { System.out.println ( "NewWindow2 -> " + Cancel.getObjectAsBoolean () ); return Cancel; }
public IJIDispatch runPresentation(IJIDispatch activePresentation) throws JIException { IJIDispatch slideShowSettings = (IJIDispatch)JIObjectFactory.narrowObject(activePresentation.get("SlideShowSettings").getObjectAsComObject()); System.out.println("Running Slide show : " + activePresentation.get("Name").getObjectAsString().getString()); IJIDispatch slideShowWindow = (IJIDispatch)JIObjectFactory.narrowObject(slideShowSettings.callMethodA("Run").getObjectAsComObject()); IJIDispatch slideShowView = (IJIDispatch)JIObjectFactory.narrowObject(slideShowWindow.get("View").getObjectAsComObject()); return slideShowView; }
public void envQtp() throws JIException{ dispatch.callMethodA("Open", new Object[]{new JIString("C:\\Programme\\Mercury Interactive\\QuickTest Professional\\Tests\\Test1"), new JIVariant(Boolean.FALSE), new JIVariant(Boolean.TRUE)}); JIVariant variant = dispatch.get("Test"); IJIDispatch test = (IJIDispatch)JIObjectFactory.narrowObject(variant.getObjectAsComObject()); System.out.println(test.get("Author")); //and this is the original session associated with dispatch. JISession.destroySession(session); }
private void setVisible() throws JIException { int dispId = ieObjectDispatch.getIDsOfNames("Visible"); ieObjectDispatch.put(dispId,new JIVariant(true)); ieObjectDispatch.put("AddressBar",new JIVariant(true)); ieObjectDispatch.put("MenuBar",new JIVariant(true)); ieObjectDispatch.put("ToolBar",new JIVariant(true)); }
/** * @throws JIException */ private void quitAndDestroy() throws JIException { System.out.println("Quit..."); dispatch.callMethod("Quit", new Object[] { new JIVariant(-1, true), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM() }); JISession.destroySession(dispatch.getAssociatedSession()); }