
VB6のShell制御について
以前http://oshiete.goo.ne.jp/qa/6069911.htmlで
質問させていただき、解決することができました。
取引先などのダイアログexeを何本か開発し、連結テストをした際に
PM経由でテスター(エンドユーザー)から「ダイアログ起動中は、起動基のexeを
触らせないようにできないか」と
指摘があり、修正をしています。
Shellのパラメータ等を弄ったり、書籍やネットを調べてみましたが
指摘を満たすようなサンプルが見つかりませんでした。
納期も近く、どのようにすれば指摘点を満たせるか教えていただけないでしょうか?
開発環境
Windows XP PRO SP4
Visual Basic6.0(SP6)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
shellで別exeを起動して、それが実行中は起動元exeの実行をブロックします。
フォームは隠さずに残しておいてもいいですが、
別exe起動中に触られると「応答なし」という表示になってしまうので
それを避けるために隠しています。
Option Explicit
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwAccess As Long, ByVal fInherit As Integer, ByVal hObject As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function WaitForInputIdle Lib "user32" (ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32.dll" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Const INFINITE As Long = &HFFFFFFFF
Private Const SYNCHRONIZE = 1048576
Private Sub Command1_Click()
Call ExecAndWait("calc")
End Sub
Public Sub ExecAndWait(ByVal launchee As String)
Dim procID As Long
Dim procHandle As Long
Dim ret As Long
Me.Hide
procID = Shell(launchee, vbNormalFocus)
procHandle = OpenProcess(SYNCHRONIZE, 1, procID)
ret = WaitForSingleObject(procHandle, INFINITE)
ret = CloseHandle(procHandle)
Me.Show
End Sub
No.1
- 回答日時:
>起動基のexeを触らせない
もし、フォームを持つプログラムなら、表示中の
画面をDisableにしてしまう方法があります。
こうすると画面は全く操作不能になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(Microsoft Office) Office(Windows版,Word/Excel/PowerPoint等)にログインできません 4 2022/07/24 15:18
- ノートパソコン Windowsが起動しない状態からデータを回収したい 初質問失礼します。 先日、Windowsのデー 5 2023/06/18 17:50
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- 大学受験 志望理由の添削お願いします 1 2023/03/09 15:48
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- その他(悩み相談・人生相談) 正直、ネタと言われても仕方ない事ばかり起きます。 26歳 女。療育手帳B2.軽度発達障害。 友人達( 2 2023/04/21 12:53
- その他(ニュース・時事問題) 日本のAmazonだけ労働関連の問題が起こらないのはなぜですか? 4 2022/06/20 16:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c#でコマンドプロンプトを実行...
-
VB.NETでコマンドプロンプトの操作
-
バッチで戻り値を返したい
-
svchost.exe ってなんですか?
-
プログラムを実行すると、なぜ...
-
ExcelVBAにてアプリをタスクマ...
-
N88BASIC
-
EXCELをバッチコマンドで...
-
コマンドプロンプト画面で動作...
-
相対パスのショートカットフォ...
-
UWSCについて
-
プロセスが終了されたかどうか...
-
vbsのショートカット作成で、引...
-
VB.NETでDOSコマンドの複数実行
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
-
アクセス 壊れた? 「ファイ...
-
「読み取りと実行」と「読み取...
-
多数のサブディレクトリ内のフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
ExcelVBAにてアプリをタスクマ...
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
gccがコマンドプロンプト上で使...
-
バッチへ値を返す
-
c#でコマンドプロンプトを実行...
-
Shiftキーを押しながら起動
-
UWSCについて
-
複数の処理の終了を待ちたい
-
ASPからのEXEファイル起動
-
VBAからキャッシュを削除する方...
-
プログラムを実行すると、なぜ...
-
RUNASコマンドを使って、自動的...
-
バッチファイルからftpを実行時...
-
ショートカットの作成とコピー
-
ショートカットのリンク先が参...
-
コマンドプロンプト画面で動作...
-
VBSでコマンドプロンプトのカレ...
おすすめ情報