VB2010でEXEプログラムのプロパティの読み書き方法

このQ&Aのポイント
  • VB2010で作成したEXEプログラムのプロパティの読み書き方法について教えてください。
  • Test.exeのプロパティを書き込む方法がわかりません。プログラムを呼び出してフォームを最大化し、任意の位置に表示させたいです。
  • Test.exeのプロパティはMy Projectの設定で定義されており、My_XとMy_Yが位置の情報を持っています。どのようにプロパティを読み書きすればよいでしょうか?
回答を見る
  • ベストアンサー

VB2010のプロパティの読み書き処理

VB2010で作成したEXEプログラムがあります。 このプログラムを別のVB2010で呼び出しています。 Shell("K:\Test.exe", vbNormalFocus) フォームは最大化して、Test.exeを任意の位置に 表示させたいのですが、Test.exeのプロパティを 書き込む方法がわかりません。 Test.exeのプロパティはMy Projectの設定で My_x Integer ユーザー 0 My_y Integer ユーザー 0 としています。 Test.exeでは位置の設定は Dim i As Integer = My.Settings.My_X Dim j As Integer = My.Settings.My_Y With Me .Top = j .Left = i End With どなたか教えてもらえませんか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

No2です。 あなたがやりたいことは、 「プログラムAからプログラムBの画面位置を変更したい。」 ということだと思います。 条件としては、 「プログラムBは起動時にその画面位置を読み込んで設定する。」 ということですね? だとすると、 ・プログラムAはどこかに画面位置情報を保存する。 ・プログラムBはプログラムAで保存された画面位置情報を読み込んで設定する。 ということが解決策だと思います。 であれば、その画面位置情報をやり取りする手段を講じる必要があるわけです。 それは、レジストリであってもいいし、XMLファイルであってもいいし、単なるテキストファイルでもいいわけです。 手段を決めたら、自分で調べて勉強して実現すればいいです。 「VB.NET レジストリ」とか 「VB.NET XML」とか 「VB.NET ファイル入出力」とか ネットで調べれば、詳しい情報はいくらでも出てきます。 それにチャレンジした上で、どうしてもわからないことがあれば、質問したらいいかと思います。

sys19502571
質問者

お礼

回答有難うございます。 私の質問の意図をわかってくださり、有難うございます。 プロパティの事をネットでいろいろ調べたのですが いまいち、私の意図にあうサイトがなかったもので 質問させて頂いた次第です。 実は私、今年7月に定年退職した65歳の老人です。 40年ちょっと前、NECのPC8001でNBASICに出会い それ以来PCを二十数台買い替え、妻と子供には PCオタクと笑われています。上の孫が中一で、 今は、彼もPCオタクで私の唯一の味方です。 あ、すみません私事で。 私はVB6.0でそれまでに作ったプログラムを 書き替えました。同じような内容のプログラムが あったので、VB6.0で初めて知ったアクティブXで 作り替え、楽しかったです。 定年を機にVB2010に挑戦しています。ボケ防止のために。 そこでVB2010でアクティブXのようなものを作りたくて 質問した訳です。 VB2010はVB6.0と違い、難しいです。 何か、文法こそ違うけれどC#なんかと同じような気がします。 ファイル入出力でやってみます。 ファイルに関しては書き替えが完了していますので、 なんとかなりそうです。障害はあると思いますが、 これも勉強ですね。 本当に有難うございました。

その他の回答 (2)

回答No.2

アプリケーション設定ファイルにこだわらずに、ドキュメントフォルダ内に設定値を保存したファイルを置けば解決じゃないんですか?

sys19502571
質問者

補足

回答有難うございます。 なにぶん、VB2010はド素人以下の私です。 もう少し詳しく教えてもらえればと。 よろしくお願いいたします。

  • chie65535
  • ベストアンサー率43% (8528/19386)
回答No.1

>Shell("K:\Test.exe", vbNormalFocus) >フォームは最大化して、Test.exeを任意の位置に >表示させたいのですが、Test.exeのプロパティを >書き込む方法がわかりません。 Shell関数だけでは無理です。 CreateProcess等で、新しいプロセスを作成し、作成されたプロセスのプロセス情報を元にウィンドゥを特定し、特定したウィンドゥに対し、SetWindowPosを行なう事になります。

sys19502571
質問者

補足

回答、有り難うございます。 VB2010はまだ、始めてから3か月なもので 出来れば何かサンプルプログラムを教えて下されば 有難いのですが。

