Prev: Adding email function
Next: Create AD user
From: Richard Mueller [MVP] on 31 Jan 2007 17:58 I would say you cannot use WmiSetBrightness in VBScript, as there is no way to create a 64-bit value. It's similar to the problem we have attempting to assign values to Integer8 attributes in Active Directory. -- Richard Microsoft MVP Scripting and ADSI Hilltop Lab web site - http://www.rlmueller.net -- "mr_unreliable" <kindlyReplyToNewsgroup(a)notmail.com> wrote in message news:eAXZAJxEHHA.996(a)TK2MSFTNGP02.phx.gbl... > hi Adam, > > This could get tricky. > > I suggest attempting to use the vbs type-conversion routines, > for example, CByte(100) might give you an unsigned 8-bit > integer. > > Unfortunately, there is no native vbs 64-bit integer, but you > might try playing around with the currency (or date) type. > > The real trickiness comes with how far wmi goes with its > type-checking. That is, there ARE variants of subtype > unsigned integer, but not available to vbscripters. If > wmi is looking at the "variant type" of the variant typedef, > then you may be unable to use that feature from script > without some bit-twiddling. > > Just in case you DO happen to be up for a bit of bit-twiddling, > here is a table of the valid variant types. > > * VARENUM usage key, > * > * * [V] - may appear in a VARIANT > * * [T] - may appear in a TYPEDESC > * * [P] - may appear in an OLE property set > * * [S] - may appear in a Safe Array > * > * > * VT_EMPTY [V] [P] nothing > * VT_NULL [V] [P] SQL style Null > * VT_I2 [V][T][P][S] 2 byte signed int > * VT_I4 [V][T][P][S] 4 byte signed int > * VT_R4 [V][T][P][S] 4 byte real > * VT_R8 [V][T][P][S] 8 byte real > * VT_CY [V][T][P][S] currency > * VT_DATE [V][T][P][S] date > * VT_BSTR [V][T][P][S] OLE Automation string > * VT_DISPATCH [V][T][P][S] IDispatch * > * VT_ERROR [V][T][P][S] SCODE > * VT_BOOL [V][T][P][S] True=-1, False=0 > * VT_VARIANT [V][T][P][S] VARIANT * > * VT_UNKNOWN [V][T] [S] IUnknown * > * VT_DECIMAL [V][T] [S] 16 byte fixed point > * VT_RECORD [V] [P][S] user defined type > * VT_I1 [V][T][P][s] signed char > * VT_UI1 [V][T][P][S] unsigned char > * VT_UI2 [V][T][P][S] unsigned short > * VT_UI4 [V][T][P][S] unsigned short > * VT_I8 [T][P] signed 64-bit int > * VT_UI8 [T][P] unsigned 64-bit int > * VT_INT [V][T][P][S] signed machine int > * VT_UINT [V][T] [S] unsigned machine int > * VT_VOID [T] C style void > * VT_HRESULT [T] Standard return type > * VT_PTR [T] pointer type > * VT_SAFEARRAY [T] (use VT_ARRAY in VARIANT) > * VT_CARRAY [T] C style array > * VT_USERDEFINED [T] user defined type > * VT_LPSTR [T][P] null terminated string > * VT_LPWSTR [T][P] wide null terminated string > * VT_FILETIME [P] FILETIME > * VT_BLOB [P] Length prefixed bytes > * VT_STREAM [P] Name of the stream follows > * VT_STORAGE [P] Name of the storage follows > * VT_STREAMED_OBJECT [P] Stream contains an object > * VT_STORED_OBJECT [P] Storage contains an object > * VT_BLOB_OBJECT [P] Blob contains an object > * VT_CF [P] Clipboard format > * VT_CLSID [P] A Class ID > * VT_VECTOR [P] simple counted array > * VT_ARRAY [V] SAFEARRAY* > * VT_BYREF [V] void* for local use > * VT_BSTR_BLOB Reserved for system use > */ > > > > > > AdamM wrote: > > Hi all, > > > > I am writing a WMI script for screen brightness. I have to pass a value oif > > uint8 and uint64. My script below fails with an invalid parameter error on > > the last line. What is the proper syntax to pass the uint8 and uint64 > > values? > > > > The API I am calling is this: > > > > uint32 WmiSetBrightness( > > uint8 Brightness, > > uint64 Timeout > > ); > > Here's the script (the last line is apparently the problem): > > > > set services=getobject("winmgmts:root\wmi") > > set mon=services.get("WmiMonitorBrightnessMethods") > > mon.WmiSetBrightness 100,1 > > > > Any tips would be greatly appreciated! > > Adam > > > >
|
Pages: 1 Prev: Adding email function Next: Create AD user |