Starter program samtidig med windows opstart

Tags:    c++

<< < 12 > >>
Ville bare høre hvor man skal lægge en fil hvis den skal startes op sammen med windows?



19 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Ville bare høre hvor man skal lægge en fil hvis den skal startes op sammen med windows?


Hvis det er iorden det først starter efter windows er loadet færdig kan du ligge det i "start" mappen i menuen start.



Her er et program, som får sig selv til at blive kørt sammen med windows, når programmet køres.

Fold kodeboks ind/udKode 




Er der nogen mulig kode til at få programmet til at selv lægge sig ind i "start" mappen?



Indlæg senest redigeret d. 08.07.2009 23:23 af Bruger #14212
Her er et program, som får sig selv til at blive kørt sammen med windows, når programmet køres.

Fold kodeboks ind/udKode 


Tak bertel.
Har du nogen dokumentation til hvordan det fungerer?



Denne linje henter programmets navn:
GetModuleFileName(0, Name, sizeof(Name));

Denne linje åbner en nøgle til registreringsdatabasen:

RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, 0)

Og denne linje skriver til reg-db'en:
RegSetValueEx(hKey, "NetS", 0, REG_SZ, (BYTE *)Name, strlen(Name) + 1);

"NetS" kan du skifte ud med titlen på dit program, så det er til at finde igen.

Du kan checke og slette værdien med programmet regedit

Som altid skal du være varsom når du roder med windows regdatabase.

Du kan slå funktionerne på på msdn



Denne linje henter programmets navn:
GetModuleFileName(0, Name, sizeof(Name));

Denne linje åbner en nøgle til registreringsdatabasen:

RegCreateKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, 0)

Og denne linje skriver til reg-db'en:
RegSetValueEx(hKey, "NetS", 0, REG_SZ, (BYTE *)Name, strlen(Name) + 1);

"NetS" kan du skifte ud med titlen på dit program, så det er til at finde igen.

Du kan checke og slette værdien med programmet regedit

Som altid skal du være varsom når du roder med windows regdatabase.

Du kan slå funktionerne på på msdn


Får en fejl når jeg kører det:
Fold kodeboks ind/udKode 


Log:
Fold kodeboks ind/udKode 


Når man så vil skrive den kode som skal køres når den starter skal man så bare skrive den imellem GetModuleFileName og if(Redkey...)?



Indlæg senest redigeret d. 08.07.2009 23:33 af Bruger #14212
Det ser ud til at du skal have sat VisualC++ rigtigt op. Den skal sættes til ikke at bruge "multi-byte" eller "wide-char".

Du skal kun køre koden én gang.



Har sat Visual op nu.
Men jeg har en kode jeg gerne vil have til at starte op sammen med programmet.
altså, så f. eks den åbner en mappe hver eneste gang jeg starter pcen.
Hvor skal jeg indskrive den kode?



Det ser ud til at du skal have sat VisualC++ rigtigt op. Den skal sættes til ikke at bruge "multi-byte" eller "wide-char".

Du skal kun køre koden én gang.


Hmm, når jeg kører programmet kommer den ikke til at stå inden under det registry som den er sat til?
Den tilføjer sig ikke til databasen?
Hvis jeg nu ville have at den skulle starte et program som hedder:
Test.exe
hver gang den åbner pcen, hvad skulle der så stå?



Indlæg senest redigeret d. 09.07.2009 00:01 af Bruger #14212
Skriver programmet "Did write value" når du kører det?

Normalt vil man ikke få programmet til selv at få sig selv til at køre sig selv. Man laver normalt et program som får et andet program til at køre ved startup.

I stedet for:
char Name[1024];
GetModuleFileName(0, Name, sizeof(Name));

Kan du bare skrive:
char Name[1024] = "C:\\programmer\\mit program\\program.exe";



<< < 12 > >>
t