Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 360
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 360
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default 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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 360
Default 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
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
account # entry needs to return the account description placerpone Excel Worksheet Functions 1 November 9th 09 03:02 AM
Configured cell that looks like a combo box. chzabel Excel Worksheet Functions 3 August 25th 06 06:35 PM
How do move folders from web based email account to outlook? Tracy Excel Discussion (Misc queries) 1 November 18th 05 08:33 PM
Detect Outlook Pete[_4_] Excel Programming 4 June 10th 05 10:59 AM
Detect Outlook is running Pete[_4_] Excel Programming 2 May 13th 05 05:30 PM


All times are GMT +1. The time now is 01:53 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"