最近学了下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
以上代码,亲测有效,今天发上来,便于自己今后查阅,也给感兴趣的用户来用。