AUTOLAUNCH_NOTES=nlnotes

When you run autorun.exe to launch the Lotus NotesĀ® client installed on a USB drive, the Notes client installed on the operating system (OS) comes to focus instead. This behavior occurs only if the local version of Notes is already running on the OS. If the local version of Notes is not running, the Notes client from the USB will launch.

To run Notes from the USB drive even if a local version of Notes is running, do the following:

1. Open the autorun.ini file on the USB drive in edit mode.
2. Change the following line:

AUTOLAUNCH_NOTES=yes

to

AUTOLAUNCH_NOTES=nlnotes.exe

3. Save the file, and then run autorun.exe again.

[Lotus Notes KnowledgeBase]


Notes 7.0.2 – NOMAD

Installed Lotus Notes on my 1GB Cruzer SanDisk USB Drive today. As you can see, the estimated time for installation was 32 minutes; At least it took 45 minutes to install the client. This is far to long. Copying 300MB of data from my local drive C: to the usb device is normally done within 2 Minutes or so.

Lotus Notes 7.0.2 - NOMAD Installation

UPDATE:

I found this hint on LDD regarding a TEMP_DIR issue:

“Currently the TEMP_DIR variable in your AUTORUN.INI file for IBM Lotus Notes client on a USB drive installation only works when your client is automatically launched. When launching the client from the “Lotus Notes on USB” desktop icon, the temporary files will be stored in the local system’s temporary directory,

When adding the TEMP_DIR variable to your AUTORUN.INI, also set AUTOLAUNCH_NOTES=Yes (default). After inserting the USB drive into your computer, if your Notes client is either (1) automatically launched, or (2) you run the command AUTORUN.EXE from the root of the USB drive which launches the client, then the temporary file will be stored in the path for the temporary directory you specified.”


Project Wanda = Lotus Notes Nomad

I received an email from Julian Robichaux and Bruce Elgort this afternoon:

Not sure what/who the information source was, but the quote below came from the TLCC Newsletter that was in my e-mail inbox this morning:

7. Notes 7.0.2 will have a “memory stick” option

Version 7.0.2 of Notes (due out in September) will have an option to allow installation of the Notes client on a memory stick. This will allow you to carry around the Notes client and your databases with you and simply plug the stick into any computer and have your Notes client up and running. The Notes client software is all installed on the memory stick so no software is required on the computer’s hard drive. At the moment, support is only planned for the Notes client, not the Designer or Administrator clients. This new feature is called Lotus Notes Nomad.


Notes on a USB Key – Chapter 2

wendyI changed the code for my project “Wendy” once again. In the former version of nstart.exe, the file had to be copied to the Notes executable directory.

This is no longer necessary now; you can copy nstart.exe to i.e the “root” directory of your USB key, regardless of where your Notes Client is installed. nstart.exe locates the notes.ini and notes.exe, makes the necessary changes and starts the client.

This is NOT project “WANDA”, IBM announced at Lotusphere2006. It is my solution on how to put a Notes client “installation” on a USB key. But I’m eager to see what IBM’s solution will look like.

Does anyone have some information about project “WANDA” ?

/////////////////////////////////////////////////////////////////////////////
//  nstart.cpp
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "nstart.h"
#include "SADirRead.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
#define NOTES_INI "notes.ini"
#define NOTES_PRG "notes.exe"
#define BACKSLASH ":\\"

CString Drives ="CDEFGHIJKLMNOPQRSTUVWXYZcdefghijklmnopqrstuvwxyz";
CFile* fin =	NULL;
CFile* fout =	NULL;
CWinApp			theApp;
CSADirRead		FSearch;
CFileException	ex;
CString			THE_NOTES_INI;
CString			THE_NOTES_EXE;
char			AppPath[MAX_PATH];
char			pbuf[99999];
int				i, j, m, n;
using namespace std;

/////////////////////////////////////////////////////////////////////////////
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;

	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
	{
		cerr < < _T("Fatal Error: MFC initialization failed") << endl;
		nRetCode = 1;
	}

	else

	try
	{
		GetModuleFileName(AfxGetApp()->m_hInstance,AppPath,MAX_PATH);

		CString BS(_T(BACKSLASH));
		CString strPath(AppPath);
		CString ThisDrive (strPath.Left(1) + BS);

		FSearch.ClearDirs();
		FSearch.GetDirs(ThisDrive, true);
		FSearch.ClearFiles();
		FSearch.GetFiles(NOTES_INI);

		CSADirRead::SAFileVector &IniFile = FSearch.Files();

		for (CSADirRead::SAFileVector::const_iterator m = IniFile.begin();
			m!=IniFile.end(); m++) {

			THE_NOTES_INI = ("%s\n", (*m).m_sName);
		}

		fin =	new CFile( THE_NOTES_INI,
				CFile::modeRead | CFile::shareDenyNone);

		// read NOTES.INI
		ULONGLONG dwLength = fin->GetLength();
		ULONGLONG nBytesRead = fin->Read( pbuf,dwLength );
		fin->Close();

		CString buffer(pbuf);

		// replace drive letters with current drive
		for	(i=0; i < Drives.GetLength() ; i++ ) {

			CString DriveLetter (_T(Drives.GetAt(i) + BS));
		    j = buffer.Replace(_T(DriveLetter), _T(ThisDrive));
		}

		// write notes.ini
		fout =	new CFile( THE_NOTES_INI ,
				CFile::modeWrite | CFile::shareDenyWrite);

		fout->Write(_T(buffer),dwLength);
		fout->Flush();
		fout->Close();

		// search Notes executable
		FSearch.ClearDirs();
		FSearch.GetDirs(ThisDrive, true);
		FSearch.ClearFiles();
		FSearch.GetFiles(NOTES_PRG);

		CSADirRead::SAFileVector &ExeFile = FSearch.Files();

		for (CSADirRead::SAFileVector::const_iterator n = ExeFile.begin();
			n!=ExeFile.end(); n++) {

			THE_NOTES_EXE = ("%s\n", (*n).m_sName);
		}

		// start the client
		ShellExecute(0, "open", THE_NOTES_EXE, 0, 0, 1);
	}

	catch (CFileException* pEx)
	{
		// if an error occurs, just make a message box
		pEx->ReportError();
		pEx->Delete();
		nRetCode = 1;
	}
	catch (...)
	{
		nRetCode = 1;
	}

	return nRetCode;
}