Code: Select all
debug func\GetIntegerProperty("NUMBER_OF_ENTRIES")
Code: Select all
debug func\GetIntegerProperty("NUMBER_OF_ENTRIES")
Possible to make it work with OutLook Express?Marco2007 wrote:A small example for those, who uses Outlook:
lgCode: Select all
IncludePath ".." XIncludeFile "COMate.pbi" Define.COMateObject OutlookObject, olMsg OutlookObject = COMate_CreateObject("Outlook.Application") If OutlookObject olMsg = OutlookObject\GetObjectProperty("CreateItem(0)") If olMsg olMsg\SetProperty("to='JR_Ewing@COMate.com'") olMsg\SetProperty("Subject='Marco'") olMsg\SetProperty("Body='Write whatever you want'") olMsg\Invoke("Display") ; olMsg\Invoke("send") ; if you wanna send ; olMsg\Invoke("Quit") ; if you wanna quit olMsg\Release() Else MessageRequester("Sorry", COMate_GetLastErrorDescription()) EndIf OutlookObject\Release() Else MessageRequester("Sorry - CreateObject", COMate_GetLastErrorDescription()) EndIf
Marco
Code: Select all
XIncludeFile "COMate.pbi"
XIncludeFile "VariantHelper_Include.pb"
Structure My_ADAPTER_INFO
Index.l
Device_Index.l
Adapter_GUID_Name.s
Description.s
MACAddress.s
IPAdress_ipv4.s
IPAdress_ipv6.s
Net_ConnectionID.s
LeaseObt.s
LeaseExp.s
DhcpServer.s
HaveWins.s
Wins_Pri_Server.s
Wins_Sec_Server.s
DNS_Server_1.s
DNS_Server_2.s
DNS_Server_3.s
DNS_Domain_Name.s
DNS_Host_Name.s
DNSDomainSuffix_1.s
DNSDomainSuffix_2.s
DNSDomainSuffix_3.s
Network_Status.s
FullDNS_Reg.s
GW_Server_1.s
GW_Server_2.s
GW_Server_3.s
DHCP_Static.s
Type.s
EndStructure
Global NewList My_Adapter_Info_List.My_ADAPTER_INFO()
Procedure.s Dt_Time(date_time.s)
Lease_yr$ = Left(date_time, 4)
Select Mid(date_time, 5, 2)
Case "01"
Lease_mo$ = "January"
Case "02"
Lease_mo$ = "February"
Case "03"
Lease_mo$ = "March"
Case "04"
Lease_mo$ = "April"
Case "05"
Lease_mo$ = "May"
Case "06"
Lease_mo$ = "June"
Case "07"
Lease_mo$ = "July"
Case "08"
Lease_mo$ = "August"
Case "09"
Lease_mo$ = "September"
Case "10"
Lease_mo$ = "October"
Case "11"
Lease_mo$ = "November"
Case "12"
Lease_mo$ = "December"
Default
EndSelect
Lease_dy$ = Mid(date_time, 7, 2)
Lease_hr$ = Mid(date_time, 9, 2)
Lease_mn$ = Mid(date_time, 11, 2)
Lease_sc$ = Mid(date_time, 13, 2)
UTC_Offsetx.l = Val(Mid(date_time, 23))
UTC_Offsety.l = UTC_Offsetx / 60
If Mid(date_time, 22,1) = "-"
UTC_Offset$ = "- " + Str(UTC_Offsety) + " Hrs"
EndIf
If Mid(date_time, 22,1) = "+"
UTC_Offset$ = "+ " + Str(UTC_Offsety) + " Hrs"
EndIf
colon$ = ":"
Lease$ = Lease_mo$ + " " + Lease_dy$ + " , " + Lease_yr$ + " " + Lease_hr$ + colon$ + Lease_mn$ + colon$ + Lease_sc$ + " Hrs" + " UTC Offset : " + UTC_Offset$
ProcedureReturn Lease$
EndProcedure
Procedure.l GetNetWorkStatus(Net_IP_X$) ; temp for testing only
For xk=1 To 4
x_unk_net$ = StringField(Net_IP_X$, xk, ".")
If xk = 1 And Len(x_unk_net$) > 0
ip_part_1$ = x_unk_net$
Else
If xk = 2 And Len(x_unk_net$) > 0
ip_part_2$ = x_unk_net$
Else
If xk = 3 And Len(x_unk_net$) > 0
ip_part_3$ = x_unk_net$
Else
If xk = 4 And Len(x_unk_net$) > 0
ip_part_4$ = x_unk_net$
EndIf
EndIf
EndIf
EndIf
Next xk
If ip_part_1$ = "10"
Net_x1.l = #True
Else
If ip_part_1$ = "169" And ip_part_2$ = "254"
Net_x1.l = #True
Else
If ip_part_1$ = "172" And Val(ip_part_2$) >= 16 And Val(ip_part_2$) <= 31
Net_x1.l = #True
Else
If ip_part_1$ = "192" And ip_part_2$ = "168"
Net_x1.l = #True
EndIf
EndIf
EndIf
EndIf
If Net_x1.l = #True
My_Adapter_Info_List()\Network_Status = "On network or behind router"
Else
My_Adapter_Info_List()\Network_Status = "Probably not on network or behind router"
EndIf
EndProcedure
Procedure.s Adapter_Type_Interface(Adapt_Index.l)
Define.COMateObject objWMIService, Adapter
colAdapters.COMateEnumObject
strComputer.s = "."
Net_I_Index$ = Str(Adapt_Index)
objWMIService = COMate_GetObject("winmgmts:\\" + strComputer + "\root\cimv2", "")
If objWMIService
;colAdapters = objWMIService\CreateEnumeration("ExecQuery('Select * from Win32_NetworkAdapter Where InterfaceIndex= $0027" + Net_I_Index$ +"$0027')") ; win Vista only
colAdapters = objWMIService\CreateEnumeration("ExecQuery('Select * from Win32_NetworkAdapter Where Index= $0027" + Net_I_Index$ +"$0027')") ; winXP and Win Vista
If colAdapters
Adapter= colAdapters\GetNextObject()
While Adapter
My_Adapter_Info_List()\Adapter_GUID_Name = Adapter\GetStringProperty("GUID")
My_Adapter_Info_List()\Net_ConnectionID = Adapter\GetStringProperty("NetConnectionID")
Select Adapter\GetIntegerProperty("AdapterTypeID")
Case 0
Adapter_Type$ = "Ethernet 802.3"
Case 1
Adapter_Type$ = "Token Ring 802.5"
Case 2
Adapter_Type$ = "FDDI"
Case 3
Adapter_Type$ = "WAN"
Case 4
Adapter_Type$ = "LocalTalk"
Case 5
Adapter_Type$ = "Ethernet DIX header format"
Case 6
Adapter_Type$ = "ARCNET"
Case 7
Adapter_Type$ = "ARCNET (878.2)"
Case 8
Adapter_Type$ = "ATM"
Case 9
Adapter_Type$ = "Wireless"
Case 10
Adapter_Type$ = "Infrared Wireless"
Case 11
Adapter_Type$ = "Bpc"
Case 12
Adapter_Type$ = "CoWan"
Case 13
Adapter_Type$ = "1394"
Default
Adapter_Type$ = "Unknown"
EndSelect
My_Adapter_Info_List()\Type = Adapter_Type$
Adapter\Release()
Adapter = colAdapters\GetNextObject()
Wend
colAdapters\Release()
EndIf
objWMIService\Release()
EndIf
EndProcedure
Procedure.s IP_DNS_GW_Addresses(Adapt_Index.l, get_what.s)
Define.COMateObject objWMIService, IPConfig
IPConfigSet.COMateEnumObject
Define *var.VARIANT, *varIP.VARIANT
*sa.SafeArray
strComputer.s = "."
Net_I_Index$ = Str(Adapt_Index)
objWMIService = COMate_GetObject("winmgmts:\\" + strComputer + "\root\cimv2", "")
If objWMIService
;IPConfigSet = objWMIService\CreateEnumeration("ExecQuery('Select * from Win32_NetworkAdapterConfiguration Where InterfaceIndex= $0027" + Net_I_Index$ +"$0027')") ; win Vista only
IPConfigSet = objWMIService\CreateEnumeration("ExecQuery('Select * from Win32_NetworkAdapterConfiguration Where Index= $0027" + Net_I_Index$ +"$0027')") ; winXP and win Vista
If IPConfigSet
IPConfig = IPConfigSet\GetNextObject()
While IPConfig
If IPConfig
If get_what = "IP"
*var = IPConfig\GetVariantProperty("IPAddress")
EndIf
If get_what = "DNS"
*var = IPConfig\GetVariantProperty("DNSServerSearchOrder")
EndIf
If get_what = "GW"
*var = IPConfig\GetVariantProperty("DefaultIPGateway")
EndIf
If get_what = "SUFFIX"
*var = IPConfig\GetVariantProperty("DNSDomainSuffixSearchOrder")
EndIf
If *var\vt <> #VT_NULL
*sa = *var\parray
For i = saLBound(*sa) To saUBound(*sa)
*varIP = SA_VARIANT(*sa, i)
If *varIP\vt <> #VT_BSTR
VariantChangeType_(*varIP, *varIP, 0, #VT_BSTR)
EndIf
x = x + 1
IP_Address_DNS_GW$ = PeekS(*varIP\bstrVal, -1, #PB_Unicode)
;//////////////adapter IP///////////////////////////////
If x = 1 And get_what = "IP" ; IP v 4
My_Adapter_Info_List()\IPAdress_ipv4 = IP_Address_DNS_GW$
EndIf
If x = 2 And get_what = "IP"; IP v 6
My_Adapter_Info_List()\IPAdress_ipv6 = IP_Address_DNS_GW$
EndIf
;////////////////////DNS server/////////////////////////
If x = 1 And get_what = "DNS"
My_Adapter_Info_List()\DNS_Server_1 = IP_Address_DNS_GW$
EndIf
If x = 2 And get_what = "DNS"
My_Adapter_Info_List()\DNS_Server_2 = IP_Address_DNS_GW$
EndIf
If x = 3 And get_what = "DNS"
My_Adapter_Info_List()\DNS_Server_3 = IP_Address_DNS_GW$
EndIf
;//////////////default GateWay server/////////////////
If x = 1 And get_what = "GW"
My_Adapter_Info_List()\GW_Server_1 = IP_Address_DNS_GW$
EndIf
If x = 2 And get_what = "GW"
My_Adapter_Info_List()\GW_Server_2 = IP_Address_DNS_GW$
EndIf
If x = 3 And get_what = "GW"
My_Adapter_Info_List()\GW_Server_3 = IP_Address_DNS_GW$
EndIf
;/////////////domain suffix search order if any////////
If x = 1 And get_what = "SUFFIX"
My_Adapter_Info_List()\DNSDomainSuffix_1 = IP_Address_DNS_GW$
EndIf
If x = 2 And get_what = "SUFFIX"
My_Adapter_Info_List()\DNSDomainSuffix_2 = IP_Address_DNS_GW$
EndIf
If x = 3 And get_what = "SUFFIX"
My_Adapter_Info_List()\DNSDomainSuffix_3 = IP_Address_DNS_GW$
EndIf
If My_Adapter_Info_List()\DNSDomainSuffix_1 = "" And My_Adapter_Info_List()\DNSDomainSuffix_2 = "" And My_Adapter_Info_List()\DNSDomainSuffix_3 = ""
My_Adapter_Info_List()\DNSDomainSuffix_1 = "None Detected"
My_Adapter_Info_List()\DNSDomainSuffix_2 = ""
My_Adapter_Info_List()\DNSDomainSuffix_3 = ""
EndIf
If My_Adapter_Info_List()\IPAdress_ipv4 = ""
My_Adapter_Info_List()\IPAdress_ipv4 = "No assigned IPv4 address"
EndIf
If My_Adapter_Info_List()\IPAdress_ipv6 = ""
My_Adapter_Info_List()\IPAdress_ipv6 = "No assigned IPv6 address"
EndIf
VariantClear_(*varIP)
Next
saFreeSafeArray(*sa)
EndIf
VariantClear_(*var) : FreeMemory(*var)
IPConfig\Release()
EndIf
IPConfig = IPConfigSet\GetNextObject()
Wend
EndIf
Else
MessageRequester("Error", "Couldn't create DNS_GW object!")
EndIf
EndProcedure
Procedure.s Adapter_Info()
Define.COMateObject objWMIService, Adapter
colAdapters.COMateEnumObject
strComputer.s = "."
objWMIService = COMate_GetObject("winmgmts:\\" + strComputer + "\root\cimv2", "")
If objWMIService
colAdapters = objWMIService\CreateEnumeration("ExecQuery('Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE')")
If colAdapters
Adapter= colAdapters\GetNextObject()
While Adapter
AddElement(My_Adapter_Info_List())
My_Adapter_Info_List()\Description = Adapter\GetStringProperty("Description")
My_Adapter_Info_List()\Index = Adapter\GetIntegerProperty("InterfaceIndex") ; this is not available on winXP, only on Vista
My_Adapter_Info_List()\Device_Index = Adapter\GetIntegerProperty("Index") ; this is supported on winXP and Win Vista - beware of multiple configurations
My_Adapter_Info_List()\MACAddress = Adapter\GetStringProperty("MACAddress")
My_Adapter_Info_List()\DhcpServer = Adapter\GetStringProperty("DHCPServer")
My_Adapter_Info_List()\DNS_Domain_Name = Adapter\GetStringProperty("DNSDomain")
My_Adapter_Info_List()\DNS_Host_Name = Adapter\GetStringProperty("DNSHostName")
My_Adapter_Info_List()\LeaseObt = Dt_Time(Adapter\GetStringProperty("DHCPLeaseObtained"))
My_Adapter_Info_List()\LeaseExp = Dt_Time(Adapter\GetStringProperty("DHCPLeaseExpires"))
If Adapter\GetIntegerProperty("DNSEnabledForWINSResolution") = -1
My_Adapter_Info_List()\HaveWins = "True"
My_Adapter_Info_List()\Wins_Pri_Server = Adapter\GetStringProperty("WINSPrimaryServer")
My_Adapter_Info_List()\Wins_Sec_Server = Adapter\GetStringProperty("WINSSecondaryServer")
Else
My_Adapter_Info_List()\HaveWins = "False"
My_Adapter_Info_List()\Wins_Pri_Server = "None"
My_Adapter_Info_List()\Wins_Sec_Server = "None"
EndIf
;IP_DNS_GW_Addresses(My_Adapter_Info_List()\Index, "IP") ; win Vista only
;IP_DNS_GW_Addresses(My_Adapter_Info_List()\Index, "GW") ; win Vista only
;IP_DNS_GW_Addresses(My_Adapter_Info_List()\Index, "DNS") ; win Vista only
;IP_DNS_GW_Addresses(My_Adapter_Info_List()\Index, "SUFFIX") ; win Vista only
IP_DNS_GW_Addresses(My_Adapter_Info_List()\Device_Index, "IP") ; win XP and Win Vista
IP_DNS_GW_Addresses(My_Adapter_Info_List()\Device_Index, "GW") ; win XP and Win Vista
IP_DNS_GW_Addresses(My_Adapter_Info_List()\Device_Index, "DNS") ; win XP and Win Vista
IP_DNS_GW_Addresses(My_Adapter_Info_List()\Device_Index, "SUFFIX") ; win XP and Win Vista
GetNetWorkStatus(My_Adapter_Info_List()\IPAdress_ipv4)
If Adapter\GetIntegerProperty("DHCPEnabled") = -1
My_Adapter_Info_List()\DHCP_Static = "IP is DHCP"
Else
My_Adapter_Info_List()\DHCP_Static = "IP is Static"
EndIf
If Adapter\GetIntegerProperty("FullDNSRegistrationEnabled") = -1
My_Adapter_Info_List()\FullDNS_Reg = "True"
Else
My_Adapter_Info_List()\FullDNS_Reg = "False"
EndIf
;Adapter_Type_Interface(My_Adapter_Info_List()\Index) ; win Vista only
Adapter_Type_Interface(My_Adapter_Info_List()\Device_Index) ; win XP and Win Vista
Adapter\Release()
Adapter = colAdapters\GetNextObject()
Wend
colAdapters\Release()
EndIf
objWMIService\Release()
EndIf
EndProcedure
Adapter_Info()
ForEach My_Adapter_Info_List()
Debug "Description : " + My_Adapter_Info_List()\Description
Debug "Type : " + My_Adapter_Info_List()\Type
Debug "GUID Name : " + My_Adapter_Info_List()\Adapter_GUID_Name
Debug "Adapter Route Table Index : " + Str(My_Adapter_Info_List()\Index)
Debug "Adapter System Index (LUID) : " + Str(My_Adapter_Info_List()\Device_Index)
Debug "MAC Address : " + My_Adapter_Info_List()\MACAddress
Debug "IPv4 Address : " + My_Adapter_Info_List()\IPAdress_ipv4
Debug "IPv6 Address : " + My_Adapter_Info_List()\IPAdress_ipv6
Debug "DHCP or Static : " + My_Adapter_Info_List()\DHCP_Static
Debug "DHCP Server : " + My_Adapter_Info_List()\DhcpServer
Debug "Network Status : " + My_Adapter_Info_List()\Network_Status
Debug "DNS Servers : " + My_Adapter_Info_List()\DNS_Server_1 + " " + My_Adapter_Info_List()\DNS_Server_2 + " " + My_Adapter_Info_List()\DNS_Server_3
Debug "Gateway Server : " + My_Adapter_Info_List()\GW_Server_1 + " " + My_Adapter_Info_List()\GW_Server_2 + " " + My_Adapter_Info_List()\GW_Server_3
Debug "DNS Domain Suffix Search Order : " + My_Adapter_Info_List()\DNSDomainSuffix_1 + " " + My_Adapter_Info_List()\DNSDomainSuffix_2 + " " + My_Adapter_Info_List()\DNSDomainSuffix_3
Debug "DNS Domain Name: " + My_Adapter_Info_List()\DNS_Domain_Name
Debug "DNS Host Name : " + My_Adapter_Info_List()\DNS_Host_Name
Debug "Full DNS Registration : " + My_Adapter_Info_List()\FullDNS_Reg
Debug "WINS Enabled : " + My_Adapter_Info_List()\HaveWins
Debug "WINS Primary Server : " + My_Adapter_Info_List()\Wins_Pri_Server
Debug "WINS Secondary Server : " + My_Adapter_Info_List()\Wins_Sec_Server
Debug "Connection ID : " + My_Adapter_Info_List()\Net_ConnectionID
Debug "Lease Obtained : " + My_Adapter_Info_List()\LeaseObt
Debug "Lease Expires : " + My_Adapter_Info_List()\LeaseExp
Next
I works here on PBV4.3 and Windows XP - maybe the timing have to be changed on your PC? Thats why it would be fine to be able to check if the status of the agent (something like "idle" or "busy")...srod wrote:anyone have any ideas why the Agent demo speech bubbles now remain empty on my system? The agent speaks okay, but the words simply do not appear in the bubble!!! The bubble remains empty! It used to work okay here on Vista!!!
Register a ActiveX requires Admin privilege!Little John wrote: With all three programs, I get the error message:Any ideas?Couldn't create the ActiveX control!