Msvm_Keyboard, ROOT\virtualization\v2

Class | Methods (15) | Properties (43) | Qualifiers (4) | Instances | Namespaces (2)
Samples: VB Script | C# | VB.Net | Search on:Microsoft

Description

Represents a keyboard device.Keyboards are logical devices that are always present in a virtual system, and thus are not allocated through a resource pool. One instance is always present in a virtual computer system.

Msvm_Keyboard methods

Msvm_Keyboard has 15 methods (7 Local, 8 Derived)

NameOriginReturn
EnableDeviceCIM_LogicalDeviceuint32 {'out':True}
IsKeyPressedMsvm_Keyboarduint32 {'out':True}
OnlineDeviceCIM_LogicalDeviceuint32 {'out':True}
PressKeyMsvm_Keyboarduint32 {'out':True}
QuiesceDeviceCIM_LogicalDeviceuint32 {'out':True}
ReleaseKeyMsvm_Keyboarduint32 {'out':True}
RequestStateChangeCIM_EnabledLogicalElementuint32 {'out':True}
ResetCIM_LogicalDeviceuint32 {'out':True}
RestorePropertiesCIM_LogicalDeviceuint32 {'out':True}
SavePropertiesCIM_LogicalDeviceuint32 {'out':True}
SetPowerStateCIM_LogicalDeviceuint32 {'out':True}
TypeCtrlAltDelMsvm_Keyboarduint32 {'out':True}
TypeKeyMsvm_Keyboarduint32 {'out':True}
TypeScancodesMsvm_Keyboarduint32 {'out':True}
TypeTextMsvm_Keyboarduint32 {'out':True}

Msvm_Keyboard properties

Msvm_Keyboard has 43 properties (4 Local, 39 Derived)

NameOriginCIMType
AdditionalAvailabilityCIM_LogicalDevice18 [uint16]
AvailabilityCIM_LogicalDevice18 [uint16]
AvailableRequestedStatesCIM_EnabledLogicalElement18 [uint16]
CaptionCIM_ManagedElement8 [string]
CommunicationStatusCIM_ManagedSystemElement18 [uint16]
key
CreationClassName
CIM_LogicalDevice8 [string]
DescriptionCIM_ManagedElement8 [string]
DetailedStatusCIM_ManagedSystemElement18 [uint16]
key
DeviceID
CIM_LogicalDevice8 [string]
ElementNameCIM_ManagedElement8 [string]
EnabledDefaultCIM_EnabledLogicalElement18 [uint16]
EnabledStateCIM_EnabledLogicalElement18 [uint16]
ErrorClearedCIM_LogicalDevice11 [boolean]
ErrorDescriptionCIM_LogicalDevice8 [string]
HealthStateCIM_ManagedSystemElement18 [uint16]
IdentifyingDescriptionsCIM_LogicalDevice8 [string]
InstallDateCIM_ManagedSystemElement101 [datetime]
InstanceIDCIM_ManagedElement8 [string]
IsLockedCIM_UserDevice11 [boolean]
LastErrorCodeCIM_LogicalDevice19 [uint32]
LayoutMsvm_Keyboard8 [string]
MaxQuiesceTimeCIM_LogicalDevice21 [uint64]
NameCIM_ManagedSystemElement8 [string]
NumberOfFunctionKeysMsvm_Keyboard18 [uint16]
OperatingStatusCIM_ManagedSystemElement18 [uint16]
OperationalStatusCIM_ManagedSystemElement18 [uint16]
OtherEnabledStateCIM_EnabledLogicalElement8 [string]
OtherIdentifyingInfoCIM_LogicalDevice8 [string]
PasswordMsvm_Keyboard18 [uint16]
PowerManagementCapabilitiesCIM_LogicalDevice18 [uint16]
PowerManagementSupportedCIM_LogicalDevice11 [boolean]
PowerOnHoursCIM_LogicalDevice21 [uint64]
PrimaryStatusCIM_ManagedSystemElement18 [uint16]
RequestedStateCIM_EnabledLogicalElement18 [uint16]
StatusCIM_ManagedSystemElement8 [string]
StatusDescriptionsCIM_ManagedSystemElement8 [string]
StatusInfoCIM_LogicalDevice18 [uint16]
key
SystemCreationClassName
CIM_LogicalDevice8 [string]
key
SystemName
CIM_LogicalDevice8 [string]
TimeOfLastStateChangeCIM_EnabledLogicalElement101 [datetime]
TotalPowerOnHoursCIM_LogicalDevice21 [uint64]
TransitioningToStateCIM_EnabledLogicalElement18 [uint16]
UnicodeSupportedMsvm_Keyboard11 [boolean]

