I would like to know if it is posible to determine if how word has been
started.

I have been tiraling running word across a network when it normally starts
it loads a global template which carries all the sub routines needed to do
various things built into forms that are produced.

However other programs also use word as as a front end for doucuments they
contain within them, but because when the load word it takes an long time
because it is loading all the routines etc from the globally loaded template.

So here is what I would like to do if posible.

if word is opened by one of these other programs other than by the icon word
doesnt load the template if however its not opened.

I have used the following to determine if open by the icon

Sub iconstart()
'
'checks to see how word has been launched
'
Dim strCommandLine As String
'get the commandline by calling the CmdLinetoString function, which
follows
strCommandLine = CmdLinetoString(GetCommandLine())

If Len(strCommandLine) <= Len(Chr(34) & Application.Path & _
"\" & "winword.exe" & Chr(34) & " ") Then
'Following only runs if Word was launched from its icon
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges 'closes
document without saving
End If
'End If
End Sub




Public Function CmdLinetoString(ByVal lngPtr As Long) As String
Dim strReturn As String
Dim StringLength As Long
'get the length of the string (not including the terminating null
character)
StringLength = lstrlen(lngPtr)
'initialize our string so it has enough characters including the null
character
strReturn = String$(StringLength + 1, 0)
'copy the string we have a pointer to into our new string
lstrcpy strReturn, lngPtr
'now strip off the null character at the end
strReturn = Left$(strReturn, StringLength)
'return the string
CmdLinetoString = strReturn
End Function


but is there a way of determining which program has opened word?????

I am using word 2003

Thanks in anticipation

Re: How word is started by Shauna

Shauna
Wed Jan 09 02:58:13 PST 2008

Hi Fred

As I understand it, you want a way to let other applications start Word
without loading your code, and you want users to start Word so that it
does load your code.

One way to do this might be as follows:

1. Create a .dot file that contains the code you want to load. Let's say
this is called "AllMyCode.dot". Store this in a known location, but not
in the Word Startup folder.

2. Create a second .dot file and put it in the Word startup folder. This
.dot file is called, say, "MyStartupFile.dot". It contains one macro
called, say "LoadMyStuff". This macro loads "AllMyCode.dot".

3. Change the shortcuts that users click to start Word by adding the
/mmacroname switch, eg winword.exe /mLoadMyStuff.

In all cases, MyStartupFile.dot will load, but it is tiny and will not
slow down the other apps that use Word. But when the user clicks the
shortcut, it will invoke the one macro in MyStartupFile.dot and it can
load your addin.

Hope this helps.

Shauna Kelly. Microsoft MVP.
http://www.shaunakelly.com/word




"Fred Kruger" <FredKruger@discussions.microsoft.com> wrote in message
news:611120BB-60D9-4A8E-B4AA-314803EDD7EA@microsoft.com...
>I would like to know if it is posible to determine if how word has been
> started.
>
> I have been tiraling running word across a network when it normally
> starts
> it loads a global template which carries all the sub routines needed
> to do
> various things built into forms that are produced.
>
> However other programs also use word as as a front end for doucuments
> they
> contain within them, but because when the load word it takes an long
> time
> because it is loading all the routines etc from the globally loaded
> template.
>
> So here is what I would like to do if posible.
>
> if word is opened by one of these other programs other than by the
> icon word
> doesnt load the template if however its not opened.
>
> I have used the following to determine if open by the icon
>
> Sub iconstart()
> '
> 'checks to see how word has been launched
> '
> Dim strCommandLine As String
> 'get the commandline by calling the CmdLinetoString function,
> which
> follows
> strCommandLine = CmdLinetoString(GetCommandLine())
>
> If Len(strCommandLine) <= Len(Chr(34) & Application.Path & _
> "\" & "winword.exe" & Chr(34) & " ") Then
> 'Following only runs if Word was launched from its icon
> ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
> 'closes
> document without saving
> End If
> 'End If
> End Sub
>
>
>
>
> Public Function CmdLinetoString(ByVal lngPtr As Long) As String
> Dim strReturn As String
> Dim StringLength As Long
> 'get the length of the string (not including the terminating null
> character)
> StringLength = lstrlen(lngPtr)
> 'initialize our string so it has enough characters including the
> null
> character
> strReturn = String$(StringLength + 1, 0)
> 'copy the string we have a pointer to into our new string
> lstrcpy strReturn, lngPtr
> 'now strip off the null character at the end
> strReturn = Left$(strReturn, StringLength)
> 'return the string
> CmdLinetoString = strReturn
> End Function
>
>
> but is there a way of determining which program has opened word?????
>
> I am using word 2003
>
> Thanks in anticipation



