レジストリ

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
メッセージ
作成者
GTR

#31 投稿記事 by GTR »

セットするときにはどうやれば良いでしょうか?

ABまだ始めて4ヶ月目。
大分慣れてきましたが、命令や関数については、ほとんど知識がありません。

コードのサンプルの提供をお願いします。
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

#32 投稿記事 by Toshi »

ヘルプの「Win32API - システム サービス - レジストリ」にある "Reg~" で始まる API を使います。
RegCreateKeyEx でキーを作成し(既に存在しているなら開き)、
RegSetValueEx で値を設定し、RegCloseKey でキーを閉じればいいでしょう。
設定した値を読み込む場合は、RegQueryValueEx を使う必要があります。

追記
なんか場違いな回答をしてしまったと気付きました。すみません。
最後に編集したユーザー Toshi [ 2006年5月06日(土) 19:25 ], 累計 1 回
GTR

#33 投稿記事 by GTR »

レジストリの設定はもう解決いたしました。
しかし、何度も言うようですが、その関連付けされているファイルをダブルクリックすると、そのファイルの内容(ここではテキストファイルの中だと考えてください)を取得してエディットボックスにセットする。
これが私の目標です。
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

#34 投稿記事 by Toshi »

「ファイルの内容を取得してエディット ボックスにセットする」というのは以前の投稿に既に答えがありますので、
そこを読み返してみてはどうでしょうか。
ファイルの内容を取得する方法については、その他にも CreateFile API があります。
C1000

#35 投稿記事 by C1000 »

あとはサンプルのテキストエディダのファイルを開く部分に取得したファイル名を設定すればエディットボックスにセットできるはずです。
(変数Fileにファイル名が入っている事とします。)

コード: 全て選択


    Dim hEdit As Long
    Dim File  As String  
    Dim hFile As Long
    Dim dwFileSize As DWord
    Dim dwAccessByte As DWord
    Dim FileName[MAX_PATH-1] As Byte
    Dim buffer As BytePtr  
    '-------------------
    ' ファイル オープン
    '-------------------

    hFile=CreateFile(File, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, _
                     ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
    If hFile=INVALID_HANDLE_VALUE Then
        MessageBox(hMainWnd,"ファイルオープンに失敗","エラー",MB_OK or MB_ICONEXCLAMATION)
        Exit Sub
    End If

    'ファイルサイズを取得し、バッファを確保する
    dwFileSize=GetFileSize(hFile,0)
    buffer=malloc(dwFileSize+1)

    'ファイルの内容を文字列変数bufferに読み込む
    ReadFile(hFile,buffer,dwFileSize,VarPtr(dwAccessByte),ByVal 0)
    buffer[dwAccessByte]=0

    'ファイル ハンドルを閉じる
    CloseHandle(hFile)

    '-------------------


    'EditBox1のハンドルを取得
    hEdit=GetDlgItem(hMainWnd, EditBox1)

    'hEditにバッファをセットする
    SetWindowText(hEdit,buffer)

    'バッファを解放する
    free(buffer)

    'hEditにフォーカスをセット
    SetFocus(hEdit)
テストしていないので動くかどうかわかりません。
GTR

#36 投稿記事 by GTR »

前の投稿に答えがあるとおっしゃっていたので、コードを書いてみましたが
コンパイルしてもうまくいきません。

コード: 全て選択

Open "(0,Mid$(buffer,hTop,hEnd-hTop))" For Input As #1
    Input #1,File
    SetDlgItemText(hMainWnd,EditBox1,File)
間違っているところがあると思うのですが、よく分かりません。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

それだと

#37 投稿記事 by konisi »

それだと、(0,Mid$(buffer,hTop,hEnd-hTop))っていう名前のファイルをインプットモードで開けるだけなので、おそらく無理ですよ。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
C1000

#38 投稿記事 by C1000 »

Openの部分はこうすれば動くと思います。

コード: 全て選択

Open Mid$(buffer,hTop,hEnd-hTop For Input As #1
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#39 投稿記事 by konisi »

それだとカッコの数があってないと思うのだが。

コード: 全て選択

Open Mid$(buffer,hTop,hEnd-hTop) For Input As #1 
では?
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

あ..

#40 投稿記事 by C1000 »

すいません見落としてました。
GTR

#41 投稿記事 by GTR »

コードをあわせて組んでみましたが、ファイルの一行目のみが表示されました。
最後までは表示されませんでしたが、なぜでしょうか?
返信する