webForumDet fria alternativet

Kommandon

2 svar · 254 visningar · startad av puhbjörn

puhbjörnMedlem sedan juni 2001370 inlägg
#1

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.

nikoMedlem sedan juni 20022 599 inlägg
#2

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.)

PeWMedlem sedan juni 200010 432 inlägg
#3

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.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)