Detectar la extension del archivo?

Iniciado por demoniox12, 21 Mayo 2009, 06:06 AM

0 Miembros y 1 Visitante están viendo este tema.

demoniox12

Buenas...

Como pordria hacer para detectar la extension de su mismo archivo?

La ruta es App.Path... el nombre es App.EXEName .. pero necesito saber la extension.. ya que podria cambiarlo a .com .pif o .scr y no seria .exe.. por eso no lo dejaria estatico digamos..

Saludos!
By Demoniox

Novlucker

Código (vb) [Seleccionar]
Msgbox Right(App.EXEName,3)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

demoniox12

Cita de: Novlucker en 21 Mayo 2009, 06:16 AM
Código (vb) [Seleccionar]
Msgbox Right(App.EXEName,3)

Saludos

Eso tira los ultimos 3 caracteres del NOMBRE del archivo.. no se le incluye la extension al comando App.EXEName...

Saludos!
By Demoniox

Novlucker

Auch! Tienes razón, olvidé que en el caso de VB el nombre de ejecutable no contiene la extensión  :-X

Entonces ... listar procesos y comparar path, EXEname contra ruta de procesos en ejecucion
Listar archivos en el mismo directorio y comparar contra path, EXEname
Verificar por medio de un array que contenga todas las extensiones, si el archivo existe con cada una de ellas  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Karcrack

Código (vb) [Seleccionar]
Option Explicit
'KERNEL32
Private Declare Function GetModuleFileName Lib "kernel32.dll" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Private Declare Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" (ByVal lpString As String) As Long

Public Function GetMyPath() As String
    Dim sPath       As String * 260
    Call GetModuleFileName(App.hInstance, sPath, Len(sPath))
   
    GetMyPath = Left$(sPath, lstrlen(sPath))
End Function

Private Sub Form_Load()
    Debug.Print "Extension:", Mid$(GetMyPath, InStrRev(GetMyPath, ".") + 1)
End Sub


Saludos ;D

demoniox12

Cita de: Karcrack en 21 Mayo 2009, 16:20 PM
Código (vb) [Seleccionar]
Option Explicit
'KERNEL32
Private Declare Function GetModuleFileName Lib "kernel32.dll" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Private Declare Function lstrlen Lib "kernel32.dll" Alias "lstrlenA" (ByVal lpString As String) As Long

Public Function GetMyPath() As String
    Dim sPath       As String * 260
    Call GetModuleFileName(App.hInstance, sPath, Len(sPath))
   
    GetMyPath = Left$(sPath, lstrlen(sPath))
End Function

Private Sub Form_Load()
    Debug.Print "Extension:", Mid$(GetMyPath, InStrRev(GetMyPath, ".") + 1)
End Sub


Saludos ;D

Excelente! muchisimas gracias!
By Demoniox

Karcrack

De nada hombre, para eso estamos ;)

Ya sabes, cualquier duda postea (duda seria, sino te diremos: GOOGLE! :¬¬), sino nos quedamos sin trabajo :xD :xD

Saludos ;)