 
View Full Version : Indirizzi http e programma in C
Salve, vorrei sapere se è posssibile creare un programmino in C contenente dei comandi che gli facciano aprire tramite IE un determinato indirizzo HTTP contenuto nel programma stesso, è possibile?
Thx.
NapalM
Originariamente inviato da Napalm 
[B]Salve, vorrei sapere se è posssibile creare un programmino in C contenente dei comandi che gli facciano aprire tramite IE un determinato indirizzo HTTP contenuto nel programma stesso, è possibile?
Certo...
Basta usare la API ShellExecute :
ShellExecute(puntFinestraPadre, "open", "http://www.iltuosito.com", NULL, NULL, SW_SHOW);
Originariamente inviato da cionci 
[B]
Certo...
Basta usare la API ShellExecute :
ShellExecute(puntFinestraPadre, "open", "http://www.iltuosito.com", NULL, NULL, SW_SHOW); 
Scusa ma la mia ignoranza in materia ( x programmare uso Turbo C):
devo specificare qualche tipo di #include particolare nel prog?
main ()
{
int io;
if ( io == 5)
   ShellExecute(puntFinestraPadre, "open", "http://www.iltuosito.com", NULL, NULL, SW_SHOW);
}
funzionerebbe un prog così???
Grazie mille x le info :)
NapalM
No...in Turbo C non funzionerebbe...
Devi usare un compilatore che genera un eseguibile per windows e devi avere il Win32 SDK che ti fornisce gli include e le varie librerie...
Con Turbo C prova ad usare questo comando :
system("explorer http://www.miosito.com");
system dovrebbe essere in stdlib...comunque controlla nell'help...
che significa
puntFinestraPadre
Originariamente inviato da okay 
[B]che significa
puntFinestraPadre 
Puntatore alla finestra padre (HWND)...
Ciao cionci prima di tutto grazie mille x l'aito, poi ti vorrei far vedere una cosa:
#include <stdio.h>
#include <stdlib.h>
main ()
{
char string1[16];
printf ("Enter the string");
scanf ("%s", string1);
system("explorer http://www.miosito.com/%s", string1);
} 
così non funzia, suppongo che la funzione non sia implementata.
In pratica partendo da un sito "primario" l'utente inserisce come stringa (string1) la pagina di quel sito da visualizzare e lui l'andrà a copiare accanto al sito primario in modo da aprirla.
E' possibile o no farlo??
NapalM
Originariamente inviato da Napalm 
[B]Ciao cionci prima di tutto grazie mille x l'aito, poi ti vorrei far vedere una cosa:
#include <stdio.h>
#include <stdlib.h>
main ()
{
char string1[16];
printf ("Enter the string");
scanf ("%s", string1);
system("explorer http://www.miosito.com/%s", string1);
} 
così non funzia, suppongo che la funzione non sia implementata.
In pratica partendo da un sito "primario" l'utente inserisce come stringa (string1) la pagina di quel sito da visualizzare e lui l'andrà a copiare accanto al sito primario in modo da aprirla.
E' possibile o no farlo??
Sì...in altri ambienti non c'è alcun problema a farlo...
Comunque la system non funziona in quel modo...
La system prende una stringa in ingresso...se ci vuoi concatenare un'altra stringa devi usare un altro metodo...ad esempio :
char cmd[1024];
sprint(cmd, "explorer http://www.miosito.com/%s", string1);
system(cmd);
oppure usi strcat...
Rimetti a posto il codice e riprova...
#include <stdio.h>
#include <stdlib.h>
main ()
{
char str1[16];
char cmd[1024];
printf ("Stringa 1\n");
scanf ("%s", str1);
sprint(cmd, "explorer http://%s/Forum/index.php?s=", str1);
system(cmd);
} 
C'è un piccolo problema, quando faccio compile non mi dà nessun errore mentre quando faccio make EXE files mi dà un errore..questo: Linker error: Undefined symbol '_sprint' in module prova.c
Come mai??
NapalM
ps: non finirò mai di ringraziarti cmq :)
questo in vc6 a me funziona:
ShellExecute( NULL, "open", "http://www.tuosito.it/programmi.html", NULL, NULL, SW_SHOWNORMAL);
Originariamente inviato da okay 
[B]questo in vc6 a me funziona:
ShellExecute( NULL, "open", "http://www.tuosito.it/programmi.html", NULL, NULL, SW_SHOWNORMAL); 
Ma lui non può usare le API...
Napalm : è sprintf non sprint...scusa...ho scritto male...
Ma figurati Cionci, non hai nulla di cui scusarti mi stai dando una grossa mano.:)
Allora il programma è così:
#include <stdio.h>
#include <stdlib.h>
main ()
{
char str1[16];
char cmd[1024];
printf ("Stringa 1");
scanf ("%s", str1);
sprintf(cmd, "explorer [url]http://%s/Forum/index.php?s=[/url]", str1);
system(cmd);
}
Ora il programma funziona ma se metto l'ip della board di un mio amico (a cui si riferisce /Forum/index.php?s= ) al posto di aprirsi un pagina html mi apre la finestra dell'explorer di windows con i vari hd e cd-rom. Come mai?
NapalM
Molto strano...forse non riconosce l'indirizzo come indirizzo http valido... Prova a sostituire la parola "explorer" con "iexplore"...
Ciao :)
"iexplore" non è riconosciuto come comando interno o esterno, un programma eseguibile o file bat.
Azz...adesso boh....anche stò problema..grgrgrggrg
:)
NapalM
Allora ci devi mettere il path per raggiungere Internet Explorer...
#include <stdio.h>
#include <stdlib.h>
main ()
{
char str1[16];
char cmd[1024];
printf ("Stringa 1");
scanf ("%s", str1);
sprintf(cmd, "C:\Programmi\Internet Explorer\iexplore.exe [url]http://%s/Forum/index.php?s=[/url]", str1);
system(cmd);
}
Scritto così mi dice: "C:ProgrammiInternet" non è riconosciuto come comando interno o esterno, un programma eseguibile o file bat. 
Probabilmente non riesce ad interpretare la path xchè nel compile mi dava 3 warning e tutti e 3 dopo la "\".
Ho provato a smanettarci un pò ma sembra non digerirla stà path!
NapalM
Devi mettere il doppio \ e credo che tu debba usare i nomi corti per le directory...
Ad esempio :
sprintf(cmd, "C:\\Progra~1\\Intern~1\\iexplore.exe http://%s/Forum/index.php?s=", str1);
Originariamente inviato da cionci 
[B]Devi mettere il doppio \ e credo che tu debba usare i nomi corti per le directory...
Ad esempio :
sprintf(cmd, "C:\Progra~1\Intern~1\iexplore.exe http://%s/Forum/index.php?s=", str1); 
Ti dovrebbero fare un monumento cionci..adesso funzia alla grande..... grazie mille....grazie ma grazie tanto davvero.:)
NapalM
Originariamente inviato da Napalm 
[B]Ti dovrebbero fare un monumento cionci..adesso funzia alla grande..... grazie mille....grazie ma grazie tanto davvero.:)
Figurati...è stato un piacere ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.