myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Visual Basic 8, "... is not declared", Debug-Error (https://mygully.com/showthread.php?t=2074249)

J3r3my 08.07.10 15:54

Visual Basic 8, "... is not declared", Debug-Error
 
Hye Leute,

Wie ihr in der Überschrift schon lesen könnt habe ich ein Problem bei Visual Basic 2008. Ich wollte mir ein kleines "Counter-Strike Start Programm" erstellen. Das per Button das jeweilige CS bzw. CS Tool öffnet. Anfang hat das gut geklappt. Solange es nur die Spiele waren. Dann wollte ich einen Fehler darin verbessern sowie je ein Tool hinzufügen. Alles sieht perfekt aus. Das Fenster sowie der Code, ich als leihe, der Visual Basic erst seit ein paar Stundne nutzt kann sich das nicht erklären... Bei Debuggen kommt eine Fehlermeldung wo drin steht das einige Fehler im Code vorhanden sind und ob ich die letzte funktioniernde Datei öffnen will. Wenn ich unten in der "Error List" gucke, dann stehen dort einige Einträge. Der häufigste ist "... is not declared". Und wenige male "Expression expected". Ich denke die "Pro`s" unter euch werden den Fehler hier sofort finden. Bei Google habe ich nicht direkt etwas gefunden was mir weiterhilft... Könnt ihr mir weiterhelfen?

Hier der "Code"
Code:

Public Class Form1

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

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Shell (\Counter-Strike 1.6\cstrike.exe)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Shell (\Counter Strike Condition Zero\Counter Strike Condition Zero)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Shell(\Counter-Strike Source\cstrike.exe)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Shell (\Zubehoer\ESP_CSS.exe)
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Shell (\Zubehoer\ESP_CS.exe)
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Shell (\Zubehoer\ESP_CS.exe)
    End Sub
End Class

Achja, bevor die doofe Sprüche fliegen xD ESP ist nicht der Hack, sondern das "Einheizers S***** Pack". Halt für Buys***** unso :=)
MfG Jeremy

J3r3my 08.07.10 16:29

Also der Ordner "Counter-Strike 1.6" wird je nach Computer immer einen anderen Pfad haben. Aber sie wird immer im gleichen "Ordner" wie die ".exe" liegen.
Also bspw. D:\*.exe, D:\Counter-Strike 1.6
Und bei einem anderen Computer ists halt E:\*.exe, E:\Counter-Strike 1.6.

Stimmt so oder?


JUHUU DANKE :D Das mit den blöden "" wars. Unglaublich was so kleine Sch....dinger beim "Programmieren" aus machen :D

J3r3my 08.07.10 16:46

Nene, das wird so ein StarterProgramm für die CS-Nonsteam Versionen :)

J3r3my 08.07.10 22:10

Hmm... nächstes Problem. Mein Plan mit den verschiedenen Pfaden geht nicht auf. Er spuckt eine Fehlermeldung aus. Wenn ich jedoch den kompletten, Momentanen Pfad angebe funktioniert es.
Jetzt die Frage: Wie kann ich einen Pfad angeben der immer auf einem anderen Laufwerkbuchstaben sein wird?

kain0905 08.07.10 22:36

Hi,

schreibe am Anfang das Verzeichnis der exe Datei in eine Variable und schnapp dir damit immer den aktuellen Pfad in welchem deine EXE grad liegt:

Code:

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim strEXEName As String
        Dim strEXEDir As String
        strEXEName = Reflection.Assembly.GetExecutingAssembly().Location
        strEXEDir = IO.Path.GetDirectoryName(strEXEName)
        Process.Start(strEXEDir & "\Counter-Strike 1.6\cstrike.exe")
    End Sub


J3r3my 09.07.10 00:07

Sorry, aber da Blick ich grad ünerhaupt nicht durch... Die Exe vom 1.6 liegt bspw. hier:
Code:

K:\Projekte\CS DVD\Counter-Strike 1.6
Dann würde das folgendermassen lauten?
Code:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim strEXEName As String
        Dim strEXEDir As String
        strEXEName = Reflection.Assembly.GetExecutingAssembly().Location
        strEXEDir = IO.Path.GetDirectoryName(strEXEName)
        Process.Start(strEXEDir & "K:\Projekte\CS DVD\Counter-Strike 1.6\cstrike.exe")
    End Sub


kain0905 09.07.10 00:25

Ehhhh nein ... die Variable "strEXEDir" gibt dir automatisch den Pfad DEINES Programmes wieder. Müsstest in diesem Fall bei dir also nur dein selbstgeschriebenes Programm unter "K:\Projekte\CS DVD" ablegen. Und wenn der nächste das ganze halt unter "D:\Games\CS DVD" hat dann enthält die Variable automatisch den entsprechenden Pfad

J3r3my 09.07.10 00:41

Also passt sich "solange alles in einem Paket" bleibt, sogesagt der Pfad an den Standort an?

Ich werde das morgen alle mal ins Programm reinbringen, melde mich dann wieder :)

Danke :)

J3r3my 09.07.10 17:25

Hey Danke euch. Beide Varianten funzen wunderbar. Aber ich verwende lieber Shoxx seine die ist um einiges kürzer und besser zu merken :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.