関連するQ&A

  • VB6のTYPE文をVB.NETのStructureに変えるとき

    VB6のTYPE文をVB.NETのStructureに変えるとき 下記VB6のコードをVB.NETのStructureに変える場合 Type kouzou1 i As Integer j As Integer a As String * 20 b As String * 50 End Type を下記にしてみたのですが *20,*50のところは、どのように表現するのでしょうか。 Structure kouzou1 Dim i As Integer Dim j As Integer Dim a As String * 20 <- ステートメントの終わりを示してくださいのエラーになる。 Dim b As String * 50 <- ステートメントの終わりを示してくださいのエラーになる。 End Structure お教え下さい。

  • VB6→VB2005アップグレードの際のエラー

    VBを勉強中です。段階としては書籍やサイトの見本プログラムを いくつか真似て作っているところです。 質問ですがVB6で作られたプログラムのバージョンアップを 行っています。VS2005を使いアップグレードを行った際 UPGRADE_WARNINGが発生し、デバッグできない状態です。 エラーを潰してデバッグしたいのですが、どう直して良いのか 教えて下さい。 "配列型の次元数が異なるため、型 'Object の 2 次元配列' の値を 'Object の 1 次元配列' に変換できません。" 構文は以下の通りです。 Public Sub Sort(ByRef Ar() As Object, ByRef rs As Integer, ByRef cs As Integer, ByRef Re As Integer, ByRef ce As Integer, ByRef keyc As Integer) Dim i As Integer Dim j As Integer Dim k As Integer Dim aa As Object For i = rs To Re - 1 For j = i + 1 To Re 'UPGRADE_WARNING: オブジェクト Ar(j, keyc) の既定プロパティを解決できませんでした。 'UPGRADE_WARNING: オブジェクト Ar(i, keyc) の既定プロパティを解決できませんでした。 If Ar(i, keyc) > Ar(j, keyc) Then For k = cs To ce 'UPGRADE_WARNING: オブジェクト Ar(i, k) の既定プロパティを解決できませんでした。 'UPGRADE_WARNING: オブジェクト aa の既定プロパティを解決できませんでした。 aa = Ar(i, k) 'UPGRADE_WARNING: オブジェクト Ar(j, k) の既定プロパティを解決できませんでした。 'UPGRADE_WARNING: オブジェクト Ar(i, k) の既定プロパティを解決できませんでした。 Ar(i, k) = Ar(j, k) 'UPGRADE_WARNING: オブジェクト aa の既定プロパティを解決できませんでした。 'UPGRADE_WARNING: オブジェクト Ar(j, k) の既定プロパティを解決できませんでした。 Ar(j, k) = aa Next End If Next Next End Sub

  • VB2005 図形

    VisualBasic2005で Dim n As Integer, m As Integer Dim i As Integer, j As Integer Const lenn = 1500, PAI = 3.14159 Dim th As Single, th1 As Single, th2 As Single Dim x1 As Integer, x2 As Integer Dim y1 As Integer, y2 As Integer n = Val(TextBox1.Text) m = Val(TextBox2.Text) If n < 2 Or m < 2 Then   Exit Sub End If For i = 0 To n - 1   For j = 1 To n - 1     th = j * (PAI / n)     th1 = i * (PAI / m) + th     th2 = i * (PAI / n) - th     x1 = Math.Cos(th1) * lenn + 2000     y1 = Math.Sin(th1) * lenn + 2000      x2 = Math.Cos(th2) * lenn + 2000      y2 = Math.Sin(th2) * lenn + 2000   Next Next の様なコードを使って 球をPictureBoxに書きたいのですが どこにどんなコードが足りないのでしょうか? 教えて下さい

  • 日付からの曜日取得

    VB6を使っています。 取得した年月の一日の曜日を取得したいのですが うまくできません。formatもなぜかエラー出るんです・・・ どなたか教えてください Dim dtCurrent As Date Dim y As Integer Dim m As Integer Dim j as string Dim nWeek As Integer j=DateTime.Date() y = Mid(j, 1, 4)'年 m = Mid(j, 6, 2)'月 dtCurrent = Format(y&m&01, yyyy / mm / dd) Week = Weekday(dtCurrent) - 1 '曜日取得

  • VB4.0の「LSet」と同等の機能をVB2008で実行するには?

    VB2008の練習のために、VB4.0のコードをVB2008にコンバージョンしています。 VB4.0の「LSet」がどうしてもコンバージョンできません。 LSet 以外はVB2008で機能がありました。 なにか方法はないでしょうか。 リストをコピーします。 (投稿したらインデントが消えました) Public Type Tpstndef equip As Integer stn_no As Integer stn_class As Integer line_no As Integer stn_kind As Integer End Type Dim kdata As Tpkyokudef Dim rbuf As buf1K    ・   省略    ・ Get #fno, seeksize, rbuf LSet kdata = rbuf

  • vb.netのプロパティの使い方について

    こんにちわ! vb.netのプロパティの使い方がわからず困っています。 具体的にはTCPクライアント接続を行い、データ送信前に現在接続を行っているかチェックを行いたいです。 作ったのは↓ Public Class Form1 'ボタンを押したら Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim tcp_conect As New System.Net.Sockets.TcpClient 'ソケット作成 Dim net_stream As System.Net.Sockets.NetworkStream = Nothing 'ストリーム取得 Dim send_bytes As Byte() = {&HFF, &H0} '送信データ tcp_conect.Connect("192.168.1.1", "2000") 'ソケット接続 net_stream = tcp_conect.GetStream() 'ソケットストリーム取得 If tcp_conect.conected = True Then 'エラーが出てしまう。 net_stream.Write(send_bytes, 0, send_bytes.Length) 'データ送信 End If tcp_conect.Close() 'ソケット閉じる End Sub End Class 'プロパティ Public Class TcpClient Dim _conect_test As Boolean Public ReadOnly Property Connected As Boolean Get Stop Return _conect_test End Get End Property End Class これでテストをしたいのですが、プロパティが実行されません。 もしかしてプロパティの使い方がそもそも違うのかもしれないのですが、、、 アドバイスのほどよろしくお願いいたします。 ちなみに使用しているのは windows7 Visual Studio Express 2012です。

  • 設定プロパティについて

    Sub InStrSample1() Dim myData As String Dim i As Integer myData = "*******@projecta.co.jp" i = InStr(myData, "@") MsgBox Left(myData, i - 1) End Sub ネット上で上のようなプログラムを見つけ、VBで書いてみたら何も動きませんでした。ダイアログボックスに*******と表示されるらしいんですが、その設定プロパティがわかりません。お願いします。

  • VB2005での画像処理

    各ピクセルの色情報を取得し,そのままコピーするプログラムです. 同じ大きさのPictureBox1とPictureBox2,それとButton1があります. エラーや警告は出ませんが,Button1をクリックしてもまったく動きません. 最終的にはPictureBox1を画像処理してPictureBox2に結果を表示させたいのですが,そのままコピーも出来ないため原因を探しています. A = picture1.GetPixel(i, j).ToArgb() picture2.SetPixel(i, j, color.FromArgb(A)) ではだめなのでしょうか.ご教授ください. -----以下プログラム------ Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim j As Integer Dim A As Integer Dim picture1 As New Bitmap(PictureBox1.Image) Dim picture2 As New Bitmap(PictureBox2.Image) For j = 0 To PictureBox1.Width - 1 For i = 0 To PictureBox1.Height - 1 A = picture1.GetPixel(i, j).ToArgb() picture2.SetPixel(i, j, color.FromArgb(A)) Next Next End Sub

  • VBのFileOpenとInputというコマンドをVC#で使えませんか?

    例:(VB)   FileOpen(2, "test.txt", OpenMode.Input)   Dim i, j, p, r, t As Integer Dim y, T1 As Double Dim x As Double Dim S1() As Double Dim S2() As Double Try Input(2, y) Input(2, T1) For p = 1 To Emax Input(2, x(p)) Next For t = 1 To Tmax Input(2, S1(t)) Next For t = 1 To Tmax Input(2, S2(t)) Next Catch ex As Exception FileClose(2) Exit Sub End Try

  • VB2010 のユーザコントロールのプロパティ

    お世話になっております Windows7、VB2010 Expless で開発しております 後にVS2010のVBに移行する予定です ユーザコントロールでテキストボックスを作っております そこで、初期値を設定しようと思い設定をしたのですが反映されません Imports System.ComponentModel <DefaultValue(True)> Public Property Chk_Num() As Boolean Set(ByVal value As Boolean) If (value = True) Then blnChk_Num = value Else blnChk_Num = value End If End Set Get Return blnChk_Num End Get End Property <System.ComponentModel.DefaultValueAttribute(1)> Public Property Chk_ZenHankaku() As Integer Set(ByVal value As Integer) If (value >= 0 And value <= 2) Then '0以上2以下 blnChk_ZenHankaku = value Else 'マイナス、または3以上の場合は0にする blnChk_ZenHankaku = 0 End If End Set Get Return blnChk_ZenHankaku End Get End Property どちらの方法でも、Booleanの場合は「False」、Integerの場合は「0」になってしまいます また、初期化~プロパティ宣言間に、改行しても改行しなくても結果は同じです どうにか設定できる方法はありますでしょうか よろしくお願いします