Detailed description of Msvm_Keyboard methods

Local methods (7) of Msvm_Keyboard class

▲ IsKeyPressed method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
keyCodeuint320✓-{'Description':'The virtual key code of the key to query.','In':True}
keyStateboolean1-✓{'Description':'The current down state of the key. A TRUE value means the key is down.','Out':True}
Bypass_GetObjectTrue
Description'Retrieves the key state of a key.
The IsKeyPressed method will always return FALSE for the VK_MENU (18), VK_CONTROL (17),and VK_SHIFT (16) keys because these are not real keys on a keyboard. These virtual key codes are always mapped to VK_LMENU (164), VK_LCONTROL (162), and VK_LSHIFT (160), respectively, by the PressKey and ReleaseKey methods.
Return value: A return value of zero indicates success. A non-zero value indicates a failure to query the key state.'
ImplementedTrue
ValueMap['0', '4096', '32768', '32769', '32770', '32771', '32772', '32773', '32774', '32775', '32776', '32777', '32778']
Values['Completed with No Error', 'Method Parameters Checked - Job Started', 'Failed', 'Access Denied', 'Not Supported', 'Status is unknown', 'Timeout', 'Invalid parameter', 'System is in used', 'Invalid state for this operation', 'Incorrect data type', 'System is not available', 'Out of memory']
IsKeyPressed method is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces
▲ PressKey method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
keyCodeuint320✓-{'Description':'The virtual key code of the key to press.','In':True}
Bypass_GetObjectTrue
Description'Simulates a key press. When successful the key will be in the down state.
The PressKey method maps references to the VK_MENU (18), VK_CONTROL (17), and VK_SHIFT (16) to VK_LMENU (164), VK_LCONTROL (162), and VK_LSHIFT (160), respectively, because the VK_MENU, VK_CONTROL, and VK_SHIFT virtual key codes do not represent real keys on a keyboard.
Return value: A return value of zero indicates success. A non-zero value indicates a failure to modify the key state.'
ImplementedTrue
ValueMap['0', '4096', '32768', '32769', '32770', '32771', '32772', '32773', '32774', '32775', '32776', '32777', '32778']
Values['Completed with No Error', 'Method Parameters Checked - Job Started', 'Failed', 'Access Denied', 'Not Supported', 'Status is unknown', 'Timeout', 'Invalid parameter', 'System is in used', 'Invalid state for this operation', 'Incorrect data type', 'System is not available', 'Out of memory']
PressKey method is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces
▲ ReleaseKey method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
keyCodeuint320✓-{'Description':'The virtual key code of the key to release.','In':True}
Bypass_GetObjectTrue
Description'Simulates a key release. When successful, the key will be in the up state.
The ReleaseKey method maps references to the VK_MENU (18), VK_CONTROL (17), and VK_SHIFT (16) to VK_LMENU (164), VK_LCONTROL (162), and VK_LSHIFT (160), respectively, because the VK_MENU, VK_CONTROL, and VK_SHIFT virtual key codes do not represent real keys on a keyboard.
Return value: A return value of zero indicates success. A non-zero value indicates a failure to modify the key state.'
ImplementedTrue
ValueMap['0', '4096', '32768', '32769', '32770', '32771', '32772', '32773', '32774', '32775', '32776', '32777', '32778']
Values['Completed with No Error', 'Method Parameters Checked - Job Started', 'Failed', 'Access Denied', 'Not Supported', 'Status is unknown', 'Timeout', 'Invalid parameter', 'System is in used', 'Invalid state for this operation', 'Incorrect data type', 'System is not available', 'Out of memory']
ReleaseKey method is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces
▲ TypeCtrlAltDel method
Returnuint32 {'out':True}
Bypass_GetObjectTrue
Description'Simulates a CTRL+ALT+DEL key sequence.
Return value: A return value of zero indicates success. A non-zero value indicates a failure to send.'
ImplementedTrue
ValueMap['0', '4096', '32768', '32769', '32770', '32771', '32772', '32773', '32774', '32775', '32776', '32777', '32778']
Values['Completed with No Error', 'Method Parameters Checked - Job Started', 'Failed', 'Access Denied', 'Not Supported', 'Status is unknown', 'Timeout', 'Invalid parameter', 'System is in used', 'Invalid state for this operation', 'Incorrect data type', 'System is not available', 'Out of memory']
TypeCtrlAltDel method is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces
▲ TypeKey method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
keyCodeuint320✓-{'Description':'The virtual key code of the key to press.','In':True}
Bypass_GetObjectTrue
Description'Simulates a press-release key sequence.
Return value: A return value of zero indicates success. A non-zero value indicates a failure to modify the key state.'
ImplementedTrue
ValueMap['0', '4096', '32768', '32769', '32770', '32771', '32772', '32773', '32774', '32775', '32776', '32777', '32778']
Values['Completed with No Error', 'Method Parameters Checked - Job Started', 'Failed', 'Access Denied', 'Not Supported', 'Status is unknown', 'Timeout', 'Invalid parameter', 'System is in used', 'Invalid state for this operation', 'Incorrect data type', 'System is not available', 'Out of memory']
TypeKey method is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces
▲ TypeScancodes method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
Scancodesuint80✓-{'ArrayType':'Indexed','Description':'An array containing the scancodes to type.','In':True}
Bypass_GetObjectTrue
Description'Simulates a key sequence using scancodes.'
ImplementedTrue
ValueMap['0', '32768', '32769', '32770', '32771', '32772', '32773', '32774', '32775', '32776', '32777', '32778']
Values['Completed with No Error', 'Failed', 'Access Denied', 'Not Supported', 'Status is unknown', 'Timeout', 'Invalid parameter', 'System is in used', 'Invalid state for this operation', 'Incorrect data type', 'System is not available', 'Out of memory']
TypeScancodes method is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces
▲ TypeText method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
asciiTextstring0✓-{'Description':'The series of ASCII text characters to type.','In':True}
Bypass_GetObjectTrue
Description'Simulates a series of typed ASCII characters. This routine may not be used to simulate the input of non-ASCII characters.
Return value: A return value of zero indicates success. A return value of one indicates a failure because of non-translatable characters in the input string. All other non-zero value indicates a failure to modify the key state.'
ImplementedTrue
ValueMap['0', '4096', '32768', '32769', '32770', '32771', '32772', '32773', '32774', '32775', '32776', '32777', '32778']
Values['Completed with No Error', 'Method Parameters Checked - Job Started', 'Failed', 'Access Denied', 'Not Supported', 'Status is unknown', 'Timeout', 'Invalid parameter', 'System is in used', 'Invalid state for this operation', 'Incorrect data type', 'System is not available', 'Out of memory']
TypeText method is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces

