Automatisation ftp

Signaler
Messages postés
13
Date d'inscription
mercredi 29 novembre 2006
Statut
Membre
Dernière intervention
14 mai 2009
-
Messages postés
51
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
13 mars 2011
-
Voila, sa fait un peu bricolage, mais c'est pour me depanner, je voudrait automatiser l'envoi de fichier type texte (site web) sur un serveur ftp tous les quart d'heures, une sorte de mise a jour automatique avec recuperation d'un fichier LOCK définissant qui est sur quel fichier.

Ceci dit, j'ai fait deux trois test et j'arive a cacher la console et la fair aparaitre par raccourcis clavier mais quand elle est cachée et que j'utilise la fonctions: "system("ftp -s:C:\ftp.txt");" la fenetreconsole réapparait et c'est assez embêtant surtout quand je programme, une solution?

1 réponse

Messages postés
51
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
13 mars 2011
1
humm... moi j'aurais utilise CreateProcess()
j'ai ecrit un bout de code qui marche pas trop mal pour ce que tu veux faire, enfin je crois
Les infos a envoyer sont contenu dans C:\test.in.txt et celle recu sont dans C:\test.out.txt
Apres tu peux toujours faire de l'IPC en utilisant des pipes et pas des CreateFiles() pour envoyer et recevoir tes donnes, mais je ne sais pas trop comment on fait (j'ai pas trop chercher a vrai dire, si tu comprends vraiement rien, je pourrais regarder)

v'la l'code, en esperant qu'il t'aide

int main()
{
    SECURITY_ATTRIBUTES sa;
    STARTUPINFO         si;
    PROCESS_INFORMATION pi;
    HANDLE              hStdIn;
    HANDLE              hStdOut;
    BOOL                bRes;

    sa.nLength              =   sizeof  (   SECURITY_ATTRIBUTES);
    sa.lpSecurityDescriptor =   NULL;
    sa.bInheritHandle       =   TRUE;

    DWORD dwFlags =       FILE_ATTRIBUTE_NORMAL;

    hStdIn =   CreateFile  (   "c:\\test.in.txt",
                                GENERIC_READ,
                                FILE_SHARE_READ | FILE_SHARE_WRITE,
                                &sa,
                                OPEN_ALWAYS,
                                dwFlags,
                                NULL
                            );

    if( hStdIn == INVALID_HANDLE_VALUE )
    {
       printf( "Cannot open input file\n" );
       return EXIT_FAILURE;
    }

    hStdOut =   CreateFile  (   "c:\\test.out.txt",
                                GENERIC_WRITE,
                                FILE_SHARE_READ | FILE_SHARE_WRITE,
                                &sa,
                                CREATE_ALWAYS,
                                dwFlags,
                                NULL
                            );

    if( hStdOut == INVALID_HANDLE_VALUE )
    {
       printf( "Cannot open output file\n" );
       return EXIT_FAILURE;
    }

    ZeroMemory  (   &si,    sizeof  (   STARTUPINFO));

    si.cb           =   sizeof  (   STARTUPINFO);
    si.dwFlags      =   STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    si.wShowWindow  =   SW_HIDE;
    si.hStdInput    =   hStdIn;
    si.hStdOutput   =   hStdOut;
    si.hStdError    =   NULL;

    bRes    =   CreateProcess   (   "C:\\Windows\\System32\\ftp.exe",
                                    "ftp.exe ftp.monsite.fr",
                                    NULL,
                                    NULL,
                                    TRUE,
                                    NORMAL_PRIORITY_CLASS,
                                    GetEnvironmentStrings   (),
                                    "C:\",
                                    &si,
                                    &pi
                                );

    if(bRes)
        printf("process sucessfully launched\n");
    else printf("error launching process\n");

    WaitForSingleObject (   pi.hProcess,    INFINITE);

    system("PAUSE");
    return 0;
}