jangle писал(а):Вот такой ахтунг На домашнем XP SP2 функция GetShortPathNameA возвращает короткие имена, приношу исходник на работу, там XP SP3, функция GetShortPathNameA не работает! Одна программа, одна папка, только в SP3 короткое имя не возвращается... У Майкрософта окончательно поехала крыша?
Public Class Form1
Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Integer) As Integer
Private Sub TxtLong_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtLong.TextChanged
Tmr.Stop()
TxtShort.Text = ""
Tmr.Start()
End Sub
Private Sub Tmr_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tmr.Tick
Tmr.Stop()
Dim Res As New String(Chr(0), 256), Len As Integer = GetShortPathName(TxtLong.Text, Res, 255)
TxtShort.Text = Res.Substring(0, Len)
End Sub
End Class
Neo Utils -> Tweak Manager -> Файловая система -> Ускорение работы файловой системы NTFS писал(а):Этот параметр останавливает работу части NTFS, отвечающей за создание совместимых с МС-ДОС имен файлов в формате 8.3 . Отключение этого свойства может увеличить эффективность работы в разделах NTFS, с большим количеством файлов имеющих длинные имена. Предупреждение: Некоторые 16 разрядные инсталляционные программы могут иметь проблемы при включении этого параметра, Вы можете или заново включить создание 8.3 имен файлов в течение установки, или использовать имена каталогов не в формате LFN, то есть "c:\progra~1\applic~1".
Расположение: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - NtfsDisable8dot3NameCreation:REG_DWORD
Рекомендованное значение: 1
fsutil behavior query disable8dot3
fsutil behavior set disable8dot3 1|0
fsutil behavior set|query allowextchar
#Compile Exe
#Dim All
#Include "win32api.inc"
Function GetShortPath (ByVal lfn As Asciiz*255) As String
Local sfn As Asciiz*255
GetShortPathName (lfn, sfn, 255)
Function = sfn
End Function
Function PBMain () As Long
Print GetShortPath("C:\Program Files\Microsoft Visual Studio 9.0\Microsoft Visual Studio 2008 Professional Edition - RUS")
WaitKey$
End Function
If a folder/file already has a short name, for example "Program Files", then it will return the short name for that folder/file. But if a short name doesn't exist, you will instead get the long name for the file as it is the only name that exists for that object. If short names are disabled then there is no short name to get.
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 7