• 締切済み

VB6.0でINIファイルからデータを読み込みたいです

INIファイルからPCのモニターとフォームサイズデータの比率を読み込み、そのデータを元にフォームを画面を呼び出したいのですが、どの様にしてよいかがわかりません。申し訳ありませんが教えていただけないでしょうか?? ちなみにINIファイルのデータを読み込み、ボタンに名前を表示するといったことはできました。

みんなの回答

  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

INIファイルのデータの読み方と、更新を説明します。 'ini情報取得 Declare Function GetPrivateProfileString Lib "KERNEL32.DLL" _ Alias "GetPrivateProfileStringA" _ (ByVal lpAppName As String, ByVal lpKeyName As String, _ ByVal lpDefault As String, ByVal lpReturnedString As String, _ ByVal nSize As Long, ByVal lpFileName As String) As Long 'ini情報更新 Declare Function WritePrivateProfileString Lib "KERNEL32.DLL" _ Alias "WritePrivateProfileStringA" _ (ByVal lpAppName As String, ByVal lpKeyName As String, _ ByVal lpString As String, ByVal lpFileName As String) As Long ' 機能 :設定ファイルの読み込み ' ' 返値 :設定文字数 ' ' 引数 :StrSection - 設定ファイルのセクション名 ' StrEntry - 設定ファイルのエントリー名 ' StrDefault - 設定デフォルト値 ' ' 機能説明 :設定ファイル(*.INI)から値(設定文字列)を取得する ' ' 備考 : ' Public Function GetProfile(StrSection As String, StrEntry As String, StrDefault As String, StrIniFileName As String) As String Dim LInt_Length As Integer '' 対象文字数 Dim LStr_ProFile As String * 256 '' 取得文字列 Dim LInt_RetBufSize As Integer LInt_RetBufSize = 256 LStr_ProFile = String$(256, " ") '' 読み込み実行 LInt_Length = GetPrivateProfileString$(StrSection, StrEntry, StrDefault, LStr_ProFile, _ LInt_RetBufSize, StrIniFileName) If LInt_Length <> 0 Then GetProfile = Trim$(StrConv(LeftB$(StrConv(LStr_ProFile, vbFromUnicode), LInt_Length), vbUnicode)) Else GetProfile = "" End If End Function ' 機能 :設定ファイルの書き込み ' ' 返値 :設定文字数 ' ' 引数 :StrSection - 設定ファイルのセクション名 ' StrEntry - 設定ファイルのエントリー名 ' StrDefault - 設定デフォルト値 ' ' 機能説明 :設定ファイル(*.INI)に値(設定文字列)を設定する ' ' 備考 : ' Public Function PutProfile(StrSection As String, StrEntry As String, StrWrite As String, StrIniFileName As String) As Boolean Dim LInt_Length As Integer '' 対象文字数 '' 読み込み実行 LInt_Length = WritePrivateProfileString$(StrSection, StrEntry, StrWrite, StrIniFileName) If LInt_Length <> 0 Then PutProfile = True Else PutProfile = False End If End Function

参考URL:
http://www.red.oit-net.jp/tatsuya/vb/INI.htm
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

デスクトップの大きさは Screenオブジェクトから算出できます 幅:Screen.Width、高さScreen.Height 単位はTWIPSですのでPixel(ドット)で欲しいなら ScreenオブジェクトのTwipsPerPixelX/TwipsPerPixelYプロパティによって除算しましょう dx = Screen.Width / TwipsPerPixelX dy = Screen.Height / TwipsPerPixelY

  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.1

