レジストリ

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: レジストリ

by GTR » 2006年5月07日(日) 20:13

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

あ..

by C1000 » 2006年5月07日(日) 17:27

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

by konisi » 2006年5月07日(日) 17:24

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

コード: 全て選択

Open Mid$(buffer,hTop,hEnd-hTop) For Input As #1 
では?

by C1000 » 2006年5月07日(日) 15:47

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

コード: 全て選択

Open Mid$(buffer,hTop,hEnd-hTop For Input As #1

それだと

by konisi » 2006年5月07日(日) 15:19

それだと、(0,Mid$(buffer,hTop,hEnd-hTop))っていう名前のファイルをインプットモードで開けるだけなので、おそらく無理ですよ。

by GTR » 2006年5月06日(土) 21:14

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

コード: 全て選択

Open "(0,Mid$(buffer,hTop,hEnd-hTop))" For Input As #1
    Input #1,File
    SetDlgItemText(hMainWnd,EditBox1,File)
間違っているところがあると思うのですが、よく分かりません。

by C1000 » 2006年5月06日(土) 19:28

あとはサンプルのテキストエディダのファイルを開く部分に取得したファイル名を設定すればエディットボックスにセットできるはずです。
(変数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)
テストしていないので動くかどうかわかりません。

by Toshi » 2006年5月06日(土) 19:22

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

by GTR » 2006年5月06日(土) 19:11

レジストリの設定はもう解決いたしました。
しかし、何度も言うようですが、その関連付けされているファイルをダブルクリックすると、そのファイルの内容(ここではテキストファイルの中だと考えてください)を取得してエディットボックスにセットする。
これが私の目標です。

by Toshi » 2006年5月03日(水) 21:10

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

追記
なんか場違いな回答をしてしまったと気付きました。すみません。

by GTR » 2006年5月03日(水) 19:36

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

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

コードのサンプルの提供をお願いします。

by C1000 » 2006年4月28日(金) 21:11

ファイル名のところにパスを指定します。(これは読み取り専用で開く場合です。後はヘルプを見てアクセス権を変えてください。)

コード: 全て選択

Open "ファイル名" For Input As #1

by GTR » 2006年4月23日(日) 17:18

Open・Input #命令はまだやったことがないのですが、どうやればいいのでしょうか?ヘルプファイルを見ても良く分からないのですが。

by hira » 2006年4月23日(日) 16:51

そこで、ゲストさんの仰るようにそのファイルパスを使ってファイルを開けばいいわけです。
ヘルプファイルのOpen・Input #あたりを参照してみてください。これらの命令を使えばそのファイルの中身が得られます。

by GTR » 2006年4月23日(日) 16:22

やはり説明不足でしたね。
C1000さんが書かれたコードを組んでみましたが、拡張子を関連付けされたアイコンをクリックすると、どこにあるかというのが出てきました。
というのは、Cドライブのどこという感じです。
説明不足でした。私がしたいのは、どこにあるかではなく、そのファイルの内容をEditBox1にセットしたいのです。
説明不足ですいませんでした

ページトップ