none
請問大大,兩臺電腦間如何傳遞變數 RRS feed

  • 問題

  • A電腦和B電腦同時有Form1

    我在A電腦上設定Form1.Text="A New Form"

    然後將字串"Form1"、"Text"及"A New Form"傳給B電腦

    B電腦收到時執行:

    Dim s As String = "http://169.254.1.1/WindowsApplication4/bin/WindowsApplication4.exe"
    Dim app As System.Reflection.[Assembly] = System.Reflection.[Assembly].LoadFrom(s)
    Dim frmType As Type = System.Type.GetType("Form1", True)

            '字串"Form1"由A電腦傳來
    Dim f As Object = Activator.CreateInstance(frmType)
    Dim field As System.Reflection.PropertyInfo = frmType.GetProperty("Text")

            '字串"Text"由A電腦傳來
    field.SetValue(f, "A New Form", Nothing)

            '字串"A New Form"由A電腦傳來

     

    可是這樣B電腦上的Form1.Text並沒有改為"A New Form"

    要怎麼樣才能做到呢?

    2008年2月3日 上午 08:11

解答

所有回覆

  • HI,

     

    您這樣的做法是將WindowsApplication4.exe從A電腦抓到B電腦執行, 而不是在兩台電腦之間傳遞變數, 如果A電腦中的WindowsApplication4.exe檔案(不是執行中的WindowsApplication4.exe)的Text屬性的內容值為A New Form, 則B電腦應該會取到A New Form

     

    tihs
    2008年2月4日 上午 12:36
  • 我有嘗試過這個方法,但是這個方法僅限於A電腦需事先建置好,如果將A電腦的Text(動態)更改過,B電腦仍然收不到"A New Form",而是A電腦之前建置好Text的預設值。

    我是想在執行中的時候傳遞變數,由B電腦接收後,自動地帶入Text值,其實不只有Text值,還有其他的變數。我笨笨地只想到在B電腦一個個判斷變數的名字,然後再一個個代入,如:

     

    If 收到的變數名="Form1.Text" Then

       Form1.Text=收到的變數值    '  "A New Form"

    End If

     

    不過這樣對應變數很麻煩,每個變數都要寫過,不知大大有沒有較為便捷的方法?

    2008年2月11日 上午 08:09
  • 你後面這段回應類似動態編譯,可先看看這個模擬 Script Control 動態編譯器:

    http://tlcheng.twbbs.org/TLCheng/Net/NetList.aspx?Action=Module&Module=36

     

    並在本版搜尋動態編譯

    2008年2月11日 下午 04:08
    版主
  • 動態編譯雖然比較麻煩,不過理論上是可以。謝謝璉璉大大。

    2008年2月24日 上午 07:24