Derived methods (8) of Msvm_Keyboard class

▲ EnableDevice method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
Enabledboolean0✓-{'Description':'If TRUE enable the device, if FALSE disable the device.'}
EnableDevice method is in 63 classes of ROOT\virtualization\v2 and in 10 namespaces
▲ OnlineDevice method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
Onlineboolean0✓-{'Description':'If TRUE, take the device online, if FALSE, take the device OFFLINE.'}
OnlineDevice method is in 63 classes of ROOT\virtualization\v2 and in 8 namespaces
▲ QuiesceDevice method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
Quiesceboolean0✓-{'Description':'If set to TRUE then cleanly cease all activity, if FALSE resume activity.'}
QuiesceDevice method is in 63 classes of ROOT\virtualization\v2 and in 8 namespaces
▲ RequestStateChange method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
RequestedStateuint160✓-{'Description':'The state requested for the element. This information will be placed into the RequestedState property of the instance if the return code of the RequestStateChange method is 0 ('Completed with No Error'), or 4096 (0x1000) ('Job Started'). Refer to the description of the EnabledState and RequestedState properties for the detailed explanations of the RequestedState values.','ModelCorrespondence':['CIM_EnabledLogicalElement.RequestedState'],'ValueMap':['2', '3', '4', '6', '7', '8', '9', '10', '11', '..', '32768..65535'],'Values':['Enabled', 'Disabled', 'Shut Down', 'Offline', 'Test', 'Defer', 'Quiesce', 'Reboot', 'Reset', 'DMTF Reserved', 'Vendor Reserved']}
Jobref:CIM_ConcreteJob1-✓{'Description':'May contain a reference to the ConcreteJob created to track the state transition initiated by the method invocation.'}
TimeoutPerioddatetime2✓-{'Description':'A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format must be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. If this property does not contain 0 or null and the implementation does not support this parameter, a return code of 'Use Of Timeout Parameter Not Supported' shall be returned.'}
Bypass_GetObjectTrue
ImplementedTrue
ModelCorrespondence['CIM_EnabledLogicalElement.RequestedState']
ValueMap['0', '1']
Values['Completed with No Error', 'Not supported']
RequestStateChange method is in 111 classes of ROOT\virtualization\v2 and in 15 namespaces
▲ Reset method
Returnuint32 {'out':True}
Bypass_GetObjectTrue
ImplementedTrue
ValueMap['0', '1']
Values['Completed with No Error', 'Not supported']
Reset method is in 63 classes of ROOT\virtualization\v2 and in 19 namespaces
▲ RestoreProperties method
Returnuint32 {'out':True}
RestoreProperties method is in 63 classes of ROOT\virtualization\v2 and in 8 namespaces
▲ SaveProperties method
Returnuint32 {'out':True}
SaveProperties method is in 63 classes of ROOT\virtualization\v2 and in 8 namespaces
▲ SetPowerState method
Returnuint32 {'out':True}
Parameters
NameCIMTypeIDINOUTQualifiers
PowerStateuint160✓-{'Description':'The power state to set.','ValueMap':['1', '2', '3', '4', '5', '6'],'Values':['Full Power', 'Power Save - Low Power Mode', 'Power Save - Standby', 'Power Save - Other', 'Power Cycle', 'Power Off']}
Timedatetime1✓-{'Description':'Time indicates when the power state should be set, either as a regular date-time value or as an interval value (where the interval begins when the method invocation is received.'}
SetPowerState method is in 68 classes of ROOT\virtualization\v2 and in 14 namespaces

