Ciao frank ti faccio vedere la funzione ma devi concentrarti su la parte che ti interessa, avendo creato io la funzione l'ho impostata per funzionare sul mio programma ma è comunque molto commentata perché dimentico sempre tutto (:
/******************************Funzione PortStampSel**************************/
char* PortStampSel(void)
{
FILE* Port; //Puntatore a file
char NomeStamp[80]; //Pontatore nome stampante
char Stampante[80]; //Nome stampante
char *Porta; //Nome per selettore porta collegamento
char PortaLPT[80]; //Nome porta
int i; //contatore per for
Jtextcolor(Fin_Norm.Fin_Bord_Col); //colore bordo
Jtextback(Fin_Norm.Fin_Bac_Col); //colore di fondo
ApreFinestra(Fin_Smol.XS-6,Fin_Smol.YS,Fin_Smol.XD,Fin_Smol.YD);
Jtextcolor(Fin_Smol.Fin_Tex_Col);
/***************************************************************************/
Jgotoxy(25,24);//posizione scrittura
//Messaggi di ricerca e controllo
if( (Port=fopen("C:/windows/win.ini","rb")) == NULL )
{ CambiaCol("Errore nel set stampante!",YELLOW+LAM);
Aspetta(70);
ChiudeFinestra();
return "Error";
}else while( !feof(Port) )
{
if ( (strstr("[PrinterPorts]",fgets(NomeStamp,15,Port)) )//trova corrispondenza
!= NULL )
{
fgets(NomeStamp,80,Port);//Ripulisce il restante della stringa
fgets(NomeStamp,80,Port);//Copia l'interessante
break;
}
}
if( strlen(NomeStamp) < 2 )
{
Wputs("No Printer");//non c'Š stampante
Aspetta(70);
ChiudeFinestra();
fclose(Port);
return "Error";
}
for(i=0;(NomeStamp[i] != '=') && (!feof(Port));i++)//Mostra solo il nome della Stampante
{
Stampante[i]=NomeStamp[i];
Stampante[i+1]='\0';
}
Porta=memchr(NomeStamp,',',40); //TROVA LA PORTA DI COLLEGAMENTO STAMPANTE
for(i=1;(Porta[i] != ':' && (Porta[i] != ',') &&
(!feof(Port)) ); i++)
{
PortaLPT[i-1]=Porta[i];
PortaLPT[i]='\0';
}
Jcursor(0);
Jgotoxy(25,23);
{ //STAMPA RISULTATO RICERCA
Wputs("Stampante riconosciuta: "); //stampa il risultato
Jgotoxy(25,25);//posizione scrittura
Wputs(Stampante);
Jgotoxy(25,27);//posizione scrittura
Wputs("Sulla porta:");
Wputs(PortaLPT);
}
fclose(Port);
Aspetta(60); //TICK
ChiudeFinestra();
Jcursor(1);
return PortaLPT;
}
per chiarimenti non esitare.