Joe 發問時間: 電腦與網際網路程式設計 · 1 0 年前

VB6檔包檔執行exe檔問題

請教一下,我有個kkk.exe檔,是個轉檔程式,

例如我將aaa.dat跟bbb.dat放入跟kkk.exe同資料夾,

點選kkk.exe,

它會執行讀取aaa.dat跟bbb.dat轉出aaa.txt與bbb.txt的檔案,都是產生在同一個資料夾下,

1.我用Shell 去執行kkk.exe不能跑出txt檔,是路徑問題嗎?有跳出程式,但馬上結束,我的寫法如(檔案放在vb下temp資料夾中)

Shell App.Path & "\temp\kkk.exe",vbNormalFocus

2.我現在有用另一個方法,將kkk.exe用vb6檔包檔的方式包起來,

有辦法用vb6讀入aaa.dat跟bbb.dat檔後,內部執行kkk.exe轉檔後,產生出aaa.txt與bbb.txt到temp資料夾下嗎?

P.S kkk.exe是一個dos程式

感謝了!

1 個解答

評分
  • 1 0 年前
    最佳解答

    請改用 ShellExecute 來做

    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

    其中:

    hwnd視窗的名稱 (不知道這樣解釋對不對)

    lpOperation進行的操作,如"open","print","explore"分別對應 "開啟","列印","瀏覽", 也可以為空(""),此時表示進行預設的操作。

    lpFile要操作的文件。

    lpParameters如果lpFile指定的是一個可執行檔則表示參數

    lpDirectory操作進行的目錄

    nShowCmd新的應用程式的運行方式。其可用的值如下:

    SW_HIDE隱藏

    SW_MAXIMIZE 最大化

    SW_MINIMIZE最小化,並把Z order順序在此視窗之後(即視窗下一層)的視窗啟動

    SW_RESTORE啟動視窗並還原為初始化大小

    SW_SHOW以當前大小和狀態啟動視窗

    SW_SHOWDEFAULT以預設方式運行

    SW_SHOWMAXIMIZED啟動視窗並最大化

    SW_SHOWMINIMIZED啟動視窗並最小化

    SW_SHOWMINNOACTIVE最小化但不改變當前啟動的視窗

    SW_SHOWNA以當前狀態顯示視窗但不改變當前啟動的視窗

    SW_SHOWNOACTIVATE以初始化大小顯示視窗但不改變當前啟動的視窗

    SW_SHOWNORMAL啟動並顯示視窗,如果是最大(小)化,視窗將會還原。第一次運行程式 時應該使用這個值

    例:

    ShellExecute 0&, "OPEN", "C:\Convert\kkk.exe", vbNullString, "C:\Convert", SW_SHOWNORMAL

還有問題?馬上發問,尋求解答。