none
Programma spegnimento Pc RRS feed

  • Domanda

  • Hi people :D allora come detto nell'altro post ho deciso di fare un programma che spenga il pc dopo un tot di minuti che decido io, quindi per spegnerlo ho messo questo codice
    Process Spegni = new Process();
    Spegni.StartInfo.Arguments = "s- t- 00";
    Spegni.StartInfo.FileName = "C:\\Windows\\System32\\shutdown.exe";
    Spegni.Start();
    


    Non l'ho ancora provato tale codice ma lo proverò al più presto.

    La mia domanda è: come faccio a fare un textbox dove inserire i minuti prima dello spegnimento? Cioè io avevo l'idea di fare questa textbox che quando inserisco i minuti prima dello spegnimento vada a modificare i due zeri (00) che sono nel codice e li modifichi nel numero immesso in essa! Come potrei fare?

    giovedì 19 gennaio 2012 19:17

Risposte

Tutte le risposte

  • Ciao Andrea1980345,

    Hi people :D allora come detto nell'altro post ho deciso di fare un programma che spenga il pc dopo un tot di minuti che decido io, quindi per spegnerlo ho messo questo codice
    Process Spegni = new Process();
    Spegni.StartInfo.Arguments = "s- t- 00";
    Spegni.StartInfo.FileName = "C:\\Windows\\System32\\shutdown.exe";
    Spegni.Start();
    


    Non l'ho ancora provato tale codice ma lo proverò al più presto.

    La mia domanda è: come faccio a fare un textbox dove inserire i minuti prima dello spegnimento? Cioè io avevo l'idea di fare questa textbox che quando inserisco i minuti prima dello spegnimento vada a modificare i due zeri (00) che sono nel codice e li modifichi nel numero immesso in essa! Come potrei fare?

    dovresti modificare questa riga di codice Spegni.StartInfo.Arguments = "s- t- 00"; concatenando i due zeri all'interno della textbox

    Spegni.StartInfo.Arguments = "s- t-" + textbox1.text; inoltre devi poi gestire la validazione e non permettere all'utente di inserire dei caratteri non validi , lo puoi eseguire mediante gli eventi keyDown e KeyPress del controllo TetxBox.

    Aggiungo anche questo thread  che potrebbe darti qualche altro esempio.

    Ciao.


    giovedì 19 gennaio 2012 19:26
  • Invece della TextBox, potresti usare un controllo di tipo NumericUpDown: http://msdn.microsoft.com/it-it/library/system.windows.forms.numericupdown.aspx.

    In questo modo, la selezione dei valori è più semplice (il controllo mette a disposizione i classici tasti per aumentare/diminuire il valore). Inoltre, esso ti permette di inserire solo valori numerici, quindi non hai bisogno di effettuare il controllo di validità dell'input.

    D'altra parte, validare l'input dell'utente, quindi assicurarsi che il programma non vada in errore, anche se l'utente inserisce valori non consentiti, è buon esercizio di programmazione, quindi ti consiglio di fare qualche prova anche in questo senso.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    • Contrassegnato come risposta Irina Turcu giovedì 26 gennaio 2012 17:57
    giovedì 19 gennaio 2012 19:49
    Moderatore
  • Ragazzi ho deciso di farlo con un NumericUpDown al posto della text box però ho un problema.. Cioè nella textbox mettevo .text cioè per dire ciò che era li dentro ma per il NumericUpDown come devo mettere?
    giovedì 19 gennaio 2012 20:46
  • Ciao Andrea1980345,

    Ragazzi ho deciso di farlo con un NumericUpDown al posto della text box però ho un problema.. Cioè nella textbox mettevo .text cioè per dire ciò che era li dentro ma per il NumericUpDown come devo mettere?

       Concatenamdo il valore del controllo numeric updown al posto della textbox per cui Spegni.StartInfo.Arguments = "s- t-" + numericUpDown1.Text;

    Ciao.


    giovedì 19 gennaio 2012 20:51
  •    Concatenamdo il valore del controllo numeric updown al posto della textbox per cui Spegni.StartInfo.Arguments = "s- t-" + numericUpDown1.Text;


    Carmelo, mi permetto di precisare che il controllo NumericUpDown non espone la proprietà Text, quindi la proprietà giusta da utilizzare è Value.

    Più precisamente, poiché quest'ultima è di tipo decimal, per recuperare la stringa corrispondente è necessario richiamare su di essa il metodo ToString.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    giovedì 19 gennaio 2012 20:55
    Moderatore
  • Ciao Marco,

       Concatenamdo il valore del controllo numeric updown al posto della textbox per cui Spegni.StartInfo.Arguments = "s- t-" + numericUpDown1.Text;


    Carmelo, mi permetto di precisare che il controllo NumericUpDown non espone la proprietà Text, quindi la proprietà giusta da utilizzare è Value.

    Più precisamente, poiché quest'ultima è di tipo decimal, per recuperare la stringa corrispondente è necessario richiamare su di essa il metodo ToString.



     

    trovo strano , prima di rispondere ho provato di persona , comunque espone entrambe le proprietà  .

    http://msdn.microsoft.com/it-it/library/system.windows.forms.numericupdown_properties.aspx

    Poi spero che stiamo parlando dello stesso controllo :)

    Ciao :).


    giovedì 19 gennaio 2012 20:58
  • .text non lo trova :) .Value si :) grazie mille! Il prossimo programma che farò invece sarà per riavviare il mio modem/router :)
    giovedì 19 gennaio 2012 21:06
  • Curioso... Anch'io ho provato, ma l'IntelliSense non mi mostra la proprietà Text (passa da Tag a TextAlign), tuttavia se la uso comunque funziona...

    Neanche l'IntelliSense di Visual Basic mostra questa proprietà.

    Uso Visual Studio 2010 SP1.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    giovedì 19 gennaio 2012 21:08
    Moderatore
  • Mmmm a me me lo segna come essere direttamente se metto la proprietà Text che non mi mostra.
    giovedì 19 gennaio 2012 21:10
  • Ciao Marco ,

    Curioso... Anch'io ho provato, ma l'IntelliSense non mi mostra la proprietà Text (passa da Tag a TextAlign), tuttavia se la uso comunque funziona...

    Neanche l'IntelliSense di Visual Basic mostra questa proprietà.

    Uso Visual Studio 2010 SP1.


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva


    curioso davvero , io utilizzo VisualStudio 2010 Professional , ti posso garantire che l'intellisense trova la proprietà Text , e per prova come dicevo prima l'ho visualizzata sull'intestazione del Form.

    this.Text = numerocupdown.Text ;

    Molro strano.

    Ciao.


    giovedì 19 gennaio 2012 21:11
  • Io ho Visual Studio Ultimate. Ora sono curioso e domani in ufficio proverò anche su un PC su cui è installata la versione Premium!
    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    giovedì 19 gennaio 2012 21:15
    Moderatore
  • Io ho visual studio professional ma l'intellisense non me lo trova!
    giovedì 19 gennaio 2012 21:19
  • Ciao Marco e Andrea1980345 ,

    allego anche un .immagine :)

    E un po' sfocata ma credo comprensibile.

    Ciao


    giovedì 19 gennaio 2012 21:20
  • E questo invece è quello che vedo io :-)


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    giovedì 19 gennaio 2012 21:24
    Moderatore
  • Ciao Marco,

    E questo invece è quello che vedo io :-)


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva


    capisco , va bene sono curioso se se anche nella versione premuim vi e lo stesso difetto :).

    Ciao.


    giovedì 19 gennaio 2012 21:29
  • Te lo farò sapere domani :-P
    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    giovedì 19 gennaio 2012 21:31
    Moderatore
  • Ciao a tutti,

     

    a quanto vedo è un problema presente anche in versioni passate di VS, guardate un pò qui le due immagini alla fine della pagina :) http://code.google.com/p/mishka-demo-app/issues/detail?id=5 :)


    Carmine Punella
    Blog: Link
    giovedì 19 gennaio 2012 22:04
  • Su VS Professional 2010 la proprietà Text sul NumericUpDown non la vedo (ma per certo neanche nel 2008 Pro, dato che l'avevo usato in un paio di form), tant'è che sono sempre rimasto convinto che non esponesse Text...curiosa sta cosa :D
    Francesco Milano // .NET & SQL Server Consultant // blog // twitter
    giovedì 19 gennaio 2012 23:30
  • E neanche su Visual Studio 2010 Premium si vede :-)
    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    venerdì 20 gennaio 2012 09:54
    Moderatore
  • Cazz davvero curiosa :) comunque ragazzi il pc con quel code che avevo messo sopra non si spegne, appare solo la schermata dello shutdown cioè del cmd e scompare subito senza fare nulla... Un'aiutino?
    venerdì 20 gennaio 2012 12:53
  • Ho riguardato il comando che imposti, c'è un errorino nella riga

     

    Spegni.StartInfo.Arguments = "s- t-" + numericUpDown1.Text;
    

    Il trattino deve essere messo prima dei parametri, ovvero:

     

     

    Spegni.StartInfo.Arguments = "-s -t " + numericUpDown1.Text;

     


    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    venerdì 20 gennaio 2012 13:06
    Moderatore
  • Ok grazie dopo provo e vi faccio sapere :) comunque una curiosità allora "-s" starebbe per shutdown cioè per spegnerlo e fin qui ok ma "-t" per cosa sta?
    venerdì 20 gennaio 2012 13:24
  • -t indica dopo quanti secondi deve avvenire il comando :) 

     

    ecco a te una bella guida con i vari parametri :) http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/shutdown.mspx?mfr=true


    Carmine Punella
    Blog: Link
    • Proposto come risposta Carmine Punella martedì 24 gennaio 2012 14:47
    • Contrassegnato come risposta Irina Turcu giovedì 26 gennaio 2012 17:56
    venerdì 20 gennaio 2012 13:32
  • Ah quindi "-t 00" Time Second?
    venerdì 20 gennaio 2012 13:33
  • esegue lo shutdown.exe subito senza aspettare...se invece metti "-t 5 " viene eseguito il processo di shutdown dopo 5 secondi
    Carmine Punella
    Blog: Link
    venerdì 20 gennaio 2012 13:36
  • Esatto, in particolare con -t 00 effettui uno shutdown immediato, senza timeout.
    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    venerdì 20 gennaio 2012 13:36
    Moderatore
  • Sisi perfetto era come pensavo :)
    venerdì 20 gennaio 2012 13:38
  • Ciao a tutti,

    Sono contenta che lo scenario di Andrea sia risolto. Intanto, mi permetto di intromettermi per provare a delucidare il mistero della proprietà Text. Di seguito trovate la dichiarazione della proprietà:

    [EditorBrowsable(EditorBrowsableState.Never)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    [Bindable(false)]
    [Browsable(false)] 
    public override string Text { get; set; } 
    

     

    L’impostazione dell’attributo Browsable su false significa che esso non verrà visualizzato nella finestra delle Proprietà del controllo. Lo stesso vale per DesignerSerializationVisibility, che garantisce il fatto che il valore della proprietà non viene scritto nel metodo InitializeComponent(). EditorBrowsable è l’attributo che dice a Intellisense quando mostrare una proprietà. Nel caso della proprietà Text, questo attributo ha lo EditorBrowsableState impostato su Never, quindi non dovrà mai essere visualizzato nell’editore.

    Nel caso l’EditorBrowsableState sia impostato su Advanced, c’è la possibilità di renderlo visibile per l’Intellisense andando al menù Tools | Options | Text Editor | C# | General di Visual Studio e deselezionare il checkBox HideAdvancedMembers.

    Quindi, nel caso di Carmelo, mi stavo domandando se stai usando per caso qualche estensione dell’Intellisense, come quella del ReSharper, che potrebbe in una situazione eccezionale rendere visibili le proprietà che hanno l’attributo EditorBrowsable impostato su Never?

     


    Irina Turcu

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.

    LinkedIn

    martedì 24 gennaio 2012 14:00
  • Giusto... Guardando lo screenshot che ha mandato Carmelo, si vede proprio il menu di Resharper :-) Ecco spiegato l'arcano!
    Marco Minerva [MCPD]
    Blog: http://blogs.ugidotnet.org/marcom
    Twitter: @marcominerva
    martedì 24 gennaio 2012 14:39
    Moderatore
  • Ah, ecco... Non avevo notato quel menù :)

    Irina Turcu

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.

    LinkedIn

    martedì 24 gennaio 2012 16:29
  • Ciao Irina ,

    Ah, ecco... Non avevo notato quel menù :)

    Irina Turcu

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.

    LinkedIn

    Si , in effetti ho installato ReSharper , per cui dici che dipende da cio?

    Guarderò anche i link che hai fornito per capire qualcosa di più :).

    Ciao.

     


    martedì 24 gennaio 2012 17:40
  • Si , in effetti ho installato ReSharper , per cui dici che dipende da cio?

    Guarderò anche i link che hai fornito per capire qualcosa di più :).

    Ciao. 


    Già, Carmelo, vedi qui, probabilmente avevi impostato il filtro Filter by [EditorBrowsable], oppure questo comportamento era predefinito.

    Irina Turcu

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.

    LinkedIn

    martedì 24 gennaio 2012 18:07
  • Ciao Irina ,

    Già, Carmelo, vedi qui, probabilmente avevi impostato il filtro Filter by [EditorBrowsable], oppure questo comportamento era predefinito.

     

    a questo punto direi che e predefinito , in quanto non ricordo di aver eseguito delle impostazioni , se non quella di attivarlo per l'analisi sul codice.

    Ciao Irina e grazie per il supporto .

     


    martedì 24 gennaio 2012 18:16