nikolakisgr Δημοσ. 19 Μαΐου 2008 Δημοσ. 19 Μαΐου 2008 Καλησπέρα, Προσπαθώ να γράψω έναν auto updater σε C για μια εφαρμογή windows που θα λειτουργεί ως εξής: θα υπάρχει σε κάποιον web server η τελευταία version της εφαμοργής, για παράδειγμα εάν η εφαρμογή αποτελείτε από 2 αρχεία main.exe και lib.dll στον web server θα υπάρχουν οι τελευταίες version μαζί με ένα text αρχείο που θα περιέχει το checksum (md5/sha1 file hash) των αρχείων. Πχ. url: http://www.myapplicationupdater.gr/checksum.txt ------------------------------------------------------ main.exe 9e107d9d372bb6826bd81d3542a419d6 lib.dll 8e107d9d372bb6826ad81db542a419d9 Ένα παρόμοιο αρχείο θα υπάρχει και τοπικά στον client με τα checksum των αρχείων της working version. Όταν τρέχει ο updater στον client θα ελένχει εάν τα τοπικά file hashes είναι τα ίδια με αυτά στον web server. Εάν δεν είναι θα ξανακατεβάζει τα αρχεία που έχουν διαφορετικό hash. Οι ερωτήσεις μου είναι οι εξής: - Υπάρχουν έτοιμες function στο windows api που να παίρουν σαν είσοδο ένα file name (ή HANDLE) και να επιστρέφουν το hash του αρχείου ? (Έψαξα στο msdn αλλά βρήκα libraries μόνο για .NET) - Προτείνετε να χρησιμοποιήσω τις συναρτήσεις WinHTTP για communication και file transfer από τον web server ή κατευθείαν WinSock ? (Εκτός εάν υπάρχει και κάποιο άλλο έτοιμο library) Οποιεσδήποτε άλλες συμβουλές είναι ευπρόσδεκτες. Ευχαριστώ για τον χρόνο σας.
ntaryl Δημοσ. 19 Μαΐου 2008 Δημοσ. 19 Μαΐου 2008 καλησπερα Φιλε μου τσεκαρισε το παρακατω συνδεσμο http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=8078&lngWId=3 καλο βραδυ
Directx Δημοσ. 20 Μαΐου 2008 Δημοσ. 20 Μαΐου 2008 - Υπάρχουν έτοιμες function στο windows api που να παίρουν σαν είσοδο ένα file name (ή HANDLE) και να επιστρέφουν το hash του αρχείου ? (Έψαξα στο msdn αλλά βρήκα libraries μόνο για .NET) Υπάρχουν οι ρουτίνες Κρυπτογράφησης (Cryptography API) όπως η CryptCreateHash ή η CryptHashData κτλ. αλλά η χρήση τους είναι λίγο πιο απαιτητική από ένα απλό file HANDLE -> Hash. - Προτείνετε να χρησιμοποιήσω τις συναρτήσεις WinHTTP για communication και file transfer από τον web server ή κατευθείαν WinSock ? (Εκτός εάν υπάρχει και κάποιο άλλο έτοιμο library) Όχι, προτείνω να ασχοληθείς με τις ρουτίνες WinINet (InternetOpen, InternetReadFile κτλ.) καλύτερα.
ntaryl Δημοσ. 20 Μαΐου 2008 Δημοσ. 20 Μαΐου 2008 Καλησπερα Πολυ σωστα ο φιλος Directx μιλησε για το Wininet. απλα κανε αποθηκευση ενα εγραφο κειμενου με την εκδοση της εφαρμογης σε ενα Server απο εκει και περα η εφαρμογη ελεγχει κατα καποια χρονικα διαστηματα που εχει ορισει ο κατασκευαστης της η ο καθε χρηστης της για νεα εκδοση .ο ελεγχος γινεται με το wininet και αν βρεθει στο server νεα εκδοση τοτε την κατεβαζει . καλο απογευμα
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.