【漆天编程】Powerbasic语言读写注册表函数

最近学了下C++,感觉C++真的挺难,太多的数据类型,数据结构等等,太难了,编写程序还是PowerBasic10方便简单,编译快,运行也快,尤其是编写DLL,爽歪歪!

下面是全局定义

$DefCompany = "Software\QItian"
GLOBAL mCompany AS STRING

使用Powerbasic读取注册表数据函数

FUNCTION REG_GetSetting(BYVAL AppName$,BYVAL Section$,BYVAL Key$,BYVAL Default1$)EXPORT AS STRING
  LOCAL RetCode AS LONG
  LOCAL hKey AS LONG
  LOCAL ThisValueLen AS LONG
  LOCAL ValueType AS LONG
  DIM  Value AS STRING
  LOCAL SubKey AS STRING
    Value = SPACE$(3000)
    IF LEN(mCompany)= 0 THEN mCompany = $DefCompany
    SubKey = mCompany & "\" & AppName$ & "\" & Section$
    ' Assume failure and set return to Default
    FUNCTION = Default1$
  '--Open registry-key-----------------------------
    RetCode = RegOpenKeyEx(%HKEY_LOCAL_MACHINE,BYVAL STRPTR(SubKey), 0&, %KEY_ALL_ACCESS, hKey)
    IF RetCode = %ERROR_SUCCESS THEN
  '--Set appropriate value for default query-------
      IF Key$ = "*" THEN Key$ = CHR$(0,0)
        ThisValueLen = LEN(Value)
        RetCode = RegQueryValueEx(hKey, BYVAL STRPTR(Key$), 0&, ValueType, BYVAL STRPTR(Value),ThisValueLen)
        IF RetCode = %ERROR_SUCCESS THEN
  '--Trim NULL and return successful query---------
          FUNCTION = LEFT$(Value, ThisValueLen - 1)
        END IF
      CALL RegCloseKey(hKey)
    END IF
END FUNCTION

使用Powerbasic写入注册表数据函数

FUNCTION REG_SaveSetting(BYVAL AppName$,BYVAL Section$, BYVAL Key$,BYVAL Value$)EXPORT AS LONG
  LOCAL RetCode AS LONG
  LOCAL hKey AS LONG
  LOCAL Result AS LONG
  LOCAL SubKey AS STRING
    IF LEN(mCompany)= 0 THEN mCompany = $DefCompany
    SubKey = mCompany & "\" & AppName$ & "\" & Section$
  '--Open (or create and open) registry-key--------
    RetCode = RegCreateKeyEx(%HKEY_LOCAL_MACHINE, BYVAL STRPTR(SubKey), 0&, _
              BYVAL %Null, %REG_OPTION_NON_VOLATILE, %KEY_ALL_ACCESS, BYVAL 0&, _
              hKey, Result)
    IF RetCode = %ERROR_SUCCESS THEN
  '--Set appropriate value for default query-------
      IF Key$ = "*" THEN Key$ = CHR$(0,0)
  '--Null-terminate setting, in case it's empty Strange mirroring can occur otherwise.
      Value$ = Value$ & CHR$(0)
  '--Write new value to registry-------------------
      RetCode = RegSetValueEx(hKey, BYVAL STRPTR(Key$), 0&, %REG_SZ, BYVAL STRPTR(Value$), LEN(Value$))
        CALL RegCloseKey(hKey)
    END IF
    FUNCTION = (RetCode = %ERROR_SUCCESS)
  END FUNCTION

以上代码,亲测有效,今天发上来,便于自己今后查阅,也给感兴趣的用户来用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PowerBASIC是一种基于BASIC语言编程语言。它可以用于开发Windows应用程序,包括使用ListView控件来显示数据列表。以下是使用PowerBASIC创建和使用ListView控件的示例代码: ``` #COMPILE EXE #DIM ALL #INCLUDE "WIN32API.INC" FUNCTION PBMAIN () AS LONG LOCAL hDlg, hList AS DWORD DIALOG NEW 0, "List View Example", , , 200, 200, %WS_OVERLAPPEDWINDOW TO hDlg CONTROL ADD "SysListView32", hDlg, %IDC_LISTVIEW, "", 10, 10, 180, 180, _ %WS_CHILD OR %WS_VISIBLE OR %LVS_REPORT OR %LVS_SINGLESEL ListView_SetExtendedListViewStyle GetDlgItem(hDlg, %IDC_LISTVIEW), _ %LVS_EX_FULLROWSELECT OR %LVS_EX_GRIDLINES ListView_InsertColumn GetDlgItem(hDlg, %IDC_LISTVIEW), 0, "Column 1", 100 ListView_InsertColumn GetDlgItem(hDlg, %IDC_LISTVIEW), 1, "Column 2", 100 ListView_InsertItem GetDlgItem(hDlg, %IDC_LISTVIEW), 0, "Item 1" ListView_SetItemText GetDlgItem(hDlg, %IDC_LISTVIEW), 0, 1, "Value 1" ListView_InsertItem GetDlgItem(hDlg, %IDC_LISTVIEW), 1, "Item 2" ListView_SetItemText GetDlgItem(hDlg, %IDC_LISTVIEW), 1, 1, "Value 2" DIALOG SHOW MODAL hDlg CALL DlgProc END FUNCTION CALLBACK FUNCTION DlgProc() AS LONG SELECT CASE CBMSG CASE %WM_COMMAND IF CBCTL = %IDCANCEL THEN DIALOG END CBHNDL, 0 END IF END SELECT END FUNCTION ``` 这个示例代码创建了一个具有两个列的ListView控件,并在其中插入了两个项目。通过设置`%LVS_REPORT`样式,ListView控件将显示为报表视图,每个项目将显示为一行,每个列将显示为一个数据字段。通过设置`%LVS_EX_FULLROWSELECT`和`%LVS_EX_GRIDLINES`样式,ListView控件将启用整行选择和网格线。可以使用`ListView_InsertItem`和`ListView_SetItemText`函数向ListView控件中插入和设置项目和列的文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漆学军

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值