
No.1ベストアンサー
- 回答日時:
どうやって起動しているのか分からないのですが、とりあえずShellでEXEを直接実行してみました。
(たぶん違うと思うんですけど、サンプルコードに都合がいい方法がShellだったので・・。)
起動したIEのプロセスIDが分かってる場合のサンプルです。
フォームにボタンを1つ貼り付けて、下のコードをコピペしてして下さい。
-----------------------------------
Private Sub Command1_Click()
Static pID As Long
If Not ChkIEStart(pID) Then
pID = Shell("C:\Program Files\Internet Explorer\IEXPLORE.EXE")
End If
End Sub
Public Function ChkIEStart(chkProcessID As Long) As Boolean
Dim strSQL As String
Dim objWk As Object
Dim objXlsProc As Object
strSQL = "SELECT Handle FROM Win32_Process WHERE Name = 'IEXPLORE.EXE' AND ProcessID = " & chkProcessID
Set objWk = GetObject("winmgmts:").ExecQuery(strSQL)
ChkIEStart = (objWk.Count > 0)
End Function
No.2
- 回答日時:
こんばんは。
ちょっと試してみました。最初、単なる二重起動だと思っていたら、ボタンの起動に対しての二重起動抑止だと分かって、ちょっとまごついてしまいました。
>それ以外の場所から起動されたIEが上がっていてた場合はボタンを押せばIEが起動するといった方法
この意味が、既に、ボタンから、IEが起動されていたら、他の場所で上がっていても、同じくボタンからの起動は抑止されることになります。他の場所から、IE起動しても、ボタンから一度も起動されていないのなら、起動できることになります。
Private Declare Function OpenProcess Lib "kernel32.dll" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Const PROCESS_QUERY_INFORMATION As Long = (&H400)
Private Declare Function GetExitCodeProcess Lib "kernel32.dll" ( _
ByVal hProcess As Long, _
ByRef lpExitCode As Long) As Long
Private Const STATUS_PENDING As Long = &H103
Private Const STILL_ACTIVE As Long = STATUS_PENDING
Private Sub Command1_Click()
Dim Id As Long
Static lngProcess As Long
Dim lngExitCode As Long
Dim rc As Long
rc = GetExitCodeProcess(lngProcess, lngExitCode)
If lngExitCode = STILL_ACTIVE Then
MsgBox "こちらからは、二重起動になります。"
Exit Sub
End If
Id = Shell("C:\Program Files\Internet Explorer\IEXPLORE.EXE", vbNormalFocus)
lngProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, Id)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Chrome(クローム) グーグルクロムをマイクロソフト・エッジに切り替える方法 2 2022/06/20 10:08
- InternetExplorer(IE) Microsoft edgeのIEモードを解除したいのですが。 3 2023/04/09 13:51
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- 株式市場・株価 HyperSBI 余力確認 ブラウザ 2 2022/06/19 09:17
- フリーソフト TARGET frontier JVから起動するブラウザを変えたい 1 2022/10/09 12:08
- Windows 10 Windows10環境にてWindowsUpdate後の再起動を完全に抑止する方法はございますか? 10 2023/06/16 09:57
- ドライブ・ストレージ HDDとSSDどちらがいいか 7 2023/07/27 19:58
- Windows 10 Windows10デスクトップパソコン再起動するといくら待ってもがならず起動の黒い画面で止まってしま 5 2023/04/06 10:23
- Windows 10 Windows10の再起動について 3 2022/09/21 21:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
Process.Startで起動したアプリ...
-
VB5で起動回数の制限をかけたい。
-
mscomm32.ocxの登録方法
-
自動起動と任意起動の区別
-
eclipse-php-galileo-SR2-win32...
-
誰かエクセルのVBAを使ってIEを...
-
WinSCPで画像のように puttyを...
-
VBで実行中のEXEファイルの情報...
-
VBSで起動したアプリが前面表示...
-
corn機能の指定方法(xrea.com、...
-
アウトルックが起動しているか...
-
Javaの起動について(他にやる...
-
EXCEL VBAから他アプリケーショ...
-
VB2005での起動しているフォーム数
-
exeファイルを実行するとすぐに...
-
現在のドライブを調べたい
-
VisualStudio2005でのビルドに...
-
MDIアプリケーションで外部のソ...
-
IEの2重起動抑止
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
アウトルックが起動しているか...
-
Process.Startで起動したアプリ...
-
VBで実行中のEXEファイルの情報...
-
Windows上のプログラム。「予め...
-
キー操作 (WSH:コピー&ペー...
-
exeファイルを実行するとすぐに...
-
VBSで起動したアプリが前面表示...
-
EXCEL VBAから他アプリケーショ...
-
VBSから別のVBS起動するとき変...
-
VB6で呼び出し元の情報を取得す...
-
フォームの最前面が効かない
-
gccプログラムで複数の実行ファ...
-
ウィンドウを終了させたい・・・
-
C# 他のアプリケーションを優先...
-
MSDOS(バッチファイル)でプロセ...
-
64bitで作ったEXEを32bitで起動...
-
VBAでSeleniumからChromeを起動...
-
VB6.0からエクセルを起動
-
VBSでExcelのUserFormをエクス...
おすすめ情報