Detailed description of Msvm_Keyboard properties

Local properties (4) of Msvm_Keyboard class

▲ Layout property
CIMTYPE'string'
Description'A free-form string indicating the format and layout of the keyboard. This property is set to "00000409".'
readTrue
Layout property is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 4 namespaces
▲ NumberOfFunctionKeys property
CIMTYPE'uint16'
Description'The number of function keys on the keyboard. This property is set to 12.'
readTrue
NumberOfFunctionKeys property is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 4 namespaces
▲ Password property
CIMTYPE'uint16'
Description'Indicates whether a hardware-level password is enabled at the keyboard, preventing local input. This property is set to 5 (Not Implemented).'
readTrue
Password property is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 20 namespaces
▲ UnicodeSupported property
CIMTYPE'boolean'
Description'Indicates if the keyboard supports unicode.'
readTrue
UnicodeSupported property is in 1 class (Msvm_Keyboard) of ROOT\virtualization\v2 and in 2 namespaces

Derived properties (39) of Msvm_Keyboard class

▲ AdditionalAvailability property
CIMTYPE'uint16'
AdditionalAvailability property is in 63 classes of ROOT\virtualization\v2 and in 8 namespaces
▲ Availability property
CIMTYPE'uint16'
Availability property is in 63 classes of ROOT\virtualization\v2 and in 12 namespaces
▲ AvailableRequestedStates property
CIMTYPE'uint16'
AvailableRequestedStates property is in 106 classes of ROOT\virtualization\v2 and in 7 namespaces
▲ Caption property
CIMTYPE'string'
Caption property is in 222 classes of ROOT\virtualization\v2 and in 37 namespaces
▲ CommunicationStatus property
CIMTYPE'uint16'
CommunicationStatus property is in 127 classes of ROOT\virtualization\v2 and in 9 namespaces
▲ CreationClassName property
CIMTYPE'string'
keyTrue
CreationClassName property is in 113 classes of ROOT\virtualization\v2 and in 20 namespaces
▲ Description property
CIMTYPE'string'
Description property is in 225 classes of ROOT\virtualization\v2 and in 142 namespaces
▲ DetailedStatus property
CIMTYPE'uint16'
DetailedStatus property is in 127 classes of ROOT\virtualization\v2 and in 9 namespaces
▲ DeviceID property
CIMTYPE'string'
keyTrue
DeviceID property is in 66 classes of ROOT\virtualization\v2 and in 21 namespaces
▲ ElementName property
CIMTYPE'string'
ElementName property is in 223 classes of ROOT\virtualization\v2 and in 21 namespaces
▲ EnabledDefault property
CIMTYPE'uint16'
EnabledDefault property is in 106 classes of ROOT\virtualization\v2 and in 10 namespaces
▲ EnabledState property
CIMTYPE'uint16'
EnabledState property is in 116 classes of ROOT\virtualization\v2 and in 13 namespaces
▲ ErrorCleared property
CIMTYPE'boolean'
ErrorCleared property is in 63 classes of ROOT\virtualization\v2 and in 12 namespaces
▲ ErrorDescription property
CIMTYPE'string'
ErrorDescription property is in 71 classes of ROOT\virtualization\v2 and in 142 namespaces
▲ HealthState property
CIMTYPE'uint16'
HealthState property is in 128 classes of ROOT\virtualization\v2 and in 15 namespaces
▲ IdentifyingDescriptions property
CIMTYPE'string'
IdentifyingDescriptions property is in 69 classes of ROOT\virtualization\v2 and in 15 namespaces
▲ InstallDate property
CIMTYPE'datetime'
InstallDate property is in 127 classes of ROOT\virtualization\v2 and in 23 namespaces
▲ InstanceID property
CIMTYPE'string'
InstanceID property is in 223 classes of ROOT\virtualization\v2 and in 21 namespaces
▲ IsLocked property
CIMTYPE'boolean'
IsLocked property is in 7 classes of ROOT\virtualization\v2 and in 5 namespaces
▲ LastErrorCode property
CIMTYPE'uint32'
LastErrorCode property is in 63 classes of ROOT\virtualization\v2 and in 16 namespaces
▲ MaxQuiesceTime property
CIMTYPE'uint64'
MaxQuiesceTime property is in 63 classes of ROOT\virtualization\v2 and in 8 namespaces
▲ Name property
CIMTYPE'string'
Name property is in 152 classes of ROOT\virtualization\v2 and in 142 namespaces
▲ OperatingStatus property
CIMTYPE'uint16'
OperatingStatus property is in 127 classes of ROOT\virtualization\v2 and in 9 namespaces
▲ OperationalStatus property
CIMTYPE'uint16'
OperationalStatus property is in 128 classes of ROOT\virtualization\v2 and in 18 namespaces
▲ OtherEnabledState property
CIMTYPE'string'
OtherEnabledState property is in 107 classes of ROOT\virtualization\v2 and in 11 namespaces
▲ OtherIdentifyingInfo property
CIMTYPE'string'
OtherIdentifyingInfo property is in 69 classes of ROOT\virtualization\v2 and in 20 namespaces
▲ PowerManagementCapabilities property
CIMTYPE'uint16'
PowerManagementCapabilities property is in 68 classes of ROOT\virtualization\v2 and in 14 namespaces
▲ PowerManagementSupported property
CIMTYPE'boolean'
PowerManagementSupported property is in 63 classes of ROOT\virtualization\v2 and in 14 namespaces
▲ PowerOnHours property
CIMTYPE'uint64'
PowerOnHours property is in 63 classes of ROOT\virtualization\v2 and in 13 namespaces
▲ PrimaryStatus property
CIMTYPE'uint16'
PrimaryStatus property is in 127 classes of ROOT\virtualization\v2 and in 9 namespaces
▲ RequestedState property
CIMTYPE'uint16'
RequestedState property is in 106 classes of ROOT\virtualization\v2 and in 12 namespaces
▲ Status property
CIMTYPE'string'
Status property is in 127 classes of ROOT\virtualization\v2 and in 42 namespaces
▲ StatusDescriptions property
CIMTYPE'string'
StatusDescriptions property is in 128 classes of ROOT\virtualization\v2 and in 18 namespaces
▲ StatusInfo property
CIMTYPE'uint16'
StatusInfo property is in 63 classes of ROOT\virtualization\v2 and in 12 namespaces
▲ SystemCreationClassName property
CIMTYPE'string'
keyTrue
SystemCreationClassName property is in 109 classes of ROOT\virtualization\v2 and in 20 namespaces
▲ SystemName property
CIMTYPE'string'
keyTrue
SystemName property is in 109 classes of ROOT\virtualization\v2 and in 22 namespaces
▲ TimeOfLastStateChange property
CIMTYPE'datetime'
TimeOfLastStateChange property is in 111 classes of ROOT\virtualization\v2 and in 17 namespaces
▲ TotalPowerOnHours property
CIMTYPE'uint64'
TotalPowerOnHours property is in 63 classes of ROOT\virtualization\v2 and in 10 namespaces
▲ TransitioningToState property
CIMTYPE'uint16'
TransitioningToState property is in 106 classes of ROOT\virtualization\v2 and in 7 namespaces

