Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Unterstützung bei Inputbox inkl. If-Schleifen

Frage Entwicklung VB for Applications

Mitglied: aivilon

aivilon (Level 1) - Jetzt verbinden

07.05.2012 um 12:23 Uhr, 3262 Aufrufe, 5 Kommentare

Hallo Zusammen

Mein Problem ist folgendes:
Ich möchte mittels einer Inputbox einen Pfad abfragen. Wenn kein Wert eingetragen wird, und trotzdem ok gedrückt wird, soll mittels einer Messagebox (vbokonly) mittgeteilt werden, dass ein gültiger wert eingetragen werden muss. mit betätigen von ok soll sich die Inputbox wiederholen (Refresh?).
Wenn Ein Wert eingetragen wird, sollte mittels (dazu habe ich eine funktionierende funktion) exist abfrage ermittelt werden ob der Pfad vorhanden ist. Wenn nicht wird wiederum per messagebox (vbokonly) mittgeteilt, dass der pfad nicht existiert, und auch hier wird die inputbox wiederholt.
Mit einem klick auf Cancel wird per Msgbox (vbokcancel) mitgeteilt, dass hiermit das Programm beendet wird. Bei klick auf Ok geschieht dies auch. Mit einem klick auf cancel wird die inputbox wiederholt.

Ich bring das einfach nicht hin. Bisjetzt hab ich folgendes:
01.
            If FileOrDirExists(Appdata & "\.minecraft\bin\") = True Then 
02.
                dir = New System.IO.DirectoryInfo(Appdata & "\.minecraft\bin\") 
03.
            ElseIf FileOrDirExists(Appdata & "\.minecraft\bin\") = False Then 
04.
                strPfad = InputBox("Bitte Pfad zur Minecraft.jar Datei angeben: ", "Pfad eingeben")   'Bis hier funktioniert alles 
05.
                If strPfad = " " Then 
06.
                    strMsg = MsgBox("Bitte einen Pfad eingeben!", "Kein Pfad", vbOKOnly) 
07.
                    Me.Refresh() 
08.
                ElseIf strPfad = "" Then 
09.
                    strMsg = MsgBox("Hiermit wird MC Startup Helper beendet!", "Beenden", vbOKCancel) 
10.
                    If MsgBoxResult.Ok Then 
11.
                        End 
12.
                    ElseIf MsgBoxResult.Cancel Then 
13.
                        Me.Refresh() 
14.
                    End If 
15.
                End If 
16.
            End If
Kann mir wer helfen?

Grüsse aivilon
Mitglied: SlainteMhath
07.05.2012 um 12:59 Uhr
Moin,

aus dem Kopf und ohne Gewähr:
01.
do while true 
02.
  strPfad=inputbox(....) 
03.
  if strPfad="" then 
04.
    if msgbox("hiermit wird.... beendet",vbOkCancel)=MsgBoxResult.Ok then Exit Do 
05.
  else 
06.
    if strPfad=" " then  
07.
      Msgbox("Bitte gültigen Pfad....") 
08.
    else 
09.
      'Wenn Pfad Existiert, dann Exit Do, sonst Msgbox("Pfad existiert nicht") 
10.
    End If 
11.
  End if 
12.
loop
lg,
Slainte

/EDIT: Typos korrigiert.
Bitte warten ..
Mitglied: emeriks
07.05.2012 um 13:04 Uhr
Hi,

versuch mal so:

01.
If FileOrDirExists(Appdata & "\.minecraft\bin\") Then  
02.
    dir = New System.IO.DirectoryInfo(Appdata & "\.minecraft\bin\")  
03.
Else  
04.
    strMsg = "" 
05.
    do 
06.
        strMsg = MsgBox("Bitte einen Pfad eingeben!", strMsg , vbOKOnly)  
07.
        if strMsg.Trim <> "" then 
08.
            'es wurde etwas eingegeben 
09.
            If not FileOrDirExists(strMsg.Trim) then 
10.
                'Pfad existiert nicht 
11.
                msgbox("Der Pfad """ & strMsg & """ exitiert nicht oder kein Zugriff!", vbExclamation, "Fehler!") 
12.
            else             
13.
                'Pfad existiert 
14.
                exit do 
15.
            end if 
16.
        end if 
17.
    loop 
18.
end if
mfg
MRX
Bitte warten ..
Mitglied: aivilon
07.05.2012 um 13:46 Uhr
Zitat von SlainteMhath:
Moin,

aus dem Kopf und ohne Gewähr:
01.
> do while true 
02.
>   strPfad=inputbox(....) 
03.
>   if strPfad="" then 
04.
>     if msgbox("hiermit wird.... beendet",vbOkCancel)=MsgBoxResult.Ok then Exit Do 
05.
>   else 
06.
>     if strPfad=" " then  
07.
>       Msgbox("Bitte gültigen Pfad....") 
08.
>     else 
09.
>       'Wenn Pfad Existiert, dann Exit Do, sonst Msgbox("Pfad existiert nicht") 
10.
>     End If 
11.
>   End if 
12.
> loop 
13.
> 
lg,
Slainte

/EDIT: Typos korrigiert.

OK das kommt dem Ganzen schon näher. Nur:
Wenn ich beim Hinweis zum Beenden auf OK klicke, wird nur die Messagebox weggeklickt. Hier sollte sich jedoch das ganze Programm beenden.

Des weiteren hab ich noch das Problem, dass wenn ich ohne eine Eingabe auf OK klicke ebenfalls der Hinweis zum Beenden erscheint.

Und aus irgend einem Grund erscheint das Fenster auf einer total merkwürdigen Position (ca. +0, +500) ?!

01.
        Do While True 
02.
            strPfad = InputBox("Bitte Pfad zur Minecraft.jar eingeben!", "Pfad eingeben", strMsg, vbOKOnly) 
03.
            If strPfad <= " " Then 
04.
                If MsgBox("hiermit wird MC Startup Helper beendet", vbOKCancel) = MsgBoxResult.Ok Then Exit Do 
05.
            Else 
06.
                If strPfad < " " Then 
07.
                    MsgBox("Bitte einen Pfad eingeben!", vbExclamation, "Bitte Pfad eingeben!") 
08.
                Else 
09.
                    If FileOrDirExists(strMsg) = False Then 
10.
                        'Pfad existiert nicht 
11.
                        MsgBox("Der Pfad """ & strMsg & """ exitiert nicht! Bitte korrekten Pfad eingeben", vbExclamation, "Fehler!") 
12.
                    Else 
13.
                        'Pfad existiert 
14.
                        Exit Do 
15.
                    End If 
16.
                End If 
17.
            End If 
18.
        Loop
#Edit: aktuellen Code hinzugefügt
Bitte warten ..
Mitglied: aivilon
07.05.2012 um 14:37 Uhr
#Falsch kommentiert....
Bitte warten ..
Mitglied: aivilon
07.05.2012 um 14:43 Uhr
So ich habs jetzt fast hingekriegt. Bis auf das Ganze mit dem Abbrechen und danach Beenden. Wenn ich jetzt auf Abbrechen drücke, kommt die MessageBox "Bitte Pfad eingeben".
Hier der aktuellste Code:

01.
        If FileOrDirExists(Appdata & "\.minecraft\bin\") Then 
02.
            dir = New System.IO.DirectoryInfo(Appdata & "\.minecraft\bin\") 
03.
        Else 
04.
            strMsg = "" 
05.
            Do 
06.
                strMsg = InputBox("Bitte Pfad zur Minecraft.jar eingeben!", "Pfad eingeben", "", vbOKOnly) 
07.
                If System.Runtime.InteropServices.Marshal.StringToBSTR(strMsg) = 0 Then 
08.
                    If MsgBox("hiermit wird MC Startup Helper beendet", vbOKCancel) = MsgBoxResult.Ok Then Exit Do 
09.
                ElseIf strMsg = vbNullString Then 
10.
                    MsgBox("Bitte einen Pfad eingeben!", vbExclamation, "Bitte Pfad eingeben!") 
11.
                Else 
12.
                    If FileOrDirExists(strMsg) = False Then 
13.
                        'Pfad existiert nicht 
14.
                        MsgBox("Der Pfad """ & strMsg & """ exitiert nicht! Bitte korrekten Pfad eingeben", vbExclamation, "Fehler!") 
15.
                    Else 
16.
                        'Pfad existiert 
17.
                        dir = New System.IO.DirectoryInfo(strMsg) 
18.
                        Exit Do 
19.
                    End If 
20.
                End If 
21.
            Loop 
22.
        End If
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

RedHat, CentOS, Fedora
gelöst Ausgabe mit IF auswerten (8)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema RedHat, CentOS, Fedora ...

Batch & Shell
gelöst Powershell IF Abfrage Vergleichsoperatoren (4)

Frage von Peterz zum Thema Batch & Shell ...

Batch & Shell
gelöst While Schleife mit mehreren Arrays (2)

Frage von Markus2016 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (16)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...