carp-catcher
Goto Top

Name der Anwendung herausfinden

ich würde gerne wissen wie man den befehl getexename nutzt oder ob der überhaupt funktioniert
und ob es evtl andere möglichkeiten gibt.

hey

ich möchte unter visual basic 2010 ein Programm schreiben.
Und zwar soll dieses immer den aktuellen namen von sich anzeigen sowie auch wo es gerade gespeichert ist.

den Teil wo die exe gespeichert ist habe ich schon.:

Dim sAppPath As String
sAppPath = Application.StartupPath
MsgBox(sAppPath)

Ich habe was von getexename gehört, aber ich habe leider keine Ahnung wie ich den befehl anwenden kann oder ob der überhaupt funktioniert.

Bitte helft mir mal auf die Sprünge face-smile

Danke

Greez

Content-Key: 174067

Url: https://administrator.de/contentid/174067

Printed on: April 19, 2024 at 23:04 o'clock

Member: Pjordorf
Pjordorf Oct 03, 2011 at 17:27:26 (UTC)
Goto Top
Hallo,

Zitat von @carp-catcher:
Ich habe was von getexename gehört, aber ich habe leider keine Ahnung wie ich den befehl anwenden kann oder ob der überhaupt funktioniert.
Hast du denn schon mal die eingabute (Integrierte) Hilfe von VB bemüht? Die funktioniert doch, oder? Oder mal in dem dir auch zugänglichen Internet, besondere bei MSDN nachgeschlagen? http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.compatibi ...; Und da du ja Entwickler (Programmierer) bist weißt du für was die Buschstaben MSDN hier stehenn nicht wahrface-smile

Gruß,
Peter
Member: carp-catcher
carp-catcher Oct 03, 2011 at 18:17:07 (UTC)
Goto Top
ja ich habe da schon mal geschaut aber das will irgendwie net so recht klappen.

