Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά σας παιδιά έχω την Visual Basic 2010 και

θέλω να φτιάξω μια εφαρμογή που θα τρέχω Custom Commands.

Έχω βάλει ένα TextBox1 και ένα κουμπί Execute.

 

O κώδικας που τρέχει ένα Proccess είναι αυτός

>Proccess.start(textbox1.text)

 

Θέλω όμως όταν κάποιος εισάγει ένα άκυρο όνομα

να καταλαβαίνει αν το Proccess είναι έγκυρο.

 

Σας αποστέλνω μαζί όλο το Project

Δημοσ.

Γειά σας παιδιά έχω την Visual Basic 2010 και

θέλω να φτιάξω μια εφαρμογή που θα τρέχω Custom Commands.

Έχω βάλει ένα TextBox1 και ένα κουμπί Execute.

 

O κώδικας που τρέχει ένα Proccess είναι αυτός

>Proccess.start(textbox1.text)

 

Θέλω όμως όταν κάποιος εισάγει ένα άκυρο όνομα

να καταλαβαίνει αν το Proccess είναι έγκυρο.

 

Σας αποστέλνω μαζί όλο το Project

 

Δεν είναι τόσο απλό αυτό που ζητάς... Μία λύση θα ήταν να τσεκάρεις αν το εκτελέσιμο αρχείο υπάρχει στο δίσκο αλλά αν κάποιος θέλει να εκτελέσει εσωτερική εντολή του shell (πχ την type) τι θα κάνεις?

Δημοσ.

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

Αλλιώς, όπως είπε ο hawk παραπάνω, να ελέγχεις αν υπάρχει το εκτελεσιμο στον δίσκο, αλλά αυτό δεν ισχύει για εσωτερικές εντολές.

Δημοσ.

Γειά σας παιδιά έχω την Visual Basic 2010 και

θέλω να φτιάξω μια εφαρμογή που θα τρέχω Custom Commands.

Έχω βάλει ένα TextBox1 και ένα κουμπί Execute.

 

O κώδικας που τρέχει ένα Proccess είναι αυτός

>Proccess.start(textbox1.text)

 

Θέλω όμως όταν κάποιος εισάγει ένα άκυρο όνομα

να καταλαβαίνει αν το Proccess είναι έγκυρο.

 

Σας αποστέλνω μαζί όλο το Project

 

Αν κατάλαβα καλά αυτό που ζητάς:

 

Θα σου πρότεινα να βάλεις την Process.Start μέσα σε ένα try ... catch block, και να διαχειριστείς τα Exceptions. Αν είναι εντολή του συστήματος και όντως γυρίσει κάποιο Process, H Process.Start θα γυρίσει κάποιο Handle, για το process που μόλις ξεκίνησε, αν του ορίσεις ως παράμετρο μια ProcessStartInfo. Ειδάλλως δεν θα γυρίσει τίποτα και προφανώς θα σκάσει με κάποιο exception.

 

Δες εδώ μερικά παραδείγματα, για το πως μπορεις να ορίσεις την ProcessStartInfo().

Δημοσ.

try

{

Proccess.start(textbox1.text)

}

Catch(Exception error)

{

Messagebox.Show("Σφάλμα: "+error.ToString());

}

 

 

Μπορείς στο catch να μην βάλεις και τίποτα οπότε εάν είναι invalid το proccess που "έδωσες" θα συνεχίζει τη ροή της συνάρτησης.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...