2016-06-24 7 views
0

VBアプリケーションのリソース内のファイルのパスを探しています。アプリケーションは簡単です。実行するコマンドに埋め込みリソースを追加します。

自動的に.7zファイルを自己解凍して起動するファイルにします。この、7zS.sfx、config.txtをと.7zアーカイブすなわちFruits.7zへ

3部

7zS.sfxとのconfig.txtは変更されることはありませんので、私はそれらを埋め込むことを期待しています、 .7zアーカイブがアプリケーションにドラッグされます。 コピー/ Bのリソースパス\ 7zS.sfx +リソースパスの\ config.txtを+ C:\ Users \ユーザー%名%\デスクトップ\フルーツ\ Fruit_List.7zフルーツ

今私はあるcommmandを実行する必要があります。 exe

私はこれをMy.Resource.config.txtで数回試しました。ファイルを1バイトとして読み込みます。私はコマンドプロンプトもそれが構築された後にそれを処理しますが手つかずのファイルが必要です。

MyUtilities.RunCommandCom("copy /b c:\FruitTemp\7zS.sfx + c:\FruitTemp\config.txt + C:\Users\%username%\Desktop\Fruit\FruitArchive.7z c:\users\%username%\desktop\Fruit.exe", "/C", True) 


Shared Sub RunCommandCom(command As String, arguments As String, permanent As Boolean) 
     Dim p As Process = New Process() 
     Dim pi As ProcessStartInfo = New ProcessStartInfo() 
     pi.Arguments = " " + If(permanent = True, "/K", "/C") + " " + command + " " + arguments 
     pi.FileName = "cmd.exe" 
     p.StartInfo = pi 
     p.Start() 
    End Sub 

埋め込みリソースは、上記のコマンドからわかるように、バイトで実行され、一時的な場所に格納されるようになりました。ただし、このコマンドは実行されません。構文が正しくないことを示します。

+0

通常、リソースはアプリケーションに組み込まれています。外部アプリケーションで使用するには、バイト配列を取り出してファイルに書き込む必要があります。 –

+0

埋め込みファイルをtempの場所に書き込んだ後、そのtempの場所に基づいてコマンドを実行しますか?どのようなヒントを行うには? – MrAnderson1992

+0

'File.WriteAllBytes()'は良いスタートです。 –

答えて

0

まず、実行時にはリソースファイルがありません。要点は、リソースがEXEのバイナリコードにコンパイルされていることです。第2に、 'config.txt'という名前のファイルをリソースに追加すると、リソースのプロパティはMy.Resources.configになります。その中にドットを持つプロパティ名を持つことはできません。

したがって、そのプロパティの種類を判断し、適切な方法でファイルに保存する必要があります。 StringまたはByte()のいずれかになる可能性がありますので、File.WriteAllTextまたはFile.WriteAllBytesと電話することができます。

+0

はいごめんなさい、間違いでした。私のコードはMy.Resources.config – MrAnderson1992

関連する問題