フォームサイズは、そのフォームのScaleWidthやScaleHeightプロパティで取得することができますよね。 ディスプレイサイズ(解像度)は、以下のようなAPI関数を使って取得できますので(X=1280, Y=800等のピクセル値)、両者の値から行いたい値を算出して、フォームの前述のプロパティを変更すれば良いのではないでしょうか。 Option Explicit Private Declare Function GetSystemMetrics Lib "user32" _       (ByVal nIndex As Long) As Long Private Const SM_CXSCREEN As Long = 0 Private Const SM_CYSCREEN As Long = 1 Private Sub Form_Load()   Dim X As Long, Y As Long   X = GetSystemMetrics(SM_CXSCREEN) '画面の幅を取得します。   Y = GetSystemMetrics(SM_CYSCREEN) '画面の高さを取得します。   Debug.Print X, Y End Sub 注)ステートメントを見易くするため先頭に全角スペースを入れてます。  

関連するQ&A

  • iniファイルへの追記について

    FORM上の保存ボタンをクリックしたら、フォームに入力したデータがiniファイルへ追記していくというものを作りたいのですがわかりかねています。 フォームのソースで作っていこうとしていて、 ソースの始めは public sub Command保存_Click() で始まり、End sub で終りますよね? そこで フォーム上の値、例えば、3 を変数 a_col に格納します。ここまではできます。 この格納したものをiniファイルと同じものをあらわす名前のini_colに格納し、iniファイルに ini_col=3と表示したいのです。 iniファイルから、フォームへ取り込むところまではなんとかできました。 初心者ですのでアドバイスおねがいします。

  • CLI iniファイル読み込み

    お世話になります CLIでiniファイルを読み込む際の方法を御教授下さい フォームのサイズ等をファイルに格納し、 次の起動時に同じサイズのフォームを立ち上げるため、 サイズ情報を格納したファイルをiniファイルとします MFCを使用しないで、iniファイルからサイズ情報を得る場合、 StreamReader等で読み込んでいくしかないのでしょうか? 何か、それに変わるモノが存在するのでしょうか? よろしくお願い致します

  • iniファイルとの比較(iniファイル操作)

     初めまして私はVB6.0の初心者でVB6.0について勉強しています。現在以下のようなiniファイル操作について分からないことがあります。 ・プログラム内容 テキストボックスにログインID(例えばenshu)を入力しOKボタンを押して、iniファイル(例えばrenshu.ini)にある情報と照合してもしiniファイルに無かったら「ログインできません」というメッセージボックスを出すプログラム。 条件 ・ フォームにテキストボックス(Text1.Text)とコマンドボタン(OKボタン)がある ・ Iniファイルの形式(renshu.ini) IDNO(セクション名) OK_ID(キー名)1 = “enshu”(ログインID) OK_ID(キー名)2 = “ren”(ログインID) OK_ID(キー名)3 = “shu”(ログインID) 上のような形式が不特定多数ある ・ Iniファイルの保存場所 c:\work\renshu.ini 私の場合以下のように書きました。 Private Sub OK_Click() 'OKボタンがクリックされたら If  Text1.Text <> GetIniString("IDNO", "OK_ID", "c:\work\renshu.ini") Then '入力したログインIDがiniファイルに無い場合 'メッセージ表示 MsgBox "ログインできません" End If End Sub としましたがメッセージボックスが表示されません。なぜなのでしょうか。教えてください。宜しくお願いいたします。

  • iniファイルに追記がしたいです。

     いつもお世話になっています。  iniファイルの中のあるデータをGetPrivateProfileStringで調べて、その中になければデータを  追記したいです。  WritePrivateProfileStringの場合、iniファイルにあるデータが追記したい内容がないだけで、他のデータが 入っていても、上書きされてしまうんですよね?  もしその中に他のデータが入っていた場合は、追記をしたいのですが、それができるAPI関数って  何かありますか?  iniファイルに関して、ネットで調べていると、WritePrivateProfileStringなどしか出てこなくて・・・。  もしできないようでしたら、追記できるような何かいいアイディアがあれば・・・と思っています。  すみませんが、よろしくお願いします。  わかりづらい文章で申し訳ありません。

  • 半透明なiniファイルは削除していいのでしょうか?

    すみません。度々お世話になります。 Win7のPCの画面上に突如姿を表したdesktop.iniファイルがあります。 これは起動時にいつも表示されるのですが、 iniファイルだけに削除していいのか困っております。 パソコンにお詳しい方、削除してもよろしいかどうか。 教えて頂けないでしょうか。宜しくお願い致します。

  • powershellとiniファイル

    ps1よりiniファイルを読み込むスクリプトを作成中です。 iniファイルには以下の記載をしています。 いわゆる連想配列です。 $info = @{} $info[0] = @{ host=testest1 ip=192.168.0.0 } $info[1] = [ host=testest2 ip=192.168.0.1 } 一方、ps1は以下の通り、コードを記述しています。 $INI_PATH = @(Split-Path $script:myInvocation.MyCommand.Path -Parent).Trim() $INI_FILE = "ini_test2.ini" $INI_FULLNAME = $INI_PATH + "\" + $INI_FILE $PARAMETER = @{} Get-Content $INI_FULLNAME | %{$PARAMETER += ConvertFrom-StringData $_} $host_info = $PARAMETER.info[0] #値格納 $host_info いざ、実行すると、 「ConvertFrom-StringData : データ行 '}' の形式が '名前=値' ではありません。」、「項目は既に追加されています。」とのエラーが出ます。 どのように変えればエラーがなくなりますでしょうか。 Powershellの初歩的な質問で申し訳ないのですが、ご回答をよろしくお願いいたします。

  • iniファイルを読み込んでからその後

    おはようございます。 VB6.0使っています。 iniファイルを読み込んできて01~05の名称をFORMに並べてあるテキストボックスに表示。 読み込んできた名称をFORMにて表示させたら修正したり追加したり出来ます。 そして最後にはまたiniファイルに保存させます。(保存ボタンがあります) でもiniファイルにある設定番号にある01のみ変更出来ないようにしたいのです。 ここでは東京本店。テキストボックスに表示させたのを変更できないようにしたいのです。 何かいい方法はないでしょうか。 ヒントでもアドバイスでもツッコミでもかまいません。 よろしくお願いいたします。 iniファイル [MY_NO] ;設定番号 MY_NO=01 ; [MY_NAME] ;名称 01=東京本店, 02=大阪支店, 03=, 04=, 05=, ;

  • ファイル内でのini_set

    ファイル内でのini_setの挙動について意味がわかりません。 エラー表示を制御させたくphpファイル内にini_set('display_errors', 0);としました。 echo ini_get('display_errors');//1と表示 ini_set('display_errors', 0); //$str = "aaa" echo ini_get('display_errors');//0と表示 exit; この状態で$strのコメントを外すとなぜかエラーがきっちり表示されてしまいます。 調べたところファイル内で設定できないものもあるがこの項目についてはファイル内で 制御できるとありました。 .htaccessではinclude_pathの設定をしているだけでdisplay_errorsの設定はしておらず全く 原因がわかりません・・・ちなみに.htaccessでphp_value display_errors Offを入れると エラーは表示されません。 環境はphp5でxamppを利用しております。 ローカルか運用サーバーかでそれぞれの制御を変えたくできればphp内で行いたいのですが どうすればいいものでしょうか?

    • 締切済み
    • PHP
  • 『SYSTEN.INIファイルがありません』

    PCを立ち上げ、windows98の画面の後 『SYSTEN.INIファイルがありません』 という文字が出てしまいます。 アインストールしてくれとかいろいろかいてあるのですが、 全くをもってどうしたら良いのかが分かりません。 買った時に入っていたCD-ROMとかをいれるのでしょうか。 だとしたらば何とかいてあるのを入れれば良いのでしょうか。 もしくは他に方法があるのでしょうか。 皆様よろしくお願いします。

  • SYSTEM INIのファイル?

    PCで作業をしていたところ、急に画面が青くなり、エラーメッセージがでました。 エラーを防ぐためにSYSTEM INIのファイルの設定を増やしてください。現在は5SPアロケートしています。 というようなことでした。どう対処したらいいんでしょうか。今、PCが使えなくなったら、かなり困るので困っています。どなたか教えて下さい。

専門家に質問してみよう