Msvm_Keyboard Qualifiers

NameValueToInstanceToSubclassOverridableAmendedLocal
Description'Represents a keyboard device.Keyboards are logical devices that are always present in a virtual system, and thus are not allocated through a resource pool. One instance is always present in a virtual computer system.'✗✗✓✓✓
dynamicTrue✓✗✓✗✓
Locale1033✗✗✓✓✓
provider'VmmsWmiInstanceAndMethodProvider'✗✗✓✗✓

Msvm_Keyboard System properties

NameValueOriginCIMTypeLocalArray
__PATH'\\.\ROOT\virtualization\v2:Msvm_Keyboard'___SYSTEM8✗✗
__NAMESPACE'ROOT\virtualization\v2'___SYSTEM8✗✗
__SERVER'.'___SYSTEM8✗✗
__DERIVATION['CIM_UserDevice', 'CIM_LogicalDevice', 'CIM_EnabledLogicalElement', 'CIM_LogicalElement', 'CIM_ManagedSystemElement', 'CIM_ManagedElement']___SYSTEM8✗✓
__PROPERTY_COUNT43___SYSTEM3✗✗
__RELPATH'Msvm_Keyboard'___SYSTEM8✗✗
__DYNASTY'CIM_ManagedElement'___SYSTEM8✗✗
__SUPERCLASS'CIM_UserDevice'___SYSTEM8✗✗
__CLASS'Msvm_Keyboard'___SYSTEM8✗✗
__GENUS1___SYSTEM3✗✗
comments powered by Disqus
WUtils.com