Gå til innhold

Hjelp, min første app.


Anbefalte innlegg

Videoannonse
Annonse

Sitter og finpusser litt her nå, tenkte å legge til en melding i shutdownboksen som popper opp. Men visual basic godtar jo ikke en slik shell command

Shell ("shutdown -s -t 16200 -c "Shutdowntool v0.1 is shutting down"")

Noen som har en løsning? :(

Endret av pcbygger91
Lenke til kommentar

Aha! Det var løsningen. Takk for all hjelp alle sammen! :thumbup:

 

Her er det endelige scriptet

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       If CheckBox2.Checked = False Then
       ElseIf CheckBox2.Checked = False Then
       ElseIf CheckBox3.Checked = False Then
       ElseIf CheckBox4.Checked = False Then
       ElseIf CheckBox5.Checked = False Then
       ElseIf CheckBox6.Checked = False Then
       ElseIf CheckBox7.Checked = False Then
       ElseIf CheckBox8.Checked = False Then
       ElseIf CheckBox9.Checked = False Then
       ElseIf CheckBox10.Checked = False Then
       ElseIf CheckBox1.Checked = False Then
           Shell("shutdown -s -t 1800 -c ""Shutdowntool v0.1 is shutting down""")
       End If
       If CheckBox2.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 3600 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox3.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 5400 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox4.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 7200 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox5.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 9000 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox6.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 10800 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox8.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 12600 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox9.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 14400 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox10.Checked Then
           MsgBox("You clicked 'Shutdown -?', your computer will now be shut down by your specified time. Please stand by...")
           Shell("shutdown -s -t 16200 -c ""Shutdowntool v0.1 is shutting down""")
       ElseIf CheckBox1.Checked Then
           MsgBox("You clicked 'Shutdown -?' when the 'Abort' checkbox was checked, the operating shutdown will now abort...")
           Shell("shutdown -a")

       End If

   End Sub
End class

Endret av pcbygger91
Lenke til kommentar

oi

 

Kan du ikke heller legge in en tekstboks som sier hvor lang tid det tar for den å skru av?

Dim TryParseInt As Integer = 0
If Integer.TryParse(txtTime.Text, TryParseInt) Then
 Shell("shutdown -s -t " & TryParseInt & " -c ""Shutdowntool v0.1 is shutting down""")
Else
 MessageBox.Show("Invalid number format, only integer values are accepted.")
End If

Lenke til kommentar
Aha! Det var løsningen. Takk for all hjelp alle sammen!  :thumbup:

 

Her er det endelige scriptet

Antagelig masse FUD

8026406[/snapback]

 

 

Bare en kommentar, script != program.

 

Script kompileres ikke før distubusjon, men derimot on-the-fly. Klassisk VB kompieres til maskinkode, og .NET til mellomkode, nemlig MSIL, eller CIL etter navnebyttet, som står for "Microsoft Intermediate Language" og "Common Intermediate Language".

Lenke til kommentar
Kan du ikke heller legge in en tekstboks som sier hvor lang tid det tar for den å skru av?

Ja, det er nøyaktig hva jeg fortalte ham først. Men, han mente visst koden ble altfor avansert for hans nivå.

 

I alle fall vil jeg på det sterkeste anbefale å unngå slike lange ramser med IF-setninger når du programmerer, og heller benytte mer effektive og dynamiske fremgangsmåter. I tilfeller som dette kan du eksempelvis omdesigne brukergrensesnittløsningen slik GeirGrusom foreslo, eller bruke kontroller som støtter visning og markering av lister (Combobox, Listbox, m.m.). Dersom det er absolutt nødvendig å anvende den nåværende løsningen, kan du også iterere (gå gjennom) alle kontrollene og sjekke hvilken som er markert. Koden kan da bli seende ut således:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

    Dim selRadio As RadioButton

 

    ' Gå gjennom alle kontroller i formen

    For Each Control As Object In Me.Controls

 

        ' Ser om kontrollen er en alternativknapp

        If TypeOf Control Is RadioButton Then

 

            ' Se deretter om kontrollen er markert

            If DirectCast(Control, RadioButton).Checked Then

                selRadio = Control

                Exit For ' Avslutter løkken

            End If

 

        End If

 

    Next

 

    ' Unngår å kjøre koden dersom ingen av knappene er markert

    If selRadio IsNot Nothing Then

 

        ' Bruker knappens TAG-egenskap til å definere tiden som skal brukes. Dette må gjøres

        ' for at koden skal fungere. La den være tom på AVBRYT-alternativknappen.

        If selRadio.Tag Is Nothing Then

            Shell("shutdown -a")

        Else

            Shell("shutdown -s -t " & selRadio.Tag & _

            " -c ""Shutdowntool v0.1 is shutting down""")

        End If

 

    End If

 

End Sub

Lenke til kommentar

Takk igjen aadnk. Skal se nærmere på det :)

-------------------------------

Et spørsmål, hvordan kan man åpne en cdrom gjennom vb? Isåfall, er det mulig å gjøre dette i batch scripting også?

Endret av pcbygger91
Lenke til kommentar
Et spørsmål, hvordan kan man åpne en cdrom gjennom vb? Isåfall, er det mulig å gjøre dette i batch scripting også?

8087806[/snapback]

Du kan gjøre det som følger:

Imports System.Text

Imports System.Runtime.InteropServices

 

Public Class Form1

 

    ' Du kan også bruke <DllImport>

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _

    (<MarshalAs(UnmanagedType.LPStr)> ByVal command As String, _

    ByVal returnString As StringBuilder, ByVal cchReturnLength As Int32, _

      ByVal hwndCallback As IntPtr) As Int32

 

    Public Sub ChangeDoorState(ByVal Drive As String, ByVal Open As Boolean)

 

        ' Bruk denne CD-skuffen

        mciSendString(String.Format("open {0} type cdaudio alias cddrive", Drive), Nothing, 0, 0)

 

        ' Send kommando

        mciSendString("set cddrive door " & IIf(Open, "open", "closed"), Nothing, 0, 0)

 

        ' Rydd opp

        mciSendString("close cddrive", Nothing, 0, 0)

 

    End Sub

 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

        ' Åpne en gitt CDROM-skuff

        ChangeDoorState("G:", True)

 

        ' Vent i fem sekunder

        System.Threading.Thread.Sleep(5000)

 

        ' Lukk den igjen

        ChangeDoorState("G:", False)

 

    End Sub

 

End Class

For å få dette til via batch-skripting kan du jo simpelthen kalle et kommandolinjeprogram med koden ovenfor (samt litt mer).

Endret av aadnk
Lenke til kommentar
Er det mulig å få et vb program til å droppe en fil i en angitt path? Hvis mulig, hvordan gjør man dette?

8104620[/snapback]

 

 

Eeeh, droppe en fil?

 

Som i å slette en fil?

Som i å lagre en fil?

 

Lagre text fil i VB.NET

 

 

Dim Writer As System.IO.TextWriter = New System.IO.StreamWriter("Filbane")

 

Writer.Writeline("Joda")

Writer.Writeline("Skrive må vi da")

Writer.Flush() 'Skriver til filen

Writer.Close() 'Lukker skriveobejektet

Writer.Dispose() 'Avinitialiserer skriveopejektet, denne trengs egenltig ikke.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...