Question

how to start aplication on system startup

Asked by: kim_ray

hi expert

I have a desktop application just like gtalk or yahoo i needs to start it automatically on system startup
how can i do this.

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2008-12-05 at 08:58:07ID23960809
Tags

delphi

Topic

Delphi Programming

Participating Experts
6
Points
250
Comments
11

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. DialUpNetworking/Win98 StartUp
    How do I undo the automatic DialUpNetworking window at StartUp of Win98 ? Somehow I have triggered an automatic loading of DialUpNetworking at StartUp but can now not retrace my steps to get rid of it. Normal searches via DialUpNetworking settings, autoexec.bat,config.sys, sy...
  2. Executing an app on system startup
    Hai Experts, If we have installed Yahoo Messenger in the system, it will automatically get executed on system startup. It is possible by registering it as a service or by creating a shortcut in the startup folder. But I couldn't find any shortcut to the Yahoo messenger appli...
  3. startup program
    In windows98 I am getting startup programs by typing msconfig.exe.It is not present in the startup folder.Where this entry are storing.I want to add new startup program in this list.I do not want to copy this startup program in startup folder.
  4. How do I remove Yahoo Messanger from startup?
    Everytime I turn on my computer, it takes along time to come online. It's automatically loading Yahoo Messanger. I've removed everything from the startup. ( Start > Programs > Startup = Empty ) How is this getting loaded at startup? How can I prevent it from loading...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: talkinsmakPosted on 2008-12-05 at 09:16:38ID: 23106605

Add it to the startup folder.

1.  Locate the .exe of the application

2. Right click you start button, choose "Explore"

3.  Navigate to  "All users" if you want it to start for everyone or your "Username" if you only want it to start fo ryou.

4.  Drill down to start menu, programs, startup

5.  Right click the .exe you want to start up and choose copy and then paste it in the startup folder.

Hope that helps

 

by: kim_rayPosted on 2008-12-05 at 11:11:36ID: 23107651

thanx for reply

but this is my simple delphi application i want to write the code with my aplication code.

 

by: rllibbyPosted on 2008-12-05 at 11:49:42ID: 23108015

Code for building the statup shortcut link automatically. It uses the applications title, filename, and icon to build the link.

HTH,
Russell

////////////////////////////////////////////////////////////////////////////////
//
//   Function    :  AddSelfStartup
//
//   Parameters  :
//                     AllUsers -  Boolean value indicating if this should apply
//                     to all users, or only the current user
//
//   Returns     :  HResult status of the IShellLink handling. On success S_OK
//                  will be returned.
//
//   Notes       :  Routine expects the following units in the uses clause:
//
//                     Forms, ComObj, ActiveX, ShlObj
//
//                  Forms is required for access to the Application instance,
//                  and the latter are required for the COM functionality.
//
/////////////////////////////////////////////////////////////////////////////////
function AddSelfStartup(AllUsers: Boolean = False): HResult;

  function CheckSetStatus(CheckStatus: HResult; out SetStatus: HResult): Boolean;
  begin
     // Resource protection
     try
        // Set outbound status
        SetStatus:=CheckStatus;
     finally
        // Determine if this was a success
        result:=Succeeded(CheckStatus);
     end;
  end;

var
  lpwszPath:        Array [0..MAX_PATH] of WideChar;
  lpszPath:         Array [0..MAX_PATH] of Char;
  pvFile:           IPersistFile;
  pvLink:           IShellLink;
  dwPath:           DWORD;
const
  STARTUP_PATH      =  '%s\Start Menu\Programs\Startup\';
begin

  // Initialize the com library
  if CheckSetStatus(CoInitialize(nil), result) then
  begin
     // Resource protection
     try
        // Attempt to create instance of shell link
        if CheckSetStatus(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, pvLink), result) then
        begin
           // Resource protection
           try
              // Get the executable filename (null terminate result)
              lpszPath[GetModuleFileName(0, @lpszPath, MAX_PATH)]:=#0;
              // Update the link settings
              if CheckSetStatus(pvLink.SetPath(@lpszPath), result) and CheckSetStatus(pvLink.SetIconLocation(@lpszPath, 0), result) then
              begin
                 // Set the description (don't care about status)
                 pvLink.SetDescription(PChar(Application.Title));
                 // Query for IPersistFile
                 if CheckSetStatus(pvLink.QueryInterface(IPersistFile, pvFile), result) then
                 begin
                    // Resource protection
                    try
                       // Determine if current user or all users
                       if AllUsers then
                          // Expand the path
                          dwPath:=ExpandEnvironmentStrings(PChar(Format(STARTUP_PATH, ['%ALLUSERSPROFILE%'])), lpszPath, SizeOf(lpszPath))
                       else
                          // Expand the path
                          dwPath:=ExpandEnvironmentStrings(PChar(Format(STARTUP_PATH, ['%USERPROFILE%'])), lpszPath, SizeOf(lpszPath));
                       // Concat the application filename with the extension of .lnk
                       StrLCat(@lpszPath, PChar(ChangeFileExt(ExtractFileName(Application.ExeName), '.lnk')), MAX_PATH);
                       // Convert to wide char
                       MultiByteToWideChar(CP_ACP, 0, @lpszPath, -1, @lpwszPath, MAX_PATH);
                       // Save to file
                       result:=pvFile.Save(@lpwszPath, True);
                    finally
                       // Release the interface
                       pvFile:=nil;
                    end;
                 end;
              end;
           finally
              // Release the interface
              pvLink:=nil;
           end;
        end;
     finally
        // Uninit the com library
        CoUninitialize;
     end;
  end;

