网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月03日漏签0天
vb吧 关注:156,011贴子:1,166,287
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 23回复贴,共1页
<<返回vb吧
>0< 加载中...

求助变量路径%userprofile%

  • 只看楼主
  • 收藏

  • 回复
  • 贴吧用户_5JDVttV
  • 数据类型
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
之前一直是用批处理删除C:\Users\用户\AppData\Local\Microsoft\Edge\User Data下的一些文件,批处理用%userprofile%\AppData\Local\Microsoft\Edge\User Data路径代码就能操作,
现在想用vb做一个删除文件的程序,但是用%userprofile%变量就直接提示错误,因为公司的和自己的用户名不一样,求大佬帮帮忙在vb怎么判定这个路径,
指定唯一路径可以成功,比如公司电脑 C:\Users\live\AppData\Local\Microsoft\Edge\User Data
自己电脑又得改回C:\Users\lollipop\AppData\Local\Microsoft\Edge\User Data
有没有大佬帮忙。


  • 马云爱逛京东
  • 小吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
试下environ("USERNAME")来获得当前用户名。这个USERNAME是要大写的。


2026-09-03 06:02:08
广告
不感兴趣
开通SVIP免广告
  • 庄天齐
  • 基本语句
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
aa = aa & "本机电脑名称:" & Environ("computername") & vbCrLf aa = aa & "本机用户名称:" & Environ("username") & vbCrLf


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Environ$("LOCALAPPDATA") 可以得到 C:\Users\(用户名)\AppData\Local\ 路径,这样用户名就不用获取了


  • 初音七奈
  • 钩子编程
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
"C:\Users\" & Environ("username") & "\AppData\Local\Microsoft\Edge\User Data"


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
AppData不建议直接设置,在Win XP下名字是Application Data,用Environ$("LOCALAPPDATA")才是对的,这个路径是系统设置的,不同电脑用户名变了,这个路径也会相应变化,如果要适应更多电脑系统的话。我以前搞过系统优化工具


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没有LocalLow的路径变量
1.在Environ$("LOCALAPPDATA")得到后,用Replace替换
Replace(LCase$(Environ$("LOCALAPPDATA")), "local", "locallow")
2.上面的如果用户名或路径中带其他local就会出错,或者严谨一点可以这样
GetLocalLowPath(Environ$("LOCALAPPDATA"))
Private Function GetLocalLowPath(ByVal strLocalPath As String) As String
GetLocalLowPath = Left$(strLocalPath, InStrRev(strLocalPath, "\")) & "LocalLow"
End Function
3.还有一种就可以用SHGetKnownFolderPath得到,但是win xp不能用,这个函数在Vista以上才出现,xp下就会报无法定位


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

开了下虚拟机看了下xp的变量,发现之前的LOCALAPPDATA变量在xp下是没有的,在xp是APPDATA,如果要作兼容的话得用GetVersionEx得到系统的版本号来区分是xp还是xp以上的系统,分别调用Environ$("APPDATA")和Environ$("LOCALAPPDATA")


2026-09-03 05:56:08
广告
不感兴趣
开通SVIP免广告
  • 贴吧用户_5JDVttV
  • 数据类型
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
高手啊,太专业了。


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Declare Function SHGetKnownFolderPath Lib "shell32.dll" (rfid As Any, ByVal dwFlags As Long, ByVal hToken As Long, ppszPath As Long) As Long
Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal str As Long, id As GUID) As Long
Private Declare Function CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long) As Long
Private Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyW" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long
Private Const AppDataLocalLowGUID = "{A520A1A4-1780-4FF6-BD18-167343C5AF16}"
Private Const MAX_PATH = 260
Private Sub Form_Load()
Debug.Print GetLocalLowPath
End Sub
Private Function GetLocalLowPath() As String
Dim stFID As GUID
Dim pPath As Long
Dim strPath As String
Call CLSIDFromString(StrPtr(AppDataLocalLowGUID), stFID)
Call SHGetKnownFolderPath(stFID, 0, 0, pPath)
strPath = Space$(MAX_PATH)
Call lstrcpy(StrPtr(strPath), pPath)
Call CoTaskMemFree(pPath)
GetLocalLowPath = Left$(strPath, InStr(strPath, vbNullChar) - 1)
End Function
'这个是调用SHGetKnownFolderPath函数得到LocalLow的路径,只适用Vista及以上系统的


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 23回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示