Jaco Δημοσιεύτηκε Δεκέμβριος 17, 2007 #1 Κοινοποίηση Δημοσιεύτηκε Δεκέμβριος 17, 2007 Τελευταία version v.1.0 (18/12/07) Update 18/12/07 Τελικά προστέθηκε και η λειτουργία να ελέγχονται και τα processes του desktop... Αφού συνδεθείτε τότε στο tab των Processes πατάτε το κουμπί "Get Running Processes" και το PDA κατεβάζει τα ενεργά processes του desktop εκείνη την στιγμή... Κάνοντας uncheck το process που θέλετε τότε κλείνει το πρόγραμμα του desktop... Για να ανανεώσετε τα processes τότε ξαναπατάτε το πλήκτρο... Τα processes κλείνουν ακαριαία χωρίς να προειδοποιεί στο desktop... όταν το process του desktop κλείσει τότε το pda ειδοποιεί... ακολουθούν δυο εικόνες... Επίσης πλέον υπάρχει ένας ενιαίος installer και για το desktop και για το pda... Το αρχείο βρίσκεται ΕΔΩ 17/12/07 Επειδή αρκετές φορές ενώ έτρεχα ένα παιχνίδι ή ένα πρόγραμμα το οποίο ήταν direct 3D ή κάτι παρόμοιο και δεν είχα πρόσβαση στο desktop , ήθελα να κλείσω κάποιο service ή process των windows, η μοναδική λύση ήταν να πατήσω Alt+Ctrl+Del ή Alt+Tab να βγω στα windows και μετά να κλείσω το process ή τρέχοντας τα services.msc να κλείσω το service από εκεί... αυτή η διαδικασία δεν είναι ότι καλύτερο γιατί εκείνη την στιγμή που τα windows προσπαθούν να περάσουν το process, του παιχνιδιού για παράδειγμα, στο background και να βγουν στο desktop πολλά μπορούν να συμβούν και το πρόγραμμα να κρεμάσει ή ακόμα και να παγώσουν τα windows αν τα threads του process δεν αφήνουν την εφαρμογή να πάει στο background... έτσι χάνονται όλα τα δεδομένα από την μνήμη του πρόγραμματος που τρέχει εκείνη την στιγμή... όποτε έχοντας το pda να με κοιτά με γουρλωμένα τα μάτια έφτιαξα τελικά ένα πρόγραμμα για το pda το οποίο κλείνει τα services (για την ώρα αργότερα και τα processes) από ένα οποιοδήποτε υπολογιστή που βρίσκεται στο τοπικό δίκτυο... φυσικά το pda πρέπει να έχει πρόσβαση μέσω wireless ή usb στο τοπικό δίκτυο... Η εφαρμογή χωρίζεται σε δυο μέρη. Ένα πρόγραμμα τρέχει στο desktop το οποίο ουσιαστικά είναι ένας server ο οποίος έχει πρόσβαση στα services και τα process του desktop χρησιμοποιώντας τα API των windows... από εκεί και πέρα το pda συνδέεται σαν client στον server και ζητά τα services/processes του υπολογιστή και τα βγάζει σε μια λίστα ανάλογα με το αν είναι ενεργά, ανενεργά ή και τα δυο... οπότε από το pda μπορεί κανείς να ενεργοποιήσει ή να απενεργοποιήσει τα services που είναι εγκατεστημένα στα windows του desktop χωρίς να χρειάζεται να έχει πρόσβαση στο desktop... αυτό γίνεται από το pda/client στέλνοντας εντολές στον server να κλείσει αυτός τα services και τα processes... Ένα παράδειγμα της εφαρμογής είναι αν θέλει κάποιος να τρέξει ένα παιχνίδι ή benchmark και να δοκιμάσει την αλλαγή των επιδόσεων του παιχνιδιού σε συνάρτηση με τα services που τρέχουν στο background... τότε ενώ είναι σε D3D mode και δεν έχει πρόσβαση στο desktop μπορεί να πειραματιστεί με τα services... μόλις βρω λίγο χρόνο θα ενσωματώσω να μπορεί το pda να κάνει kill και τα processes που τρέχουν... από την πλευρά του server είναι έτοιμο και μένει μόνο να περάσω και την λειτουργία στο πρόγραμμα του pda... Ακόμα υπάρχουν κάποια bugs στο software του pda και το κυριότερο είναι στο flow control του tcp/ip αλλά θα διορθωθεί λίαν συντόμως... επειδή στο .net framework το tcp/ip δεν είναι event based, έπρεπε να γράψω ένα multi-threading tcp flow control και ορισμένες φορές δεν τερματίζονται όλα τα threads όπως πρέπει, αλλά αυτό δεν είναι πρόβλημα τουλάχιστον για αρχή... το πρόβλημα θα διορθωθεί σύντομα... Από την πλευρά του desktop δεν υπάρχει κάποιο γνωστό σε μένα πρόβλημα, αλλά αν βρει κάποιος κάτι ας μου το πει να το διορθώσω... Αρχικά κατεβάστε τo αρχείο από εδώ... Το αρχείο έχει δυο φακέλους... ο ένας είναι ο φάκελος με το πρόγραμμα για το desktop και ο άλλος για το pda... κάνετε αντίστοιχα paste τον φάκελο JPDS Desktop όπου θέλετε στο desktop και τον φάκελο JPDS Pda στο pda σας μέσο του ActiveSync πχ κάπου στην κάρτα μνήμης σας... Σε λίγες μέρες θα έχω φτιάξει πλήρες installer που θα τα κάνει αυτόματα... καλό είναι να εγκαταστήσετε τα vbRuntimes στο desktop και το .net compact framework στο pda... Ύστερα τρέχετε στο desktop το αρχείο JPDS.exe και λογικά θα πρέπει να εμφανιστεί το παρακάτω παράθυρο στο οποίο πατάτε το Start Monitoring... Έτσι το πρόγραμμα σκανάρει τα services του υπολογιστή... επίσης σας δείχνει την ip στην οποία θα πρέπει να συνδεθεί το pda για να ξεκινήσει η επικοινωνία... Στον ίδιο φάκελο υπάρχει το crc16.dll το οποίο απλά δημιουργεί τα checksums για την επικοινωνία του tcp/ip (στο pda τo ξαναέγραψα και το ενσωμάτωσα στο source code γιατί το dll αυτό είναι μόνο για x86 και δεν κάνει compile σε ARMv4 που υποστηρίζουν τα pda)... Από την πλευρά του pda τρέχετε το αρχείο JacoServices.exe και εμφανίζεται η παρακάτω οθόνη (αν δεν υπάρχει κάποιο πρόβλημα)... Εφόσον έχετε τρέξει το πρόγραμμα στο desktop, πατάτε στο pda το tab που γράφει Server εκεί εμφανίζεται το παρακάτω παράθυρο... Εδώ δίνεται την IP διεύθυνση του υπολογιστή που τρέχει το JPDS.exe... την πόρτα αφήστε την ως έχει... Το Retrieve Data Every είναι για τα processes τα οποία ακόμα δεν τα έχω ενεργοποιήσει και αυτό που κάνει είναι να ανανεώνει αυτόματα στην οθόνη του pda, στο tab των processes, περιοδικά στον χρόνο που του έχουμε ορίσει την κατάσταση των processes του desktop... Στην συνέχεια πατάτε στο pda Desktop -> Connect και το pda προσπαθεί να συνδεθεί στον υπολογιστή... όταν τα καταφέρει θα σας δείξει την παρακάτω εικόνα... αν διαμαρτυρηθεί το firewall του desktop κάντε το allow... Εννοείται ότι το pda θα πρέπει ήδη να έχει συνδεθεί στο τοπικό δίκτυο... Στην συνέχεια πατήστε το tab των Services... Εδώ έχετε τρεις επιλογές... η πρώτη είναι να πάρετε όλα τα services του desktop είτε είναι ενεργά, είτε ανενεργά ή και τα δύο, πατώντας αντίστοιχα τα κουμπιά ACTIVE, INACTIVE και ALL... Αν για παράδειγμα πατήσετε ALL, τότε το pda αρχίζει και κατεβάζει όλα τα services του υπολογιστή και μόλις τελειώσει σας δείχνει το παρακάτω μήνυμα, το οποίο θα πρέπει να το περιμένετε πριν κάνετε κάτι άλλο... Παρακάτω ακολουθούν κάποια screenshots από όλες τις περιπτώσεις, ALL, ACTIVE, INACTIVE του υπολογιστή μου... ALL ACTIVE INACTIVE Δίπλα από κάθε service είναι η κατάστασή του... αν και τα services έχουν πολλές καταστάσεις (πχ stopped, running, pause, pending start, pending stop κτλ) αυτές που μας ενδιαφέρουν είναι 2, τα running και stopped φυσικά... Τα checkboxes δίπλα από κάθε service είναι checked όταν το service στο desktop είναι active και unchecked όταν είναι stopped... από το checkbox λοιπόν μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε ένα service κάνοντας απλά click στο αντίστοιχο checkbox... Μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε ταυτόχρονα πολλά services, αλλά δεν πρέπει να αλλάξουμε view (ALL, ACTIVE, INACTIVE) μέχρι να πάρουμε τηn απάντηση από το desktop (περιορισμός για διάφορους λόγους στο πρόγραμμα του desktop)... Αν για παράδειγμα είμαστε στο view ACTIVE και απενεργοποιήσουμε το service ALG (Application Level Gateway), τότε κάνουμε uncheck το checkbox δίπλα από το ALG και όταν το desktop σταματήσει το service μας ενημερώνει με το παρακάτω μήνυμα... Αν το ξαναενεργοποιήσουμε τότε όταν τρέξει το service μας ενημερώνει ξανά... Αν είμαστε στο view ACTIVE και απενεργοποιήσουμε κάποια services, τότε αν ξαναπατήσουμε το κουμπί ACTIVE και κάνει refresh το pda από το desktop, τότε τα services αυτά δεν θα εμφανίζονται πλέον στο ACTIVE view αλλά στο INACTIVE view... Όσοι έχουν pda ας το δοκιμάσουν και ας μου πουν τυχών προβλήματα να τα διορθώσω... Επειδή το software του pda είναι ακόμα αρκετά buggy γιατί δεν έχω ασχοληθεί ακόμα να «πιάνω» όλα τα exception errors, αν κρεμάσει κλείστε το πρόγραμμα και περιμένετε λίγο μέχρι να κάνει abort κάποιο thread που έχει ξεφύγει (σας ενημερώνει το pda όταν γίνει αυτό) και ξανατρέξτε το πρόγραμμα... Γενικά προσπαθήστε να ακολουθήσετε την διαδικασία που περιέγραψα πιο πάνω για να έχετε λιγότερα προβλήματα... Οι δοκιμές μου μέχρι στιγμής έχουν γίνει σε Windows XP (λογικά δουλεύει και σε Vista) και σε Windows Mobile 5 (λογικά πάλι παίζει και στα WM6)... Link to comment Share on other sites More sharing options...
TifoziF1 Δεκέμβριος 17, 2007 #2 Κοινοποίηση Δεκέμβριος 17, 2007 για την ιδέα και την υλοποίηση Link to comment Share on other sites More sharing options...
jpavly Δεκέμβριος 17, 2007 #3 Κοινοποίηση Δεκέμβριος 17, 2007 ’ξιος! Thanks Sticky Link to comment Share on other sites More sharing options...
Jaco Δεκέμβριος 17, 2007 Author #4 Κοινοποίηση Δεκέμβριος 17, 2007 Ευχαριστώ Θέλω beta testers να το τελειοποιήσω... Link to comment Share on other sites More sharing options...
jogi Δεκέμβριος 17, 2007 #5 Κοινοποίηση Δεκέμβριος 17, 2007 Πολυ καλη ιδεα. Αλλα δεν ειμαι και πολύ χαρούμενος με το concept να ανοιγω άλλη μια πόρτα στο PC και μάλιστα σε προγραμμα που εχει admin access.Ισως μια ιδεα για βελτίωση ειναι να κάνεις route την πόρτα 7777 κάτω απο SSH ή να συνδέεσαι κατευθείαν σε SSH.Υλοποιώ κάτι παρόμοιο στο mac μου αυτήν την περίοδο, μόνο που εκει δεν θα εχω ενα .exe για να ελεγχω τον υπολογιστή απο το κινητό αλλα webserver που θα συνδέετε με το mac/linux. Η επικοινωνία μέσω web-server και Mac γινεται μέσω SSH και ο webserver εχει την δυνατότητα να τρέχει shell + scp στον Mac (full ελεγχο σε εφαρμογές, αρχεία, συσκευές). Link to comment Share on other sites More sharing options...
Jaco Δεκέμβριος 17, 2007 Author #6 Κοινοποίηση Δεκέμβριος 17, 2007 Το ssh είναι πολύ πέρα από την εφαρμογή... και των γνώσεων μου προγραμματιστικά... Ωστόσο υπάρχουν δυο λύσεις σε αυτό... μία είναι να κάνεις ssh tunneling και από την πλευρά του pda και από την πλευρά του pc... υπάρχει το pocketPutty και το Putty αντίστοιχα που μπορούν να κάνουν το tunneling και από εκεί και πέρα είναι να μιλάνε ως έχουν οι δυο εφαρμογές, χωρίς να αλλάξει κάτι... δεύτερον η χρήση του προορίζεται καθαρά για τοπικό δίκτυο... οπότε οι πόρτες εξωτερικά κόβονται ούτως ή άλλως από τον router, οπότε μόνο από το εσωτερικό δίκτυο μπορείς να έχεις πρόσβαση και πάλι με ένα firewall εμποδίζεις οποιαδήποτε άλλη εφαρμογή να έχει πρόσβαση στην πόρτα αυτή πέρα από το πρόγραμμα... Link to comment Share on other sites More sharing options...
jogi Δεκέμβριος 17, 2007 #7 Κοινοποίηση Δεκέμβριος 17, 2007 Συμφωνώ... Στην παρούσα φάση του σχεδιασμού σου θα σου προέτρεπα να εφαρμόσεις tunneling. Ακόμα και αν δεν προορίζεται για χρήση εκτός lan, καλό ειναι να εχουμε την ασφάλεια πάντα στο μυαλό μας (ποτε δεν ξέρεις αν θα μπουκάρει κανενας hacker στο lan σου ) ΥΓ. Στην περίπτωση αυτής της λύσης θα πρεπει η εφαρμογή σου στον Η./Υ να επιτρέπει σύνδεση μόνο απο τον localhost/ 127.0.0.1 και να κάνει reject αλλες IP. Link to comment Share on other sites More sharing options...
Jaco Δεκέμβριος 18, 2007 Author #8 Κοινοποίηση Δεκέμβριος 18, 2007 Update 18/12/07 Τελικά προστέθηκε και η λειτουργία να ελέγχονται και τα processes του desktop... Αφού συνδεθείτε τότε στο tab των Processes πατάτε το κουμπί "Get Running Processes" και το PDA κατεβάζει τα ενεργά processes του desktop εκείνη την στιγμή... Κάνοντας uncheck το process που θέλετε τότε κλείνει το πρόγραμμα του desktop... Για να ανανεώσετε τα processes τότε ξαναπατάτε το πλήκτρο... Τα processes κλείνουν ακαριαία χωρίς να προειδοποιεί στο desktop... όταν το process του desktop κλείσει τότε το pda ειδοποιεί... ακολουθούν δυο εικόνες... Επίσης πλέον υπάρχει ένας ενιαίος installer και για το desktop και για το pda... Το αρχείο βρίσκεται ΕΔΩ Για ότι καινούργιο ενημερώνω και το πρώτο post... Για όποιο πρόβλημα πείτε μου, ακόμα είμαι σε beta version... Link to comment Share on other sites More sharing options...
deninho Ιανουάριος 14, 2009 #9 Κοινοποίηση Ιανουάριος 14, 2009 Ενδιαφέρουσα εφαρμογή Jaco! Μπράβο πρόβλημα νούμερο 1: πήγα να κλείσω τον windows media player κι έφαγε φρίκη (έκλεισε ο client). Ακριβώς πριν πήγα να κλείσω ένα άλλο process (pnkbstra.exe - punk buster) και δεν έκανε τπτ (ούτε έκλεισε το process ούτε έβγαλε κάποιο μήνυμα). Τη δεύτερη φορά που δοκίμασα να κλείσω το wmplayer έκλεισε κανονικά Link to comment Share on other sites More sharing options...
Jaco Ιανουάριος 14, 2009 Author #10 Κοινοποίηση Ιανουάριος 14, 2009 Ευχαριστώ deninho... Πρέπει να υπάρχουν κάποια bugs σίγουρα, δεν θυμάμαι τον κώδικα, αλλά αν του ρίξω μια ματιά ίσως μπορώ να του κάνω κάποιες βελτιώσεις... Αν το κάνει σπάνια, μια στο τόσο, τότε δεν πειράζει, αν όμως είναι επαναλαμβανόμενο τότε να το κοιτάξω... Άσχετο, αλλά είδα την ημερομηνία του προγράμματος και έκλεισε 1 χρόνο ζωής, είχε γενέθλια πριν ένα μήνα... Link to comment Share on other sites More sharing options...
Kenz0 Ιανουάριος 31, 2009 #11 Κοινοποίηση Ιανουάριος 31, 2009 μπραβο πολυ καλη παρουσιαση Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.