Re: How word is started by FredKruger

FredKruger
Wed Jan 09 13:06:06 PST 2008

Shauna

Thanks for this this was what I was looking for but dont undertand where in
the icon to put the switch as if I put it after the winword.exe in the icon
properties target i.e "C:\Program Files\Microsoft Office\Office\WINWORD.EXE"
(office97) it throws an error message up.

I cannot find where to put it in the office 11 icon.

Can you give me an idiots guide my startup.dot is called nichestart.dot
which has a sub routine called menuload in a module named general. I am
loading my menu from menuload as an add in template is this the best way?

Thanks for anticipation.

Fred

"Shauna Kelly" wrote:

> Hi Fred
>
> As I understand it, you want a way to let other applications start Word
> without loading your code, and you want users to start Word so that it
> does load your code.
>
> One way to do this might be as follows:
>
> 1. Create a .dot file that contains the code you want to load. Let's say
> this is called "AllMyCode.dot". Store this in a known location, but not
> in the Word Startup folder.
>
> 2. Create a second .dot file and put it in the Word startup folder. This
> ..dot file is called, say, "MyStartupFile.dot". It contains one macro
> called, say "LoadMyStuff". This macro loads "AllMyCode.dot".
>
> 3. Change the shortcuts that users click to start Word by adding the
> /mmacroname switch, eg winword.exe /mLoadMyStuff.
>
> In all cases, MyStartupFile.dot will load, but it is tiny and will not
> slow down the other apps that use Word. But when the user clicks the
> shortcut, it will invoke the one macro in MyStartupFile.dot and it can
> load your addin.
>
> Hope this helps.
>
> Shauna Kelly. Microsoft MVP.
> http://www.shaunakelly.com/word
>
>
>
>
> "Fred Kruger" <FredKruger@discussions.microsoft.com> wrote in message
> news:611120BB-60D9-4A8E-B4AA-314803EDD7EA@microsoft.com...
> >I would like to know if it is posible to determine if how word has been
> > started.
> >
> > I have been tiraling running word across a network when it normally
> > starts
> > it loads a global template which carries all the sub routines needed
> > to do
> > various things built into forms that are produced.
> >
> > However other programs also use word as as a front end for doucuments
> > they
> > contain within them, but because when the load word it takes an long
> > time
> > because it is loading all the routines etc from the globally loaded
> > template.
> >
> > So here is what I would like to do if posible.
> >
> > if word is opened by one of these other programs other than by the
> > icon word
> > doesnt load the template if however its not opened.
> >
> > I have used the following to determine if open by the icon
> >
> > Sub iconstart()
> > '
> > 'checks to see how word has been launched
> > '
> > Dim strCommandLine As String
> > 'get the commandline by calling the CmdLinetoString function,
> > which
> > follows
> > strCommandLine = CmdLinetoString(GetCommandLine())
> >
> > If Len(strCommandLine) <= Len(Chr(34) & Application.Path & _
> > "\" & "winword.exe" & Chr(34) & " ") Then
> > 'Following only runs if Word was launched from its icon
> > ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
> > 'closes
> > document without saving
> > End If
> > 'End If
> > End Sub
> >
> >
> >
> >
> > Public Function CmdLinetoString(ByVal lngPtr As Long) As String
> > Dim strReturn As String
> > Dim StringLength As Long
> > 'get the length of the string (not including the terminating null
> > character)
> > StringLength = lstrlen(lngPtr)
> > 'initialize our string so it has enough characters including the
> > null
> > character
> > strReturn = String$(StringLength + 1, 0)
> > 'copy the string we have a pointer to into our new string
> > lstrcpy strReturn, lngPtr
> > 'now strip off the null character at the end
> > strReturn = Left$(strReturn, StringLength)
> > 'return the string
> > CmdLinetoString = strReturn
> > End Function
> >
> >
> > but is there a way of determining which program has opened word?????
> >
> > I am using word 2003
> >
> > Thanks in anticipation
>
>
>

Re: How word is started by Shauna

Shauna
Fri Jan 11 16:40:35 PST 2008

Hi Fred

You might need to create a shortcut explicitly and use that. One way to
do that is to right-click the desktop and choose New > Shortcut. Browse
to your winword.exe file. After you create the shortcut, right-click it
and choose its Properties, then change the target to something like"

"C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"
/mNameOfMacroToRun

Note the position of quote marks and spaces carefully.

Hope this helps.

Shauna Kelly. Microsoft MVP.
http://www.shaunakelly.com/word




