Abstract:
In a method and apparatus for use on the world wide web, a programmed digital computer detects one or more web browser programs and, responsive to the user, selectively modifies the default home page of the detected web browser program or programs. The user may indicate whether, and in which web browsers, the default home page setting is to be altered. In one embodiment, a floppy disk contains a program which scans the memory of the user&#39;s computer to detect one or more web browsers and automatically change the default home page web site setting in one or more of the detected web browsers. In a second embodiment, a program is downloaded over the internet which scans the memory of the user&#39;s computer to detect one or more web browsers and automatically change the default home page web site setting in one or more of the detected web browsers.

Description:
This application claims benefit of provisional application 60/018,352 filed May 13, 1996. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to devices useful with Internet browser devices. 
     BACKGROUND OF THE INVENTION 
     The Internet is a world wide communication network, enabling computer users to connect to other computer users. Users on local area computer networks are also interconnected via the Internet to send and receive information to other users on other local area computer networks. The world wide web is the multi-media portion of the Internet which provides full color graphics and sound. 
     Using the Internet and accessing the world wide web, has been made easier by the proliferation of web browser programs. A web browser is a software utility device which provides the user with a simple graphical user interface to navigate the Internet. With a web browser, the user can navigate through the Internet by selecting options from icons and menus with a point and click mouse. Typically, a web browser, upon initially connecting to the Internet, begins at a selected initial web site (home page). 
     The typical web browser further includes a default setting by which the initial home page is selected. That is, the user selects any desired web site as a desired initial default home page. When the web browser connects to the Internet, the first internet connection is to the selected web site. However, most users do not change the initial home page default function. Publishers of web browsers typically either set the initial home page to their own web site, or provide a function by which the user may select the publisher&#39;s web site as the initial web site. 
     SUMMARY OF THE INVENTION 
     It is desirable to many internet participants having a site on the world wide web to have users to connect to their web site as the initial default home page, in order to increase traffic to their web site. Yet, many users leave the default home page web site on their web browser programs set to the web site of the web browser publisher. 
     The present invention is embodied in a method and apparatus to detect one or more web browser programs on a programmed digital computer and selectively modify the default home page of the detected web browser program or programs. The user may indicate whether, and in which web browsers, the default home page setting is to be altered. 
     In one embodiment, a floppy disk contains a program which scans the memory of the user&#39;s computer to detect one or more web browsers and automatically change the default home page web site setting in one or more of the detected web browsers. 
     In another embodiment, a program is downloaded over the internet which scans the memory of the user&#39;s computer to detect one or more web browsers and automatically change the default home page web site setting in one or more of the detected web browsers. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a flowchart diagram illustrating the general operation of the present invention. 
     FIG. 2 is a flowchart diagram illustrating a specific embodiment of operation of the present invention. 
    
    
     DETAILED DESCRIPTION 
     Software that is used to navigate the World Wide Web on the Internet is popularly known as a Web Browser. All Web Browsers have a designated Home Page which defines the initial Web Site connected to the Web Browser upon start up. All Web Browsers also possess the capability for the Home Page to be altered, which is the principle underlying the operation of the present invention. A device in accordance with the present invention detects a wide array of Web Browsers and change any or all of their Home Pages in response to user-specified instructions. 
     A program or device in accordance with the present invention has been termed a HOMER program or device, which is suggestive of its function to automatically change the home page of a Web Browser. 
     The HOMER device detects the residence, on a computing communications device that is equipped to exchange information using the electronic communications network known as the World Wide Web. The program indicates to the individual enabling the HOMER device that one or more Web Browsers have been detected, and further indicates precisely which Web Browsers have been detected, by indicating the common name of each Web Browser as it is used in commerce. 
     The individual enabling the HOMER device is given the YES/NO option of changing the Default Home Page of each Web Browser that is detected, where the default Home Page means the Site on World Wide Web to which each Web Browser automatically goes first, whenever the Web Browser is enabled, and the YES/NO option of changing the Default Home Page means that if the individual enabling the HOMER device indicates YES, then the Web Browser Default Home Page will be changed from its current value to a New Value. Further, if the individual enabling the HOMER device indicates NO, then the Web Browser Default Home Page will NOT be changed from its current value. Selecting the New Value of the Default Home Page means a value (that is, a Web Site) supplied by the HOMER device. 
     In addition to providing the YES/NO option to the individual enabling the HOMER device, the HOMER device will actually change each detected web browser&#39;s Default Home Page to the New Value, when the individual enabling the HOMER device responds YES. 
     A flow chart of a general and a specific HOMER program is shown in FIGS. 1 and 2 respectively. In FIG. 1, after the program starts, an opening screen display 10 gives the user a choice. In FIG. 2, the specific choice is an opening screen display 210 which says &#34;I&#39;m about to change your default Home Page to &lt;&lt;Company&gt;&gt;, where &lt;&lt;company&gt;&gt; is the web site to which the user is connected. If the user answers NO, the HOMER program is done, and exits at step 28. 
     If the user answers YES, a display search screen 14 in FIG. 1 is shown. In FIG. 2, the specific display search screen 214 says, &#34;Searching for Web Browsers&#34;. The search for a Web Browser continues at step 16 until one is found at step 18. The Default Home Page is then changed at step 22 and a found screen is displayed at step 24. In FIG. 2, a specific found screen display is &#34;I found &lt;&lt;web browser&gt;&gt;, where &lt;&lt;web browser&gt;&gt; is the name of the specific web browser found. If no further web browsers are found at step 18, the HOMER program tests whether it is done at step 20, and if not, the HOMER program then searches for another Web Browser at step 18. 
     If the HOMER program is done at step 20, a finished screen is displayed at step 26. In FIG. 2, the specific finished screen is &#34;I am done. You may now start your web browser to go to &lt;&lt;company&gt;&gt;&#34;. Thereafter, the HOMER program is done and exits at step 28. 
     There are least two configurations for the HOMER device. In the first configuration, HOMER will actually change the Default Home Page of ALL detected Web Browsers. In the second configuration, HOMER will change the Default Home Page of detected Web Browsers on a Browser-by-Browser basis. That is, the individual enabling the HOMER device will, using the second configuration, have the option of maintaining the current Default Home Page for one or more of the detected Browsers, while changing the Default Home Page for one or more of the detected Browsers. In such event, step 22 will be conditioned on a user input before changing the default home page on a Browser-by-Browser basis. 
     The HOMER device can be delivered to a host computer communications device in at least two (2) ways: 
     1. Via floppy disk or CD-ROM. The device can be copied to floppy disk or CD-ROM and introduced into any computer/communications environment possessing the capability to read such input media. This includes all Intel-compatible CPU&#39;s (formerly IBM-compatible), running Microsoft DOS, Microsoft Windows, and Microsoft Windows 95 executables. It also includes all Apple Computer Macintosh machines. 
     2. Via the World Wide Web. The HOMER device can reside on the server used by a particular Web Site. A Button can be placed anywhere on the Web Site (probably in a prominent position on the Home Page). This Button will be labeled &#34;If You Would Like to Make &lt;WEBSITE&gt; Your Default Home Page, Click Here&#34; (or some similar language). Using a mouse input device to click on this button will cause the HOMER device to be downloaded from the Web Site server to the individual user&#39;s computer. How HOMER is activated once downloaded depends on the Web Browser that is used to perform the download function. Some Web Browsers are built to automatically open and execute any downloaded files. Other Web Browsers may be customized by their users to automatically open and execute any downloaded files. 
      If an individual user&#39;s Web Browser is configured to automatically open-and-run, then HOMER will download and immediately function as described in the first section of this document. 
      If an individual user&#39;s Web Browser is NOT configured to automatically open-and-run, then HOMER will download only. Running the device will occur in response to additional user supplied open and run commands. In this case, HOMER will also function as described in the first section of this document. 
     The principal use of the HOMER device in commerce is to encourage individuals who use the World Wide Web to make a particular Web Site their personal Home Page--that is, the Web Site at which they start browsing the Web. This is commercially desirable from the perspective of any particular Web Site because it has the effect of increasing traffic at that Web Site. The value of traffic to a Web Site is twofold: 
     First, increased traffic at a Web Site is directly related to that Site&#39;s ability to charge increased amounts for electronic advertising. That is, companies placing advertisements for their products and/or services want to receive the maximum amount of exposure. The HOMER device maximizes potential advertiser exposure at a particular Web Site by causing individuals to start each and every browsing session at that Site. HOMER--together with further individual customization of the HOMER-adopted Home Page--creates a &#34;captive target market&#34; for advertisers. 
     Second, certain Web Sites are currently or will eventually sell products and/or services over the World Wide Web. Increased exposure to potential customers is a primary means of increasing sales. Once again, the HOMER device maximizes potential consumer exposure to a company&#39;s products and/or services by causing individuals to start each and every browsing session at that company&#39;s Web Site. 
     In each case, the HOMER device provides only for the delivery of additional traffic to a Web Site. Over the long run, an individual will decide whether or not to maintain a Web Site as their personal Home Page, based on the quality and responsiveness to their personal needs of the content at that Site. An analogy may be made to television advertising. The quality of the content (the programming or the &#34;shows&#34;) is completely responsible for the retention of a viewing audience, to which advertisers may pitch their products and/or services. To extend the analogy, HOMER has an effect on a Web Browser that can be likened to a television device that causes a viewer&#39;s set to always start at a predetermined broadcast station (for example). Obviously, such a device would be a boon to the predetermined broadcast station. And yet, the ability of the broadcast station to capitalize on such a device will depend on the extent to which it can retain its temporarily captured audience with programming viewers actually want to watch. 
     A program listing is set forth below: 
     
         ______________________________________/**********************************************//*            *//* Program: Homer.exe             *//* Purpose: To change the default homepage                 *//*  ini file of popular Web Browswers               *//* Author: Fred M. Abaroa             *//* Date: 5-2-96 *//* Company: Digital Research, Inc               *//*            *//**********************************************/#include &lt;dos.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;#include &lt;stdio.h&gt;#include &lt;conio.h&gt;#include &lt;iostream.h&gt;#include &lt;splash.h&gt;#include &lt;windows.h&gt;#include &lt;mmsystem.h&gt;#include &lt;bios.h&gt;#define cr 13#define stack.sub.-- size 200char rpath !=&#34;C:\\&#34;;char dstack stack.sub.-- size! 65!;int push.sub.-- add=0;struct find.sub.-- t mybuf;// File Search and Replace// This routine will scan a DOS file searching and replacing// matching text strings. The file to be opened will be specified// on the command line, and the new file that will be created will// be called FSR.NEW. After completing the operating and closing// both files, the original file will be replaced and FSR.NEW will// be renamed the same as the old file. As an Option you can pass// argc 4! as the TempFile name and this will be used instead of// FSR.NEW.// Command Line: FILENAME SEARCHSTRING REPLACESTRING  TempFile!// FSR.CPP - By Todd Osborne CIS ID: 71431,2243// 09/16/93 - Compiled with Microsoft Visual C++ 1.00// This source cade and program are Public Domain// Feel free to copy and use this source code in other programs.// Please let me know if you find any bugs or want improvements||// **** THIS PROGRAM IS CASE-SENSITIVE ****// This code has been modified By Fred Abaroaint Copy TextFile (char *SourceFile, char *destFile) // This routine copies TEXT files ONLY ||FILE *FPq, *FP2;char InString 256!=&#34;&#34;;if ( (FP1=fopen(SourceFile, &#34;r&#34;)) |= NULL ){//Open Output Fileif ( (FP@=fopen(DestFile, &#34;w&#34;)) == NULL ){fcloseall( );   // Something&#39;s Wrong||return (0);}else// Process this filewhile ( (fgets (Instring, 256, FP1)) |= NULL ){fputs (InString, FP2);}fcloseall( );return (1);}else return (0);}void ReplaceString (char *InString, char *SearchString, char*ReplaceStr){//Do the Actual String Replacement Herechar NewString1 256!=&#34;&#34;;           // 1st Part of New Stringchar NewString2 256!=&#34;&#34;;           // 2nd Part of New Stringchar *loc=&#34;&#34;;int i;loc=strstr(InString, SearchString);i = loc - InString + 1;if (i==1){strcpy (InString, &#34;Home Page=http://www.disney.com\n&#34;);                      // Combine                       these                       suckers}}int SileSearchAndReplace (char *FileName, char *SearchString,char *ReplaceStr, char *TempFile){// Perform the File Search and Replace// Function returns 1 if successfull, 0 if notFILE *FP1, *FP2;           // File Pointer 1 (Open File) and                                          2 (New File)char InString 256!=&#34;&#34;;char *loc=&#34;&#34;;if ( (FP1=fopen(FileName, &#34;r&#34;)) |= NULL ){//Open Output Fileif ( (FP2=fopen(TempFile, &#34;w&#34;)) == NULL ){fcloseall( ); // Something&#39;s Wrong||return (0);}// Process this filewhile ( (fgets (InString, 256, FP1)) |= NULL ){//There may be more than one string in each line, so loopif ( (loc=strstr(InString, SearchString)) |= NULL ){ReplaceString (InString, SearchString, ReplaceStr);}fputs (InString, FP2);          // Write modified line to new file}fcloseall( );        // Close open files// Copy File instead of rename. If you only rename it, the file// will exists in the same directory as FSR.EXE. We wnat it to// be placed in the same location it came from|CopyTextFile (TempFile, FileName);remove (TempFile);return (1);}else{//print(&#34;\nFile not found.\n&#34;);//cout &lt;&lt; &#34;\nFile not found.\n&#34;;return (0);}}/*****************************************//*            *//* Print the data for the individual                *//* file and repeat till done.              *//*            *//*****************************************/void fnamesdis ( ){int i,j;char c,temp 80!;for (i=0;i&lt;16;i++)temp i! =&#34;;i=0;for(j=0;j&lt;=11;j++)        /* Put the ext at temp 10-12! */{c = mybuf.name j!;switch (c){case :: i = 10;break;default : temp i+ ! = c;break}}temp i! = 0;//cout &lt;&lt; mybuf.name &lt;&lt; &#34;\n&#34;;//printf(&#34;\t%-13s\n&#34;,mybuf.name);//printf(&#34;\t%-13s&#34;,temp);//printf(&#34; %8ld&#34;,mybuf,size);}/*********************************************************//*                   *//* Subroutine:     push(str) *//*                   *//* Works on the global array dstack and int push.sub.-- add and  *//* puts the passed string on the top of the stack. If                        *//* there is no space on the stack a -1 is returned.                        *//*                   *//*********************************************************/int push(char *spush){int i=0;if(push.sub.-- add |= stack.sub.-- size) //stack.sub.-- sizestrcpy(dstack push.sub.-- add++!,spush);elsei=-1;return(i);}/*********************************************************//*                   *//* Subroutine:     pop(str) *//*                   *//* Works on the global array dstack and int push.sub.-- add and  *//* gets the string on the top of the stack. If the stack                         *//* is empty, a -1 is returned.                       *//*                   *//*********************************************************/int pop(char *spop){int i=0;if(push.sub.-- add |= 0)strcpy(spop,dstack --push.sub.-- add!);elsei=-1;return(i);}/*********************************************************//*                   *//* This program will search down in a path for a file                         *//* dos wildcards are allowed in the filespec.                       *//*                   *//*                   *//*********************************************************/void Main( ){int i,dircnt=0,filecnt=0,newpath,sort.sub.-- flag=0;int specs=1,nopush=0,find.sub.-- one=0,nosub=0,dirfnd=0;char temp 80!,path 80!,temp2 80!,ch;int NumOfBrowsers=3;char Browser 3! 15!={&#34;c;\\&#34;,&#34;NETSCAPE.INI&#34;,&#34;AIRMOS.INI&#34;};MSG msg;sndPlaySound(&#34;Dropflag.wav&#34;,SND.sub.-- SYNC);ShowSplashFromFile(&#34;disney.bmp&#34;,0);while (GetMessage(&amp;msg, /* message structure  */NULL,     /* handle of window receiving the message */NULL,     /* lowest message to examine                           */NULL))    /* highest message to examine                           */}TranslateMessage(&amp;msg);          /* Translates virtual key codes  */DispatchMessage(&amp;msg);          /* Dispatches message to window  */}/* do{//cin.get(ch);ch = getc(stdin);//ch =.sub.-- bios.sub.-- keybrd(.sub.-- KEYBRD.sub.-- READ);ch = toupper(ch);} while( ch |= `Y` &amp;&amp; ch |= `N`);if (ch==`N`){EndSplash( );exit(0);}*/EndSplash( ); //take off first bmpShowSplashFromFile(&#34;sitback.bmp&#34;, 2);sndPlaySound(&#34;Sitback.wav&#34;,SND.sub.-- SYNC);/*****************************************************//*                   *//* This program works by keeping a stack of paths to  *//* check for the given spec(s). The start.sub.-- path is pushed *//* initially and after it is checked for files it is  *//* then checked for directories to also be pushed on the *//* path.stack. The start.sub.-- path must be given on the  *//* command line.       *//*                   *//*****************************************************/if(nopush == 0){if(push(Browser specs - 1!) == -1) \ -    {//cout &lt;&lt; &#34;Internal stack error, too many directories\n&#34;;//printf(&#34;Internal stack error, too many directories\n&#34;);exit(4);}}elsespecs--; /* There is no start.sub.-- path with -r option *//*********************************************************//*                   *//* Remove the paths from the stack one at a time,  *//* usually this means the stack will be empty after the  *//* first call. More paths will be added if the popped *//* path has subdirectories.                     *//*                   *//*********************************************************/while(pop(path) |= -1){newpath = 0; /* Flag to show when 1st match is found*/dircnt++;/*****************************************************//*                   *//* While we are looking at this directory, check for *//* each spec given on the command line.   *//*                   *//*****************************************************/for(i=specs;i&lt;NumOfBrowsers;i++){strcpy(temp,path);strcat(temp,Browser i!);//printf(&#34;line 239--%s--\n&#34;,temp);if(.sub.-- dos.sub.-- findfirst(temp,.sub.-- A.sub.-- NORMAL |.sub.-- A.sub.-- RDONLY,&amp;mybuf) == 0){if(newpath == 0){/*****************************************//*                   *//* First file is found for this path, so *//* print the path.      *//*                   *//*****************************************///cout &lt;&lt; path &lt;&lt; &#34;\n&#34;;//printf(&#34;%s\n&#34;,path);dirfnd++;newpath = 1;}do{filecnt++;fnamedis( ); /* Display the file */if (filecnt&gt;1){if (strcmp(Browser 1!,mybuf.name)==0){EndSplash( ); //take off first bmpShowSplashFromFile(&#34;Netscape.bmp&#34;, 0);}else{EndSplash( ); //take off first bmpShowSplashFromFile(&#34;Mosaic.bmp&#34;, 0);}sndPlaySound(&#34;Foundit.wav&#34;,SND.sub.-- SYNC);}else{if(strcmp(Browser 1!,mybuf.name)==0){EndSplash( ); //take off first bmpShowSplashFromFile(&#34;Netscape.bmp&#34;, 0);}else{EndSplash( ); //take off first bmpShowSplashFromFile(&#34;Mosaic.bmp&#34;, 0);}sndPlaySound(&#34;Found1.wav&#34;,SND.sub.-- SYNC);}//FileSearchAndReplace (char *FileName, char *SearchString, char *ReplaceStr, char *TempFile)strcpy(temp2,path);strcat(temp2,mybuf.name);//cout &lt;&lt; temp2 &lt;&lt; &#34;\n&#34;;//printf(&#34;***%s***\n***%s***\n\n&#34;,Browser 1!,mybuf.name);FileSearchAndReplace (temp2, &#34;Home Page=&#34;, &#34;http://www.disney.com&#34;, &#34;fsr.new&#34;);}while(.sub.-- dos.sub.-- findnext(&amp;mybuf) == 0);}}if(nosub == 0) /* if doing path search - no subs */{/*****************************************************//*                   *//* Prepair to look for sub directories under the   *//* current path.        *//*                   */ /*****************************************************/strcpy(temp,path);strcat(temp,&#34;*.*&#34;);if(.sub.-- dos.sub.-- findfirst(temp,.sub.-- A.sub.-- SUBDIR,&amp;mybuf) ==0)doif(((mybuf.attrib &amp; .sub.-- A.sub.-- SUBDIR) |= 0) &amp;&amp; (mybuf.name 0! |=`.`)){/*********************************************//*                   *//* Since we know it is a real sub directory *//* push it on the stack and look for more. *//*                   */ /*********************************************/strcpy(temp,path);strcat(temp,mybuf.name);strcat(temp,&#34;\\&#34;);if(push(temp) == -1){//cout &lt;&lt; &#34;Internal stack error, too many directories\n&#34;;exit(4);}}while(.sub.-- dos.sub.-- findnext(&amp;mybuf) == 0);  } }//cout &lt;&lt; dircnt &lt;&lt; &#34;directories searched,&#34; &lt;&lt; filecnt &lt;&lt; &#34;matches found in&#34; &lt;&lt; dirfnd &lt;&lt; &#34;directories.\n&#34;;.EndSplash( );ShowSplashFromFile(&#34;done.bmp&#34;, 10);EndSplash( );sndPlaySound(&#34;Dropflag.wav&#34;,SND.sub.-- SYNC);exit(0);}______________________________________