Solved

Detect when Windows has finished loading

Posted on 2010-08-23
10
327 Views
Last Modified: 2012-05-10
Hi,
Is there a key (or anything) that i can read from windows to know that it  has finished loading?
Can you provide some techniques to detect when Windows has finished loading especially using WMI, Visual Basic6 or Windows API?
I have a program that runs at startup, and i need it to open after the windows has finished loading (network is initialized etc).
Regards,
Cristi
0
Comment
Question by:Cristi_E
  • 5
  • 4
10 Comments
 
LVL 42

Expert Comment

by:sedgwick
Comment Utility
if your program is runs from startup, then u can bet windows has finished loading...if it is depend on specific process/service, u can query their status to make sure they are loaded and running
0
 
LVL 4

Author Comment

by:Cristi_E
Comment Utility
For example it reads all the installed printers. Some times it tells that there are no installed printers bechause it cannot read them (or the returned value by the WMI is that there are no printers) and that is i think bechause Windows did not finished loading.
0
 
LVL 42

Expert Comment

by:sedgwick
Comment Utility
so you need to make sure the Spooler service is running and then it should give you list of installed printers.
0
 
LVL 4

Author Comment

by:Cristi_E
Comment Utility
Yes in this particular case. It also tryes to connect to the internet and check if a licence is still valid, and also some tymes return a error bechause the network is not ready.
So should i understand that there is no universal method to tell taht windows has finished loading and it is ready to be used?
I really need that for all my programms that run at startup and perform som tasks.
0
 
LVL 42

Accepted Solution

by:
sedgwick earned 500 total points
Comment Utility
windows finished loading is pretty much abstract term, cause to some services are being loaded by windows asynchronously and it take some time for them to run.
other services/applications are dependent on other services/applications to run so it comes to the point where you need to list the requirements by which your program can safely start to run.
this is a known issue and it's being addressed differently depends on the environment.
the most common issue is internet dependency, when it is a requirement for an application to run.
in this case the application detect if internet connectivity is available before starting its tasks.
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 4

Author Comment

by:Cristi_E
Comment Utility
OK.
So in my case when i use WMI to read all the installed printers, what should i check first before trying to read them? Is it possible that WMI itself not being ready when i try to use it?
0
 
LVL 42

Expert Comment

by:sedgwick
Comment Utility
you can be positive to use WMI when your program was launched, if that what you are concern about.
0
 
LVL 42

Assisted Solution

by:sedgwick
sedgwick earned 500 total points
Comment Utility
in case of installed printers, check that the spooler service is running.
0
 
LVL 86

Expert Comment

by:jkr
Comment Utility
Just add your program to

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

and it will be execuuted as soon as Windows has finished loading and before a user logs on. See also http://support.microsoft.com/kb/179365 ("INFO: Run, RunOnce, RunServices, RunServicesOnce and Startup")
0
 
LVL 4

Author Closing Comment

by:Cristi_E
Comment Utility
Thenks for help!
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use for-loops in the C programming language.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now