レジストリを格納するために、以下のように宣言し、
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Integer, ByVal lpSubKey As String, ByVal Reserved As Integer, ByVal lpClass As String, ByVal dwOptions As Integer, ByVal samDesired As Integer, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Integer, ByRef lpdwDisposition As Integer) As Integer
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Integer, ByVal lpValueName As String, ByVal Reserved As Integer, ByVal dwType As Integer, ByRef lpData As String, ByVal cbData As Integer) As Integer
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Integer) As Integer
以下のようなコードで、ユーザーエージェントをmozillaからoperaへ(またはoperaからmozilla)書き換えようとしていますが、うまくいきません。
問題点1.同じuser agentの下に”(既定)”が2つできてしまう
問題点2.データが正しく(operaと)書き込まれず、文字化けしたものが書き込まれている。
C言語用のサンプルやVB6.0のサンプルは見ますが、VB2003ではどのように指定するのか、わかりませんでした。
Dim ret As Long
Dim hKey As Long, lngDisposition As Long
Dim udt As SECURITY_ATTRIBUTES
Dim myroot_key As String, mysub_key_user_agent As String, myName As String,StrValue As String
myroot_key = &H80000002 '"HKEY_LOCAL_MACHINE" を指定している
mysub_key_user_agent ="Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent"
myName = "(既定)"
strValue="Opera"
ret = RegCreateKeyEx(myroot_key, mysub_key_user_agent, 0&, vbNullString, _
0, &H4 Or &H2, udt, hKey, lngDisposition)
If ret = 0 Then ret = RegSetValueEx(hKey, myName, 0, 1, strValue, Len(strValue) + 1)
RegCloseKey(hKey)
No.1ベストアンサー
- 回答日時:
Registryクラスや RegistryKeyクラスを使ったほうが簡単かも
参照設定としてファイルの冒頭で
Imports Microsoft.Win32
を追加します
ボタンのクリックイベントなどで
Dim oRegKey as RegistryKey
oRegKey = Registory.LocalMachine
oRegKey = oRegKey("レジストリーパス",True)
oRegKey.SetValue( Nothing,"opera")
といった具合でよさそうですよ
既定のデータを設定する場合 SetValueのName引数はNothingにするようです
VB2005付属のヘルプで確認してみてください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAエディタのコード画面で、カ...
-
[c++]#using "user32.dll"でエラー
-
res://ieframe.dll/について
-
実行ファイルからソースファイ...
-
C# DLL エントリ ポイントが...
-
インターネットを開いていて、...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<math.h>があるのにsqrtが・...
-
アプリケーションのDLLファイル...
-
math.hに含まれる関数が使えない
-
<unistd.h>をVisualStudioでつ...
-
BC30002: 型 'ListItem' が定義...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
Visual studio2017で、2回目の...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
C言語をコンパイルするとコンピ...
-
#If True Then の # って何??
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP.NETのDLL入れ替えについて
-
visual studioの不要なDll削除方法
-
VB6.0(SP6)にて開発を行なって...
-
C# DLL エントリ ポイントが...
-
res://ieframe.dll/について
-
ファイルをvbaで圧縮したいので...
-
M365にアップデートしてからコ...
-
VBにてIMEの入力モードを変える...
-
WIN10で常にフォームを手前に
-
指定された引数が有効範囲にな...
-
VBAエディタのコード画面で、カ...
-
user32.dllがないためアプリが...
-
ボーランドC++でのDLL作成トラブル
-
VBからIMEパッドを呼び出す方法...
-
VB.NET xdoc2txtをつかってPDF...
-
Excel2007のVBAで、セル範囲を...
-
shell32.dll のアイコンを使っ...
-
about:blankの削除したいのです...
-
USB機器のCプログラミングについて
-
dllをいじる。。
おすすめ情報