myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

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

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 08.07.10, 14:54   #1
J3r3my
Banned
 
Registriert seit: Apr 2010
Beiträge: 507
Bedankt: 234
J3r3my ist noch neu hier! | 0 Respekt Punkte
Standard 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 ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 15:03   #2
.ShoXx!
 
Benutzerbild von .ShoXx!
 
Registriert seit: Dec 2009
Beiträge: 792
Bedankt: 49
.ShoXx! ist noch neu hier! | 8 Respekt Punkte
Standard

Was für ein Fehler kommt da genau und kommt der nur bei diesem Projekt oder auch bei anderen? Außerdem
Code:
Shell (\Counter-Strike 1.6\cstrike.exe)
wo liegt denn dein Programm? Müsstest du da nich C:\Programme\ usw..vorne hinschreiben?

Achja und Shell ist schon veraltet, benutz lieber Process.Start
Code:
Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) & "\Counter-Strike 1.6\cstrike.exe")
Naja habs übersehen, also kannst auch Shell verwenden aber wenn das wirklich der Code ist den du verwendest dann liegt dieses "not declared" daran, dass du den Pfad nicht als String übergibst. Also machs mal so: Shell ("\Counter-Strike 1.6\cstrike.exe") du hast diese 2 " Anführungszeichen nicht..
__________________
To succeed you have to stop being ordinary and be legen - wait for it - dary.
.ShoXx! ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 15:29   #3
J3r3my
Banned
 
Registriert seit: Apr 2010
Beiträge: 507
Bedankt: 234
J3r3my ist noch neu hier! | 0 Respekt Punkte
Standard

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 Das mit den blöden "" wars. Unglaublich was so kleine Sch....dinger beim "Programmieren" aus machen
J3r3my ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 15:31   #4
.ShoXx!
 
Benutzerbild von .ShoXx!
 
Registriert seit: Dec 2009
Beiträge: 792
Bedankt: 49
.ShoXx! ist noch neu hier! | 8 Respekt Punkte
Standard

Achso das liegt einfach nur so da..dachte es ist im Programme\Valve Ordner..^^
__________________
To succeed you have to stop being ordinary and be legen - wait for it - dary.
.ShoXx! ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 15:46   #5
J3r3my
Banned
 
Registriert seit: Apr 2010
Beiträge: 507
Bedankt: 234
J3r3my ist noch neu hier! | 0 Respekt Punkte
Standard

Nene, das wird so ein StarterProgramm für die CS-Nonsteam Versionen
J3r3my ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 21:10   #6
J3r3my
Banned
 
Registriert seit: Apr 2010
Beiträge: 507
Bedankt: 234
J3r3my ist noch neu hier! | 0 Respekt Punkte
Standard

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?
J3r3my ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 21:36   #7
kain0905
Anfänger
 
Registriert seit: Aug 2009
Beiträge: 4
Bedankt: 5
kain0905 ist noch neu hier! | 0 Respekt Punkte
Standard

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
kain0905 ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 23:07   #8
J3r3my
Banned
 
Registriert seit: Apr 2010
Beiträge: 507
Bedankt: 234
J3r3my ist noch neu hier! | 0 Respekt Punkte
Standard

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
J3r3my ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 23:25   #9
kain0905
Anfänger
 
Registriert seit: Aug 2009
Beiträge: 4
Bedankt: 5
kain0905 ist noch neu hier! | 0 Respekt Punkte
Standard

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
kain0905 ist offline   Mit Zitat antworten
Ungelesen 08.07.10, 23:41   #10
J3r3my
Banned
 
Registriert seit: Apr 2010
Beiträge: 507
Bedankt: 234
J3r3my ist noch neu hier! | 0 Respekt Punkte
Standard

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 ist offline   Mit Zitat antworten
Ungelesen 09.07.10, 12:21   #11
.ShoXx!
 
Benutzerbild von .ShoXx!
 
Registriert seit: Dec 2009
Beiträge: 792
Bedankt: 49
.ShoXx! ist noch neu hier! | 8 Respekt Punkte
Standard

Man kann doch auch curDir() verwenden um den Pfad zu bekommen in dem das eigene Programm ist?!
Ich versteh die Frage leider nicht..könntest du versuchen sie nochmal zu erklären? Welche .exe meinst du und was willst du mit der machen?

Also falls ich es richtig verstanden habe, dann sollte das klappen (ist jetzt ein Beispiel wenn dein Programm im Ordner Valve oder Projekte oder irgendwas liegt):
Code:
Process.Start(curDir() & "\Counter-Strike 1.6\cstrike.exe")
Also jetzt ist es egal ob der Laufwerksbuchstabe C, D, E oder F oder irgendwas ist, jedoch muss dein Programm auch im Valve oder Projekte usw. Ordner liegen. Der Öffnet dann den Ordner Counter-Strike 1.6 und startet darin dann die "cstrike.exe"..hoffentlich hasts verstanden^^

curDir() gibt dir den Pfad von deinem Programm zurück. Wenn du dein Prog z.B. in C:\Projekte steckst und die cstrike.exe hier liegt: C:\Projekte\Counter-Strike 1.6\cstrike.exe dann machst einfach:
Code:
Process.Start(curDir() & "\Counter-Strike 1.6\cstrike.exe")
__________________
To succeed you have to stop being ordinary and be legen - wait for it - dary.
.ShoXx! ist offline   Mit Zitat antworten
Ungelesen 09.07.10, 16:25   #12
J3r3my
Banned
 
Registriert seit: Apr 2010
Beiträge: 507
Bedankt: 234
J3r3my ist noch neu hier! | 0 Respekt Punkte
Standard

Hey Danke euch. Beide Varianten funzen wunderbar. Aber ich verwende lieber Shoxx seine die ist um einiges kürzer und besser zu merken
J3r3my ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 Uhr.


Sitemap

().