⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 如何得到系统中的所有文件类型.txt

📁 以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题.对一些VB初学者很用.
💻 TXT
字号:
检 查 系 统 注 册 表 , 下 面 这 篇 文 章 对 你 会 有 帮 助 。     
    如 何 在 Windows操 作 系 统 中 改 变 文 件 打 开 方 式 
    ( 合 肥 张 建 军 滕 明 贵 韩 莹 ) 
    在 Windows 95/ NT/ 98操 作 系 统 中 改 变 文 件 打 开 方 式 的 问 题 , 又 可 称 为 改 变 文 件 类 型 关 联 的 问 题 , 即 把 某 类 型 ( 扩 展 名 ) 的 文 件 与 某 应 用 程 序 关 联 , 例 如 通 常 当 双 击 * .txt文 件 时 系 统 自 动 调 用 Notepad.exe。 本 文 介 绍 利 用 Windows注 册 表 编 辑 器 Regedit.exe手 工 或 编 程 改 变 文 件 打 开 方 式 的 方 法 , 并 提 供 程 序 实 例 。 
    一 、 基 本 思 路 : 
    1、 注 册 表 编 辑 器 Regedit.exe是 用 于 更 改 系 统 注 册 表 设 置 的 高 级 工 具 , 包 含 了 关 于 系 统 配 置 及 运 行 的 重 要 信 息 , 默 认 访 问 路 径 为 C:\Windows\Regedit.exe。 双 击 Regedit.exe图 标 , 运 行 注 册 表 编 辑 器 。 在 左 侧 显 示 栏 内 看 到 HKEY_CLASSES_ROOT、 KEY_CURRENT_USER、 HKEY_LOCAL_MACHINE等 主 键 。 与 文 件 类 型 有 关 的 所 有 主 键 、 键 名 、 键 值 都 存 放 在 HKEY_CLASSES_ROOT下 。 
        ◆ 双 击 HKEY_CLASSES_ROOT, 向 下 拖 动 滚 动 条 , 找 到 .txt主 键 , 右 侧 显 示 栏 内 “ txtfile” 说 明 : 在 HKEY_CLASSES_ROOT下 有 一 txtfile主 键 , 其 下 存 放 了 打 开 * .txt文 件 应 用 程 序 的 有 关 信 息 。 
        ◆ 向 下 拖 动 滚 动 条 , 找 到 txtfile主 键 , 右 侧 显 示 栏 内 “ 文 本 文 档 ” 为 文 件 类 型 描 述 。 双 击 txtfile, DefaultIcon右 侧 显 示 栏 内 “ shell32.dll,- 152” 为 * .txt文 件 的 图 标 ; shell\open\command, 右 侧 显 示 栏 内 “ C:\WINDOWS\NOTEPAD.EXE % 1” 为 打 开 * .txt文 件 的 应 用 程 序 名 称 及 参 数 。     改 变 打 开 文 件 方 式 的 方 法 ( 例 如 用 VISIO打 开 * .exc文 件 ) : 
        ◆ 手 工 : 打 开 系 统 注 册 表 , 在 HKEY_CLASSES_ROOT下 找 到 .exc及 另 一 主 键 名 , 找 到 此 主 键 , 将 shell\open\command右 侧 显 示 栏 内 “ C:\WINDOWS\NOTEPAD.EXE % 1” 改 为 “ C:\VISIO.EXE % 1” ( 假 设 VISIO.EXE的 访 问 路 径 是 C:\, 具 体 视 情 况 而 定 ) , 按 F5刷 新 系 统 注 册 表 。 
        ◆ 编 程 : 利 用 VB、 Delphi、 C+ + Builder等 读 写 系 统 注 册 表 , 可 自 动 改 变 文 件 打 开 方 式 。 本 文 提 供 VB、 Delphi编 程 实 例 。 
    二 、 编 程 实 例 : 
    ㈠ 利 用 VB编 程 
    1、 在 vb6.0 IDE中 , 新 建 工 程 Project1, 在 Form1上 添 加 命 令 按 钮 Command1。 
    2、 选 择 菜 单 “ 工 程 ” — “ 添 加 模 块 ” — “ 模 块 ” — “ 打 开 ” , 在 Project1中 添 加 模 块 Moudle1。 
    3、 在 Moudle1“ 通 用 — 声 明 ” 部 分 声 明 API函 数 和 常 量 。 
        Const REG_SZ = 1 
        Global Const HKEY_CLASSES_ROOT = & H80000000 
    Declare Function OSRegQueryValueEx Lib “ advapi32” Alias 
    “ RegQueryValueExA” (ByVal hKey As Long, ByVal lpszValueName As String, 
    ByVal dwReserved As Long, lpdwType As Long, lpbData As Any, cbData As Long) As Long 
     
        Declare Function OSRegOpenKey Lib “ advapi32” Alias 
    “ RegOpenKeyA” (ByVal hKey As Long, ByVal lpszSubKey As String, 
    phkResult As Long) As Long 
     
        Declare Function OSRegSetValueEx Lib“ advapi32” Alias 
    “ RegSetValueExA” ( ByVal hKey As Long, ByVal lpszValueName As String, 
    ByVal dwReserved As Long, ByVal fdwType As Long, lpbData As Any, 
    ByVal cbData As Long) As Long 
     
        Declare Function OSRegCloseKey Lib“ advapi32” Alias 
    “ RegCloseKey” (ByVal hKey As Long) As Long 
     
    4、 在 Moudle 1中 编 写 函 数 。 
        Function RegOpenKey(ByVal hKey As Long, ByVal lpszSubKey As String, 
    phkResult As Long) As Boolean 
        Dim lResult As Long 
        On Error GoTo 0 ` 关 闭 错 误 陷 阱 
        lResult = OSRegOpenKey(hKey, lpszSubKey, phkResult) 
        If lResult = 0 Then 
        RegOpenKey = True 
        Else 
        RegOpenKey = False 
        End If 
        End Function 
        Function RegSetStringValue(ByVal hKey As Long, ByVal strValueName As String, 
    ByVal strData As String, Optional ByVal fLog) As Boolean 
        Dim lResult As Long 
        On Error GoTo 0 
        lResult = OSRegSetValueEx(hKey, strValueName, 0& , REG_SZ, ByVal strData, 
    LenB(StrConv(strData, vbFromUnicode)) + 1) 
        If lResult = 0 Then 
        RegSetStringValue = True 
        Else 
        RegSetStringValue = False 
        End If 
        End Function 
        Function StripTerminator(ByVal strString As String) As String 
        Dim intZeroPos As Integer 
        intZeroPos = InStr(strString, Chr$ (0)) 
        If intZeroPos > 0 Then 
        StripTerminator=Left$ (strString, intZeroPos - 1) 
        Else 
        StripTerminator = strString 
        End If 
        End Function 
        Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String, 
    strData As String) As Boolean 
        Dim lResult As Long 
        Dim lValueType As Long 
        Dim strBuf As String 
        Dim lDataBufSize As Long 
        RegQueryStringValue = False 
        On Error GoTo 0 
        lResult = OSRegQueryValueEx(hKey, strValueName, 0& , lValueType, ByVal 0& , 
    lDataBufSize) 
        If lResult = ERROR_SUCCESS Then 
        If lValueType = REG_SZ Then 
        strBuf = String(lDataBufSize, “ ” ) 
        lResult = OSRegQueryValueEx(hKey, strValueName, 0& , 0& , ByVal strBuf, 
    lDataBufSize) 
        If lResult = ERROR_SUCCESS Then 
        RegQueryStringValue = True 
        strData = StripTerminator(strBuf) 
        End If 
        End If 
        End If 
        End Function 
    5、 双 击 Command1, 编 写 Click事 件 代 码 。 
        Private Sub Command1_Click() 
        Dim hKey As Long 
        Dim MyReturn As Long 
        Dim MyData As String 
        MyReturn = OSRegOpenKey(HKEY_CLASSES_ROOT, “ .exc” , hKey) 
        MyReturn=RegQueryStringValue(hKey,“ ” ,MyData) 
        MyReturn=OSRegOpenKey(HKEY_CLASSES_ROOT, MyData+ “ \shell\open\command” ,hKey) 
        MyReturn = RegSetStringValue(hKey,“ ” ,“ c:\visio.exe 1% ” , False) 
        If MyReturn Then 
        MsgBox “ 改 变 文 件 打 开 方 式 成 功 ! ” ,vbInformation,“ 请 注 意 ” 
        Else 
        MsgBox “ 改 变 文 件 打 开 方 式 失 败 ! ” ,vbExclamation,“ 请 注 意 ” 
        End If 
        OSRegCloseKey (hKey) 
        End Sub 
        6、 按 F5运 行 程 序 , 在 简 体 中 文 Windows95/ NT/ 98、 vb6.0/ 6.0环 境 中 调 试 通 过 。 
    ㈡ 利 用 Delphi编 程 
        1、 在 Delphi3.0 IDE中 , 新 建 工 程 Project1, 在 Form1上 添 加 按 钮 Button1。 
        2、 在 uses子 句 中 添 加 Registry。 
        3、 双 击 Button1, 编 写 Click事 件 代 码 。 
        procedure TForm1.Button1Click(Sender: TObject); 
        var 
        MyRegistry : TRegINIFile; 
        Return:string; 
        begin 
        try 
        MyRegistry := TRegINIFile.Create(``); 
        MyRegistry.RootKey := HKEY_CLASSES_ROOT; 
        Return:=MyRegistry.ReadString (`.gid`,``,`No! Not Found the Key!`); 
        MyRegistry.WriteString(Return,``,`这 只 是 一 个 演 示 ! `); 
        MyRegistry.WriteString(Return+ `\DefaultIcon`,``,`c:\visio.exe,1`); 
        MyRegistry.WriteString(Return+ `\shell\open\command`,``,`c:\visio.exe % 1`); 
        finally 
        MyRegistry.Free; 
        end; 
        ShowMessage(`改 变 文 件 打 开 方 式 成 功 ! `); 
        end; 
        4、 按 F9运 行 程 序 , 在 简 体 中 文 Windows95/ NT/ 98、 Delphi3.0/ 4.0环 境 中 调 试 通 过 。 
<END>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -