iT邦幫忙

0

VB程式撰寫一個外掛執行檔掛載在2003 Terminal Server

目前小弟的想法想要做的結果是這樣的如下,請各位先進前輩指點一下小弟程式功力不佳希望向各位請益
要利用vb製作一個執行檔掛載在2003遠端伺服器,此執行檔可以連結至另一台DB server的D槽共用文件資料夾底下的一個ABC目錄,只想讓使用者登入至Terminal Server執行此執行檔時只出現DB server共用文件底下的ABC目錄資料夾的Excel.xls ,也就是Terminal Server算是中繼,利用此台主機連結至別他主機讀取資料,也算是以超連結方式開啟指定的資料夾,不曉的如果以VB撰寫是否能達成這樣的功能。
目前的構想大致上的架構是VB視窗拉一個FilelistBox 連結\\DB server\D\共用文件\ABC
但是要如何撰寫清單只會顯示.xls附檔名,是否需要給什麼與法是專屬Excel的格式
例如:
Private Sub Form_Load()
Combo1.AddItem "*.xls"
End Sub


Private Sub Form_Load()
Dir1.Path = "\\DB server\D\共用文件\ABC"
File1.Path = Dir1.Path
End Sub
還是有其他方式能解決的呢?
我是以下程式為參考點,程式選單拉了一個DrivelistBox 一個dirlistBox 一個FilelistBox
一個PictureBox ,但我只需要留一個FilelistBox能顯示我指定的資料夾
但是我將其他不會用到的移除拿掉程式碼此程式執行就有錯誤了
拿掉Drive1與Dir1就會錯誤

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Private Sub File1_Click()
Dim f_name, f2_name, context As String
Dim i, j, k As Integer
f_name = File1.Path & "\" & File1.List(File1.ListIndex)
f2_name = "out.txt"
Open f_name For Input Access Read As #1
Open f2_name For Output Access Write As #2
context = ""
Do While Not EOF(1)
Input #1, j, k
Picture1.Circle (j, Picture1.ScaleHeight - k), 0.1
Write #2, j, k
Loop
Close #1
Close #2
End Sub

Private Sub Form_Load()
Dir1.Path = "C:"
File1.Path = Dir1.Path
Picture1.BackColor = RGB(255, 255, 255)
End Sub

如果設個捷徑,可以解決問題嗎?

1 個回答

2
wiseguy
iT邦超人 1 級 ‧ 2016-02-04 09:42:07
  1. 如果你的需求是【只想讓使用者登入至Terminal Server執行此執行檔時只出現DB server共用文件底下的ABC目錄資料夾的Excel.xls】,那就不需要 Dirver, Dir 元件,只需要一個 FileListBox,並直接把路徑寫死在 FileListBox 就行了。如下列範例程式(雙擊檔名會開啟所選的 xls 檔案):
<pre class="c" name="code">Private Sub File1_DblClick()
    Shell """C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"" " & Chr(34) & File1.Path & "\" & File1.FileName & Chr(34), vbNormalFocus
End Sub

Private Sub Form_Load()
    File1.Path = "\\DB server\D\共用文件\ABC"
    File1.Pattern = "*.xls;*.xlsx"
End Sub

注意,在 Terminal Server 必須安裝 excel,上面程式 excel.exe 的目錄依你所安裝的目錄修改。

  1. 在 DB server 的共用文件目錄,應設定只能由 Terminal Server 存取。

我要發表回答

立即登入回答