- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロセスIDの取得方法について)
VB5.0を利用して、プロセスIDの取得方法について教えてください
このQ&Aのポイント
- VB5.0で書いたexeを実行した際にはGetCurrentProcessIdを利用してプロセスIDを取得できますが、Excelをオブジェクトとして作成した場合、プロセスIDをどのように取得することができますか?解決策を教えてください。
- VB5.0を使用してExcelをオブジェクトとして作成した場合に、起動したExcelのプロセスIDを取得する方法を教えてください。
- VB5.0でプログラムを実行し、Excelをオブジェクトとして起動した場合、そのExcelのプロセスIDを取得したいです。どのように実現できますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
FindWindowなどのキャプションか、クラス名で対象オブジェクトハンドルを取得し、 GetCurrentProcessId関数で、プロセスIDとスレッドIDを取得する方法が一般的。 過去スレにいっぱいサンプルがあります。 スクリプトを使用するなら、以下の方法もあったりする。 でもどちらも複数EXCEL起動時は、考えなければいけない部分多し。 Sub Main() Dim ExcelObj As Excel.Application Set ExcelObj = CreateObject("Excel.Application") ExcelObj.Visible = True Call DebugHandle ExcelObj.Quit Set ExcelObj = Nothing End Sub Public Function DebugHandle() Dim strSQL As String Dim objWk As Object Dim objXlsProc As Object strSQL = "SELECT Handle FROM Win32_Process WHERE Name = 'EXCEL.EXE'" Set objWk = GetObject("winmgmts:").ExecQuery(strSQL) For Each objXlsProc In objWk Debug.Print objXlsProc.Handle Next End Function
お礼
有難う御座います。 いろいろと試しながらやってみます。
補足
有難う御座います。 プログラムが起動したExcelのみのプロセスIDを取得するには、どのようにしたら良いのでしょうか。 ご存知でしたらご教授下さるとありがたいのですが。