'Declaration
<ObsoleteAttribute("Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?linkid=160862;)&g); _
Public Shared Function GetEXEName As String

Bei mir Gibt das die error meldung das ein end funktion fehlt wenn ich das einfüge klappt es aber immer noch nicht

ich möchte das mir der name über eine msg box angezeigt wird.
habe ich so gelöst
MsgBox(GetEXEName)

erschien mir am sinnvollstem :P
vll. liegt ja auch da der fehler drin


PS:
was MSDN heißt weiß ich nicht, beschäftige mich aber auch erst knapp 2 monate mit vb
Member: Pjordorf
Pjordorf Oct 03, 2011 at 18:48:54 (UTC)
Goto Top
Hallo,

Zitat von @carp-catcher:
'Declaration
Bei mir Gibt das die error meldung das ein end funktion fehlt wenn ich das einfüge klappt es aber immer noch nicht
Klar. das wird ja auch so nicht mehr verwendet und es ist Obselete. Schlag mal nach was das bedeutetface-smile

MsgBox(GetEXEName)
Und was kam dabei raus?

Du hast es mittlerweile nicht nur mit den reinen Visual Basic zu tun, sondern auch mit den .Net Framework(s). Ohne diese zu benutzen wird es, naja einfach gesagt, nicht einfach.

http://msdn.microsoft.com/de-de/library/system.reflection.assembly.aspx ...

was MSDN heißt weiß ich nicht, beschäftige mich aber auch erst knapp 2 monate mit vb
Nja. MSDN hat zwar auch aaber nicht nur mit VB zu tun. MSDN ist ein prgramm von, na, kommst du drauf? Ja, richtig, von MS = Microsft. Und selbst du solltest jetzt in der lage sein die anderen beiden Buchstaben zu finden. Benutzt hast du es ja schon (bestimmt schon zig-fach).

Hier noch ein kleiner hinweißface-smile
http://msdn.microsoft.com/de-de/default.aspx

Gruß,
Peter
Member: carp-catcher
carp-catcher Oct 03, 2011 at 20:09:04 (UTC)
Goto Top
Obselete
damit kann ich grad garnichts anfangen ...sry ...


MsgBox(GetEXEName)
es hat sich eine MsgBox ohne Inhalt geöffnet

kannst du mir mal ein code bspl geben wie ich mein Problem lösen könnte ?
Member: Pjordorf
Pjordorf Oct 03, 2011 at 20:47:20 (UTC)
Goto Top
Hallo,

Zitat von @carp-catcher:
Obselete damit kann ich grad garnichts anfangen ...sry ...
Na, wenn dein Internet es nicht hergibtface-sad
http://lmgtfy.com/?q=obsolete Aber da du hiermit bestimmt auch nichts anfangen kannst habe ich es dir leichter gemacht: http://de.wiktionary.org/wiki/obsolete oder auch http://www.dict.cc/englisch-deutsch/obsolete.html

kannst du mir mal ein code bspl geben wie ich mein Problem lösen könnte ?
Na, der ist doch oben schon längst angegeben. aber falls du es bei den langen Texten in den Beispielen nicht gefunden haben solltest, habe ich dir hier das Beispiel aus diesem Link reinkopiert.
Imports System
Imports System.Reflection
Imports System.Security.Permissions

<assembly: AssemblyVersionAttribute("1.0.2000.0")>  

Public Class Example
    Private factor As Integer

    Public Sub New(ByVal f As Integer) 
        factor = f
    End Sub 

    Public Function SampleMethod(ByVal x As Integer) As Integer 
        Console.WriteLine(vbCrLf & "Example.SampleMethod({0}) executes.", x)  
        Return x * factor
    End Function 

    Public Shared Sub Main() 
        Dim assem As [Assembly] = [Assembly].GetExecutingAssembly()

        Console.WriteLine("Assembly Full Name:")  
        Console.WriteLine(assem.FullName)

        ' The AssemblyName type can be used to parse the full name.  
        Dim assemName As AssemblyName = assem.GetName()
        Console.WriteLine(vbLf + "Name: {0}", assemName.Name)  
        Console.WriteLine("Version: {0}.{1}", assemName.Version.Major, _  
            assemName.Version.Minor)

        Console.WriteLine(vbLf + "Assembly CodeBase:")  
        Console.WriteLine(assem.CodeBase)

        ' Create an object from the assembly, passing in the correct number  
        ' and type of arguments for the constructor.  
        Dim o As Object = assem.CreateInstance("Example", False, _  
            BindingFlags.ExactBinding, Nothing, _
            New Object() { 2 }, Nothing, Nothing)

        ' Make a late-bound call to an instance method of the object.      
        Dim m As MethodInfo = assem.GetType("Example").GetMethod("SampleMethod")  
        Dim ret As Object = m.Invoke(o, New Object() { 42 })
        Console.WriteLine("SampleMethod returned {0}.", ret)  

        Console.WriteLine(vbCrLf & "Assembly entry point:")  
        Console.WriteLine(assem.EntryPoint)

    End Sub 
End Class 

' This code example produces output similar to the following:  
'  
'Assembly Full Name:  
'source, Version=1.0.2000.0, Culture=neutral, PublicKeyToken=null  
'  
'Name: source  
'Version: 1.0  
'  
'Assembly CodeBase:  
'file:///C:/sdtree/AssemblyClass/vb/source.exe  
'  
'Example.SampleMethod(42) executes.  
'SampleMethod returned 84.  
'  
'Assembly entry point:  
'Void Main()  
'   

Gruß,
Peter
Member: carp-catcher
carp-catcher Oct 04, 2011 at 06:40:33 (UTC)
Goto Top
bei deinem code kam der fehler kann nicht zu string konvertiert werden ...

jz habe ich das bei msdn rausgekramt. http://207.46.172.252/de-de/library/system.reflection.assemblyname.tost ...

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' aufrufen von Prozedur
AssemblyName_GetAssemblyName.Main()
End Sub
End Class

Public Class AssemblyName_GetAssemblyName

Public Shared Sub Main()
Dim myAssemblyName As AssemblyName = AssemblyName.GetAssemblyName("MyAssembly.exe")
Console.WriteLine(vbCrLf & "Displaying assembly information:" & vbCrLf)
Console.WriteLine(myAssemblyName.ToString())
MsgBox(myAssemblyName)
End Sub
End Class

wenn ich die geschichte laufen lasse kommt das bei raus:

Die Datei oder Assembly "MyAssembly.exe" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

hmm ... scheinbar nicht ganz so leicht die sache ...zumindest für mich :P

Was habe ich an meinem code falsch gemacht ?


greez
Member: carp-catcher
carp-catcher Oct 06, 2011 at 06:49:38 (UTC)
Goto Top
hey,
so habe jetzt selber eine Lösung gefunden.
Wenn es jemand interessiert:

Dim sAppPa As String
sAppPa = Application.ExecutablePath()
MsgBox(sAppPa)
Dim f As New IO.FileInfo(sAppPa)
MsgBox(f.Name)

Trotzdem danke für deine Hilfe face-smile

greez