"Fred Kruger" <FredKruger@discussions.microsoft.com> wrote in message
news:E4EFA71E-BC1E-4FAA-8DF4-078E3DDAAD4A@microsoft.com...
> Shauna
>
> Thanks for this this was what I was looking for but dont undertand
> where in
> the icon to put the switch as if I put it after the winword.exe in the
> icon
> properties target i.e "C:\Program Files\Microsoft
> Office\Office\WINWORD.EXE"
> (office97) it throws an error message up.
>
> I cannot find where to put it in the office 11 icon.
>
> Can you give me an idiots guide my startup.dot is called
> nichestart.dot
> which has a sub routine called menuload in a module named general. I
> am
> loading my menu from menuload as an add in template is this the best
> way?
>
> Thanks for anticipation.
>
> Fred
>
> "Shauna Kelly" wrote:
>
>> Hi Fred
>>
>> As I understand it, you want a way to let other applications start
>> Word
>> without loading your code, and you want users to start Word so that
>> it
>> does load your code.
>>
>> One way to do this might be as follows:
>>
>> 1. Create a .dot file that contains the code you want to load. Let's
>> say
>> this is called "AllMyCode.dot". Store this in a known location, but
>> not
>> in the Word Startup folder.
>>
>> 2. Create a second .dot file and put it in the Word startup folder.
>> This
>> ..dot file is called, say, "MyStartupFile.dot". It contains one macro
>> called, say "LoadMyStuff". This macro loads "AllMyCode.dot".
>>
>> 3. Change the shortcuts that users click to start Word by adding the
>> /mmacroname switch, eg winword.exe /mLoadMyStuff.
>>
>> In all cases, MyStartupFile.dot will load, but it is tiny and will
>> not
>> slow down the other apps that use Word. But when the user clicks the
>> shortcut, it will invoke the one macro in MyStartupFile.dot and it
>> can
>> load your addin.
>>
>> Hope this helps.
>>
>> Shauna Kelly. Microsoft MVP.
>> http://www.shaunakelly.com/word
>>
>>
>>
>>
>> "Fred Kruger" <FredKruger@discussions.microsoft.com> wrote in message
>> news:611120BB-60D9-4A8E-B4AA-314803EDD7EA@microsoft.com...
>> >I would like to know if it is posible to determine if how word has
>> >been
>> > started.
>> >
>> > I have been tiraling running word across a network when it normally
>> > starts
>> > it loads a global template which carries all the sub routines
>> > needed
>> > to do
>> > various things built into forms that are produced.
>> >
>> > However other programs also use word as as a front end for
>> > doucuments
>> > they
>> > contain within them, but because when the load word it takes an
>> > long
>> > time
>> > because it is loading all the routines etc from the globally loaded
>> > template.
>> >
>> > So here is what I would like to do if posible.
>> >
>> > if word is opened by one of these other programs other than by the
>> > icon word
>> > doesnt load the template if however its not opened.
>> >
>> > I have used the following to determine if open by the icon
>> >
>> > Sub iconstart()
>> > '
>> > 'checks to see how word has been launched
>> > '
>> > Dim strCommandLine As String
>> > 'get the commandline by calling the CmdLinetoString function,
>> > which
>> > follows
>> > strCommandLine = CmdLinetoString(GetCommandLine())
>> >
>> > If Len(strCommandLine) <= Len(Chr(34) & Application.Path & _
>> > "\" & "winword.exe" & Chr(34) & " ") Then
>> > 'Following only runs if Word was launched from its icon
>> > ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
>> > 'closes
>> > document without saving
>> > End If
>> > 'End If
>> > End Sub
>> >
>> >
>> >
>> >
>> > Public Function CmdLinetoString(ByVal lngPtr As Long) As String
>> > Dim strReturn As String
>> > Dim StringLength As Long
>> > 'get the length of the string (not including the terminating
>> > null
>> > character)
>> > StringLength = lstrlen(lngPtr)
>> > 'initialize our string so it has enough characters including the
>> > null
>> > character
>> > strReturn = String$(StringLength + 1, 0)
>> > 'copy the string we have a pointer to into our new string
>> > lstrcpy strReturn, lngPtr
>> > 'now strip off the null character at the end
>> > strReturn = Left$(strReturn, StringLength)
>> > 'return the string
>> > CmdLinetoString = strReturn
>> > End Function
>> >
>> >
>> > but is there a way of determining which program has opened
>> > word?????
>> >
>> > I am using word 2003
>> >
>> > Thanks in anticipation
>>
>>
>>