end;

----

  // Example usage
  AddSelfStartup(True);
 

 

by: ThievingSixPosted on 2008-12-05 at 12:48:53ID: 23108645

Why use the startup folder instead of the registry?

 

by: rllibbyPosted on 2008-12-05 at 13:07:04ID: 23108802


It depends on the accessability level that the developer wishes to expose to the user. There is no right / wrong way, it just depends on the intent. If you wish to make it easy for your user to control (remove) a startup item, then placing it in the startup folder makes sense. If you wish to keep the novice user from modifying the startup of your program, then the registry makes sense.

Russell

// Example using registry
function AddRegSelfStartup(AllUsers: Boolean = False): Integer;

  function CheckSetStatus(CheckStatus: Integer; out SetStatus: Integer): Boolean;
  begin
     // Resource protection
     try
        // Set outbound status
        SetStatus:=CheckStatus;
     finally
        // Determine if this was a success
        result:=(CheckStatus = ERROR_SUCCESS);
     end;
  end;

var
  hkBase:           HKEY;
  hkRun:            HKEY;
  dwDisp:           DWORD;
begin

  // Check key to open
  if AllUsers then
     // Use local machine key
     hkBase:=HKEY_LOCAL_MACHINE
  else
     // Use current user key
     hkBase:=HKEY_CURRENT_USER;

  // Attempt to create / open the key
  if CheckSetStatus(RegCreateKeyEx(hkBase, 'Software\Microsoft\Windows\CurrentVersion\Run', 0, nil, REG_OPTION_NON_VOLATILE, KEY_WRITE, nil, hkRun, @dwDisp), result) then
  begin
     // Resource protection
     try
        // Set the value (account for null as well)
        result:=RegSetValueEx(hkRun, PChar(ExtractFileName(Application.ExeName)), 0, REG_SZ, PChar(Application.ExeName), Succ(Length(Application.ExeName)));
     finally
        // Close the key
        RegCloseKey(hkRun);
     end;
  end;

end;

 

by: middy_jimPosted on 2008-12-19 at 04:14:14ID: 23211716

but how to use it
i have a exe file and i will put this code ??

 

by: rllibbyPosted on 2008-12-19 at 06:40:17ID: 23212577

Who's asking the question? middy_jim or kim_ray? Or is this account one and the same person?

 

by: senadPosted on 2009-07-03 at 18:38:32ID: 24775291

Programmatically Edit Registry to Run Your Delphi Application on Windows Startup
By programmatically editing the Windows Registry, using the TRegistry object, you can you can "automagically" start programs whenever Windows launches.
The procedure you can use to force "auto-run-on-Windows-startup" for your application might look like:

procedure RunOnStartup(const sCmdLine: string; bRunOnce: boolean = false; Remove: Boolean = false) ;
var
  sKey: string;
  Section: string;
const
  ApplicationTitle = Your Application TITLE;
begin
  if (bRunOnce) then
    sKey := 'Once'
  else
    sKey := '';

  Section := 'Software\Microsoft\Windows\CurrentVersion\Run' + sKey + #0;

  with TRegIniFile.Create('') do
    try
      RootKey := HKEY_LOCAL_MACHINE;
      if Remove then
        DeleteKey(Section, ApplicationTitle)
      else
        WriteString(Section, ApplicationTitle, sCmdLine) ;
    finally
      Free;
    end;
end;

On Vista, if the user running the application does not have admin rights the above code would fail, due to UAC!

 

by: Geert_GruwezPosted on 2009-11-25 at 00:15:10ID: 25905146

This question has been open a long time.
do you still have any more problems ?
if not, then please close the question assigning grade and points to all who helped you out

 

by: senadPosted on 2009-11-25 at 00:23:35ID: 25905188

Geert_Gruwez for moderator !
Yes !
:-)

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...