私は自分のアプリケーションにpdfとxpsファイルのプレビューを表示したいと思います。だから私はプロセスを実行し、それが実行されるべき "場所"またはコンテナを与えることができるようにしたいと思います。
これはどうしてですか?
私は現在、ファイルを開くために必要なProcessStartInfoを使用して、必要なアプリケーションを起動できますが、スタンドアロンアプリケーションではなく、特定のコントロール内にアプリケーションを格納する必要があります。
たとえば、.Parentプロパティを見つけられませんでした。 アイデアがあれば教えてください。
ありがとうございます。
特定のコンテナでプロセスを開始するには? (どのようにグループボックスでアクロバットリーダーを起動するのですか?)VB.Netで
0
A
答えて
1
いくつかの所見:
ここで最初の:http://www.dreamincode.net/forums/topic/148658-embedding-another-program-into-app/
最初のソリューション:でWebBrowserコントロールを使用します(ここで見つける:http://www.tek-tips.com/viewthread.cfm?qid=1598720)
WebBrowser1.Url = New System.Uri("file://" & myFileNameHere)
第二の溶液
Private Const WM_SYSCOMMAND As Integer = 274
Private Const SC_MAXIMIZE As Integer = 61488
Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Private Sub Test3()
Try
myProcess.Kill()
Catch ex As Exception
Dim ii As Integer = 33
End Try
Dim valueFileName As String = myFileNameHere
Dim myProcessInfo As New ProcessStartInfo
myProcessInfo.FileName = myCompletePathToTheEXEFileHere
myProcessInfo.WorkingDirectory = valueFileName.Substring(0, valueFileName.LastIndexOf("\") + 1)
myProcessInfo.Arguments = valueFileName.Substring(valueFileName.LastIndexOf("\") + 1)
myProcess.StartInfo = myProcessInfo
myProcess.Start()
myProcess.WaitForInputIdle()
Threading.Thread.Sleep(500)
SetParent(myProcess.MainWindowHandle, Me.GroupBox1.Handle)
SendMessage(myProcess.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)
上記のコードは動作しており、おそらく改善される可能性があります。
私はまだそれに取り組んでいます!
関連する問題
- 1. コンテナ内のスクロールを、デフォルトで特定のリンクで開始するにはどうすればよいですか?
- 2. golangアプリケーションの起動プロセスを開始するにはどうすればよいですか?
- 3. ブルートゥースペアリングのプロセスを開始するにはどうすればよいですか?
- 4. 特定のデスクトップでプロセスを開始
- 5. どのようにprogameを開始するプロセスは1つだけですか?
- 6. ドッカー:コンテナの内部でプロセスを再起動するには?
- 7. vb.netプログラム内から開始するプロセスをどのように保護できますか?
- 8. Docker Swarmはコンテナをどのように起動するのですか?
- 9. コンテナはApplicationContext.xmlファイルをどのように起動するのですか
- 10. Ubuntuの起動時にサービスを自動的に開始するにはどうすればよいですか?
- 11. 特定の時刻にTornadoの定期コールバックを開始するにはどうすればよいですか?
- 12. アプリ内の特定の場所でマップアクティビティを開始するにはどうすればよいですか?
- 13. Kubernetes - コンテナを2つのプロセスで開始し、両方のプロセスにバインドするにはどうすればよいですか?
- 14. 特定の開始時間でどのようにクロノメーターを始めることができますか?
- 15. ReportPortalで特定のテストを開始するためのリンクはどのように入手できますか?
- 16. プログラムで別の起動を完了した後に起動設定を開始するにはどうすればよいですか? (Eclipse)
- 17. C#で子プロセスの起動時間を測定するにはどうすればよいですか?
- 18. 特定のコアでスレッドを開始するにはどうすればよいですか?
- 19. 特定の場所でCSS3アニメーションを開始するにはどうすればよいですか?
- 20. プログラムの起動時にC++スレッドを開始するにはどうすればよいですか?
- 21. 条件プロセス特定のプロセスのインスタンス数を開始する
- 22. サービスを起動せずにglobal.asaxからサービスを開始するにはどうすればよいですか?
- 23. プロセスを開始するときに開始位置をプログラムで設定する
- 24. URLから特定のコンテナ内の動画を再生するにはどうすればよいですか?
- 25. C#プログラムでwinformの子としてプロセスを開始するにはどうすればよいですか?
- 26. アイドル状態の優先順位で.NETプロセスを開始するにはどうすればよいですか?
- 27. 特定の時間にビデオを開始するにはどうすればよいですか?
- 28. 特定の時間にサービスを開始するにはどうすればよいですか?
- 29. セレンはどのようにvb.netで隠されたクロムを開始することができますか?
- 30. 特定の番号から番号列を開始するにはどうすればよいですか?
興味深い質問、面白い答え!私はアプリケーションの中でWordなどを再ホストするためのこれまでのようなものを見たことがあります。これまでのことは決して知られていません:) – Tom
webBrowserコントロールは実際には非常に強力です:多くのファイル(.doc、.xls、.csv、 .ppt、.xps、.pdfなど) – PatTheFrog
WebBrowserコントロールで見つかった1つの問題:特定のファイルごとに開かれたプロセスを強制終了させることを考える必要があります。だから、ここで見つけたようなコードをいくつか追加したいかもしれません:http://bytes.com/topic/visual-basic-net/answers/538885-webbrowser-excel-processs-till-running、またはあなたのプロセスを数えるだけで新しい文書を開くたびに、およびコントロールを破棄するたびに、余分なものを削除します。 – PatTheFrog