Hur gör jag för att kolla vilka kommandon som skickas till programmet om man använder till exempel start->kör: programmet.exe +kommando 1. Jag har inte hittat någon info om detta nämligen.
Kommandon
2 svar · 254 visningar · startad av puhbjörn
Det generella sättet som funkar överallt i programmet är GetCommandLine. Om du befinner dig inne i main/WinMain så har run-timen redan gjort anropet åt dig och lagt över informationen i inparametrarna argv resp. lpCmdLine.
I ditt exempel så är det tex argv[1] som innehåller kommando1 (om det är en konsollapp).
/red: Just GetCommandLine gäller såklart bara om vi talar Windows. (Det förutsatte jag visst av bara farten.)
För console:
Du tar argument i main och sen kollar du bara vad det var för argument.
int main(int argc, char *argv[]){
// argc är antalet argument
// argv är argumenten som du kan indexera fram
// programmet arg1 arg2 arg3 är t.ex 3 argument (argc är antalet)
// nedan skriver ut alla argument
int i;
for(i=0;i<argc;i++)
printf("%s\n",argv[i]);
return 0;
}
Detta är den rätta notationen, men en del anger main som parameterlös och returlös vilket fungerar i vissa OS men är inte ren standardnotation så en vän av ordningen säger naturligtvis att all annan notation än i exemplet är fel.