Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Detect whether there is an account configured in Outlook
What is the test to see whether this line will open Outlook 2007 or
the Outlook 2007 Startup Wizard? CreateObject("Outlook.Application") Registry key 'HKEY_CURRENT_USER\Software\Microsoft\Windows NT \CurrentVersion\Windows\Messaging Subsystem\Profiles' has entries, but the current user does not have an account configured in Outlook. One thing that may help is that prior to this line, network connectivity is confirmed - can I "ping" Exchange or something like that? Thanks! Cliff Edwards |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Detect whether there is an account configured in Outlook
I did a google search for the following a got lots of results verify if email account exists at server One result you should read is this one 'How to check if an email address exists without sending an email? - Stack Overflow' (http://tinyurl.com/ycwdhlz) It seems not many servers suppor tthis feature but I'm not an expert. If yo find a tool or command that will work then I can help convert the code to VBA. One method is to end an email and then check your inbox to see if you get a reject message. See this webpage for a good explanation 'verify if a given email address is exist in .NET Framework' (http://tinyurl.com/yb8r4bk) -- joel ------------------------------------------------------------------------ joel's Profile: 229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=163853 Microsoft Office Help |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Detect whether there is an account configured in Outlook
I want to test whether an account is configured for the current user
before instantiating Outlook to prevent the Startup Wizard from opening. Is this possible, and how can I do it? |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Detect whether there is an account configured in Outlook
I provided the API function to read the registry. I cannot use your registry entry because it doesn't exist. I provided all the API function but you reall only need the RegOpenKeyEx function. Option Explicit Public Const REG_SZ As Long = 1 Public Const REG_DWORD As Long = 4 Public Const HKEY_CLASSES_ROOT = &H80000000 Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_LOCAL_MACHINE = &H80000002 Public Const HKEY_USERS = &H80000003 Public Const ERROR_NONE = 0 Public Const ERROR_BADDB = 1 Public Const ERROR_BADKEY = 2 Public Const ERROR_CANTOPEN = 3 Public Const ERROR_CANTREAD = 4 Public Const ERROR_CANTWRITE = 5 Public Const ERROR_OUTOFMEMORY = 6 Public Const ERROR_ARENA_TRASHED = 7 Public Const ERROR_ACCESS_DENIED = 8 Public Const ERROR_INVALID_PARAMETERS = 87 Public Const ERROR_NO_MORE_ITEMS = 259 Public Const KEY_QUERY_VALUE = &H1 Public Const KEY_SET_VALUE = &H2 Public Const KEY_ALL_ACCESS = &H3F Public Const REG_OPTION_NON_VOLATILE = 0 Declare Function RegCloseKey Lib "advapi32.dll" _ (ByVal hKey As Long) As Long Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias _ "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _ ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions _ As Long, ByVal samDesired As Long, ByVal lpSecurityAttributes _ As Long, phkResult As Long, lpdwDisposition As Long) As Long Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias _ "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, _ ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As _ Long) As Long Declare Function RegQueryValueExString Lib "advapi32.dll" Alias _ "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As _ String, ByVal lpReserved As Long, lpType As Long, ByVal lpData _ As String, lpcbData As Long) As Long Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias _ "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As _ String, ByVal lpReserved As Long, lpType As Long, lpData As _ Long, lpcbData As Long) As Long Declare Function RegQueryValueExNULL Lib "advapi32.dll" Alias _ "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As _ String, ByVal lpReserved As Long, lpType As Long, ByVal lpData _ As Long, lpcbData As Long) As Long Declare Function RegSetValueExString Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _ ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As _ String, ByVal cbData As Long) As Long Declare Function RegSetValueExLong Lib "advapi32.dll" Alias _ "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _ ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, _ ByVal cbData As Long) As Long Function QueryValueEx(ByVal lhKey As Long, ByVal szValueName As _ String, vValue As Variant) As Long Dim cch As Long Dim lrc As Long Dim lType As Long Dim lValue As Long Dim sValue As String On Error GoTo QueryValueExError ' Determine the size and type of data to be read lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch) If lrc < ERROR_NONE Then Error 5 Select Case lType ' For strings Case REG_SZ: sValue = String(cch, 0) lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, _ sValue, cch) If lrc = ERROR_NONE Then vValue = Left$(sValue, cch - 1) Else vValue = Empty End If ' For DWORDS Case REG_DWORD: lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, _ lValue, cch) If lrc = ERROR_NONE Then vValue = lValue Case Else 'all other data types not supported lrc = -1 End Select QueryValueExExit: QueryValueEx = lrc Exit Function QueryValueExError: Resume QueryValueExExit End Function Private Sub QueryValue(sKeyName As String, sValueName As String) Dim lRetVal As Long 'result of the API functions Dim hKey As Long 'handle of opened key Dim vValue As Variant 'setting of queried value lRetVal = RegOpenKeyEx(HKEY_CURRENT_USER, sKeyName, 0, _ KEY_QUERY_VALUE, hKey) lRetVal = QueryValueEx(hKey, sValueName, vValue) MsgBox vValue RegCloseKey (hKey) End Sub Sub CheckEmail() Const Emailreg = "HKEY_CURRENT_USER\Software\Microsoft\" & _ "Windows NT\CurrentVersion\Windows\Messaging Subsystem\Profiles" Call QueryValue(Emailreg, "StringValue") End Sub -- joel ------------------------------------------------------------------------ joel's Profile: 229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=163853 Microsoft Office Help |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Detect whether there is an account configured in Outlook
You might try seeing what shell is associated with the "mailto"
protocol. Look in the default value of the key: HKCR\mailto\shell\open\command and see if the string "Outlook" is present. This isn't an iron clad way of doing it, but it might be "good enough" for your purposes. Cordially, Chip Pearson Microsoft MVP 1998 - 2010 Pearson Software Consulting, LLC www.cpearson.com [email on web site] On Fri, 18 Dec 2009 14:46:53 -0800 (PST), ward376 wrote: What is the test to see whether this line will open Outlook 2007 or the Outlook 2007 Startup Wizard? CreateObject("Outlook.Application") Registry key 'HKEY_CURRENT_USER\Software\Microsoft\Windows NT \CurrentVersion\Windows\Messaging Subsystem\Profiles' has entries, but the current user does not have an account configured in Outlook. One thing that may help is that prior to this line, network connectivity is confirmed - can I "ping" Exchange or something like that? Thanks! Cliff Edwards |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Detect whether there is an account configured in Outlook
Chip, if you don't have an iron-clad way, I know I can stop looking.
Thanks! Cliff Edwards |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
account # entry needs to return the account description | Excel Worksheet Functions | |||
Configured cell that looks like a combo box. | Excel Worksheet Functions | |||
How do move folders from web based email account to outlook? | Excel Discussion (Misc queries) | |||
Detect Outlook | Excel Programming | |||
Detect Outlook is running | Excel Programming |