Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

Îåêßíçóå áðü ôï ìÝëïò spiliot. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 06-03-2008, 23:03. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  18-02-2008, 03:11 40254

    Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

    Έχω ένα πρόβλημα που μοιάζει λίγο με τις περιπέτειες του Ζαχαρία... Κάνω μια εισαγωγή για να καταλάβετε τι περνάω αλλά αν θέλετε να δείτε κατ' ευθείαν το πρόβλημα κάνετε skip μέχρι λίγο παρακάτω...

    Σε μια (μικρή σχετικά) επιχείρηση που έχω αναλάβει την υποστήριξη (αποφράδα η στιγμή) υπάρχει ένας server που τρέχει διάφορες εφαρμογές (ως εδώ καλά). Η επιχείρηση αυτή αποτελεί "ανεξάρτητο" τμήμα μιας πολυεθνικής. Ακριβώς τώρα το τι κάνει και πως και τι σχέση έχει με την μεγάλη νομίζω δεν το ξέρει κανείς γιατί διακρίνεται από φιλοσοφία "τρία κιλά κώδικα ΑΕ". Και πορτοκάλια να τους πουν να πουλάνε με ικανοποιητικό κερδος θα το κάνουν.

    Το πρόβλημα είναι ότι υπάρχουν κάποιες εφαρμογές που τρέχουν στον σέρβερ και επικοινωνούν με την εταιρία στην αμερική και με κάποια υποκαταστήματα για να στείλουν δεδομένα. Άλλες είναι windows, μία είναι DOS και γενικά γίνεται ο χαμός από dos batch commands και ένα σωρό άλλα προγραμματάκια (κάπου είδα και clipper που φορμάρει δεδομένα αρχείου εξόδου!) που κανείς δεν ξέρει γιατί έχουν μπει, αφού ο κάθε ένας που ασχολήθηκε δεν έγραφε κάπου τι κάνει, αλλά περιέργως πως λειτουργούν. Αν κάποιος τους έλεγε ότι πρέπει να βγάλουν τα ρούχα τους πριν πατήσουν κλικ για να ξεκινήσει το backup θα το έκαναν και θα απαιτούσαν και από μένα να το κάνω τώρα.

    Το κύριό μου πρόβλημα τώρα είναι ότι υπάρχει μια εφαρμογή η οποία στέλνει κάποια δεδομένα στο εξωτερικό και η οποία στον αρχικό έλεγχο που κάνει θέλει η ώρα του συστήματος να είναι ΙΔΙΑ με την ώρα του σέρβερ στην αμερική +- κάποια λεπτά τα οποία από δοκιμές που έκανα πρέπει να είναι γύρω στα 30. Δεν λαμβάνει όμως υπ' όψην το timezone και έτσι αν εδώ έχουμε 3 το μεσημέρι πρέπει να αλλαχθεί η ώρα σε πχ 5 το πρωί για να ξεκινήσει η εφαρμογή και να μη βγάλει μήνυμα λάθους και να ξανααλλαχθεί σε 3 στην συνέχεια. Αν η ώρα αλλάξει όσο δουλεύει η εφαρμογή δεν υπάρχει πρόβλημα γιατί τον έλεγχο τον κάνει μόνο στην αρχή. Η πιθανότητα να αλλάξει το πρόγραμμα είναι όση ο ζαχαρίας να πάρει αύξηση.

    Κάθε φορά που πρέπει να σταλούν δεδομένα (γιατί δεν στέλνονται και τακτικά) θα πρέπει να πάω εγώ στον σέρβερ, να αλλάξω την ώρα να ανοίξω την εφαρμογή και μετά να ξαναλλάξω την ώρα. Όπως καταλαβαίνετε αυτό απαιτεί την φυσική μου παρουσία κάθε φορά που πρέπει να γίνεται η ενημέρωση γιατί ακόμα και αυτό αρνούνται να το κάνουν μόνοι τους ("εμένα πληρώνουν για να έχω την ευθύνη").

    Τα λεφτά που παίρνω για να το κάνω αυτό δεν αξίζουν, αλλά αν μπορούσα να φτιάξω κάποιο πρόγραμμα που να περνάει άλλη ώρα στην εφαρμογή μόνο όταν ξεκινά τότε έλυνα το πρόβλημα της φυσικής μου παρουσίας εκεί κάθε που τους καπνίσει και κερδίζω την ηρεμία μου.

    Το Πρόβλημα:
    Ψάχνω να βρω έναν τρόπο όταν ξεκινά μια εφαρμογή να της περνάω άλλη ώρα από αυτή που έχει χωρίς να αλλάζω την ώρα του συστήματος γενικότερα. Ξέρω να προγραμματίζω σε vb.net αποδεκτά και είμαι διατεθιμένος να διαβάσω για να το καταφέρω, αλλά δεν ξέρω από που να ξεκινήσω. Πρέπει να κάνω intercept με κάποιον τρόπο την κλήση σε κάποια συνάρτηση από το windows api που δίνουν την ώρα; Πως μπορεί να γίνει αυτό; Μήπως υπάρχει τρόπος να αλλάξω την ώρα μόνο στο περιβάλλον που τρέχει η εφαρμογή περίπου όπως γίνεται στο virtualization; Κάποια άλλη ιδέα;

    Στην ανάγκη απλά θα φτιάξω ένα προγραμματάκι που θα αλλάζει την ώρα όλου του συστήματος, θα ξεκινά την εφαρμογή και θα την ξαναλλάζει μετά από 1-2 δευτερόλεπτα που η εφαργμογή θα έχει ανοίξει, αλλά δεν μου αρέσει και πολύ σαν ιδέα γιατί μπορεί να γίνει μπάχαλο κάτι αλλού έτσι.
  •  18-02-2008, 10:55 40276 σε απάντηση της 40254

    Απ: Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

    Μήπως αν έτρεχες αυτήν την εφαρμογή μέσα σε ένα Virtual PC; Με δικές του ρυθμίσεις μέρας και ώρας και να γίνεται auto-start μέσα στο guest OS. Με ένα shortcut του virtual machine, όταν θα ξεκινάς το virtual machine, eventually θα ξεκινά και η εφαρμογή. Διαφορετικά, σε βλέπω να αρχίζεις να διαβάζεις περί cracking... 


    Vir prudens non contra ventum mingit
  •  18-02-2008, 14:24 40287 σε απάντηση της 40254

    Απ: Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

    Γιατί δεν φτιάχνεις εναν wrapper ο οποίος θα ξεκινά την εφαρμογή ΑΦΟΥ έχει αλλάξει την ώρα και θα κάνει monitor μέχρι να κάνει Exit, ώστε να την ξαναλλάξει;


    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  19-02-2008, 01:01 40302 σε απάντηση της 40287

    Απ: Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

    Το virtual pc το είχα σκεφτεί και εγώ, αλλά δεν θέλω να φορτώσω τον server με κάτι ακόμα.

    Ο wrapper μου ακούγεται καλύτερη ιδέα και πάνω κάτω αυτό είχα στο μυαλό μου... Δεν ξέρω όμως πως να το φτιάξω και πως να ψάξω περισσότερες πληροφορίες. Με αυτή την λύση η ώρα θα αλλάζει σε όλο το σύστημα ή μόνο στο περιβάλλον της εφαρμογής;

  •  19-02-2008, 12:47 40308 σε απάντηση της 40302

    Απ: Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

    Θα αλλάζει σε όλο το σύστημα.
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  06-03-2008, 20:40 40758 σε απάντηση της 40308

    Απ: Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

    Κατ' αρχήν έστω και λίγο καθυστερημένα να σας ευχαριστήσω όλους για τις απαντήσεις.

    Βρήκα ένα προγραμματάκι που μάλλον κάνει ακριβώς ότι θέλω, το RunAsDate από εδώ http://www.nirsoft.net

    Τρέχει και σε command line, κάνει capture τα api's και είναι και freeware οπότε λογικά δεν χρειάζεται να κάνω κάτι άλλο εγώ :-)

    Δεν το δοκίμασα ακόμα, αλλά αν δεν δουλέψει και χρειαστεί να φτιάξω δικό μου τότε θα κάνω post τον κώδικα σε vb.net εδώ για future reference.

    Ευχαριστώ και πάλι
  •  06-03-2008, 23:03 40762 σε απάντηση της 40758

    Απ: Αλλαγή ώρας μόνο όταν ξεκινά μια εφαρμογή

    Ο τρόπος με τον οποίο δουλεύει το Run as Date φαίνεται να είναι και ο μόνος που μπορεί να κάνει αυτό που θες. Αν δεν δουλέψει όμως, δεν χρειάζεται να γράψεις κώδικα. Αρκεί να γράψεις ένα powershell script το οποίο θα αλλάζει το timezone πριν και μετά την εκτέλεση του προγράμματος σου. Επίσης, μέχρι τα XP μπορείς να χρησιμοποιήσεις και την εντολή Control.exe TIMEDATE.CPL,,/Z Pacific Standard Time, η οποία ουσιαστικά εκτελεί το control applet που ρυθμίζει την ώρα.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems