こんにちは。
ご多忙の中、申し訳ありませんが皆さんの知恵をお貸しください。

私はVBは初心者中の初心者なのですが、
あるアプリケーションからEXEをキックし(このEXEは永久ループ)、
ある程度の処理をしたら、キックしたEXEを終了させたいと考えております。

基本的にキックされたEXEがウェイトして自らおちるのではなく、キックした
アプリから落としたいと考えています。

簡単に言えば、UNIXでいうKILLコマンドのような関数はありますかと
言うことです。(プロセスIDを使用して・・・)

ご存知の方がいらっしゃいましたら、教えてください。
宜しくお願い致します。m(_ _)m

A 回答 (1件)

サンプルをどうぞ。


http://www.microsoft.com/JAPAN/support/kb/articl …
しかし、強制終了するはあまりよくないと思います。
WM_CLOSEメッセージを投げる方法をお勧めします。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=157242
    • good
    • 0
この回答へのお礼

ありがとうございました。

参考URL、参考にさせていただきました。

ご多忙の中、ご回答いただきありがとうございました。

お礼日時:2002/03/25 15:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q美容室の広告に載っている「ワンプロセス」の意味。

髪を切ろうと思い、ホットペッパーで美容室を
探していました。

カラーとか、パーマのとこに「ワンプロセスのみ」
という表示がされていることがありますが、
これはどのような意味なのでしょうか?

ご存知の方、教えてください。よろしくお願いします。

Aベストアンサー

ワンプロセスと言うのは、1回だけと言うことです。

たとえばカラーなら、1度薬液を付けるだけとかです。
カラーの場合は、新生毛とカラーの毛(既成毛)とでは色合いが違いますので、同じ薬液を塗れませんので2プロセス以上の施術になりますね。

Q使用しているEXEファイルから、別のEXEファイルをクローズする方法

今現在簡単なプログラムを作成しておりまして、
TEST1.exeとTEST2.exeの二つのプログラムがあります。

TEST1.exeとTEST2.exeの二つのアプリケーションを起動
し、TEST1.exeが終了したら、TEST2.exeのアプリケー
ションも自動的に終了するようにしたいのですけど、何か
やり方ってありますでしょうか?

作成しているソフトはVB6.0/Win2000Proです。

よろしくお願いします。

Aベストアンサー

 CreateProcessプロセスというAPIで起動し
 TerminateProcessプロセスというAPIで終了させます

 以下に例を上げておきます。


'CreateProcess
'新しいプロセスを作り、実行ファイルを実行する。
'
'BOOL CreateProcess( LPCTSTR lpApplicationName,
' // pointer to name of executable module
'
' LPTSTR lpCommandLine,
' // pointer to command line string
'
' LPSECURITY_ATTRIBUTES lpProcessAttributes,
' // pointer to process security attributes
'
' LPSECURITY_ATTRIBUTES lpThreadAttributes,
' // pointer to thread security attributes
'
' BOOL bInheritHandles,
' // handle inheritance flag
'
' DWORD dwCreationFlags,
' // creation flags
'
' LPVOID lpEnvironment,
' // pointer to new environment block
'
' LPCTSTR lpCurrentDirectory,
' // pointer to current directory name
'
' LPSTARTUPINFO lpStartupInfo,
' // pointer to STARTUPINFO
'
' LPPROCESS_INFORMATION lpProcessInformation
' // pointer to PROCESS_INFORMATION
'
' );
'

Private Type PROCESS_INFORMATION

hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long

End Type

Private Type STARTUPINFO

cb As Long
lpReserved As String
lpDesktop As String
lpTitle As String
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long

End Type

Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal _
lpCommandLine As String, lpProcessAttributes As Any, lpThreadAttributes As Any, ByVal bInheritHandles As Long, _
ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, _
lpProcessInformation As PROCESS_INFORMATION) As Long


Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwAccess As Long, ByVal fInherit As Integer, ByVal hObject _
As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long


Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long


Const SYNCHRONIZE = 1048576
Const NORMAL_PRIORITY_CLASS = &H20&

Dim pInfo As PROCESS_INFORMATION
Dim sInfo As STARTUPINFO
Dim sNull As String


Private Sub Command1_Click()
Dim success&
success& = CreateProcess(sNull, "Calc.exe", ByVal 0&, ByVal 0&, 1&, NORMAL_PRIORITY_CLASS, ByVal 0&, sNull, sInfo, pInfo)

End Sub

Private Sub Command2_Click()
Dim ret&
ret& = TerminateProcess(pInfo.hProcess, 0&)
ret& = CloseHandle(pInfo.hThread)
ret& = CloseHandle(pInfo.hProcess)

End Sub

 CreateProcessプロセスというAPIで起動し
 TerminateProcessプロセスというAPIで終了させます

 以下に例を上げておきます。


'CreateProcess
'新しいプロセスを作り、実行ファイルを実行する。
'
'BOOL CreateProcess( LPCTSTR lpApplicationName,
' // pointer to name of executable module
'
' LPTSTR lpCommandLine,
' // pointer to command line string
'
' LPSECURITY_ATTRIBUTES lpProcessAttributes,
' // pointer to process security attributes
'
' LPSEC...続きを読む

Qプロセス監視とサービス監視

下記の質問にてプロセスとサービスの違いについて少し理解ができました。
http://oshiete.goo.ne.jp/qa/7395829.html

しかし、私の理解が正しいとするとプロセスはサービスよりも詳細な単位になるためプロセス監視を行えばサービス監視は行えているということになります。

そこで二点質問がございます。
1.上記の私の理解は正しいか
2.プロセス監視ではなく、サービス監視を行う具体的な意味は

ご教示いただけますと幸いです。

Aベストアンサー

・UNIX系のinetdやwindowsのsvchostなどプロセス名とサービスが単純に結びついていないサービスがあります。
・プロセスは起動しているが、ハングアップなどでサービスとして機能していない場合があります

QShellコマンドで別のexeを起動するとフォーカスが別exeにいかない

2本のEXE(AとB)があって、

AからBを呼び出して、Bの終了ボタンを
押すとAに戻るようなプログラムがあります。

Bを最前面にして起動しているのですが、
Bにフォーカスがいってくれません。
(Aに残ったままになっている?)

ちなみにAもBもウィンドウスタイルは、
青いバーが出ている状態(動かせる状態)です。

Bが起動している間、Aはその後ろでまっている
ようなイメージです。

どうやったらフォーカスを渡すことが
できるでしょうか?

<条件>
Bのプログラムは修正することができません。
Aのプログラムは自由に修正できます。

どなたか教えて下さい。

Aベストアンサー

http://www.ops.dti.ne.jp/~allergy/vb/vbvba.html#exec

こちらを参考にしてみて下さい。

Q子プロセス、

親プロセスから子プロセスを生成するとは具体的に何を意味しているのでしょうか?
またresume文とはなんでしょうか?
何をしてくれているのでしょうか?
なぜUNIXは安定していると言われるのでしょうか?
聞いたけど忘れてしまいました、
お願いします。

Aベストアンサー

再レスです。
身近な例ですとエクセルとかで新規作成ボタンを押すと新しいシートが作られるじゃないですか。
いくつも作れてどれも同じ動作やインターフェースをしています。
それらのシートはボタンが押されるまで存在しなかったものです。
また、それらは独立しているので、どのシートに移動しても構いませんよね。
立派な子プロセスですよね。メモ帳なんかだと親プロセスが新たに開きますね。
この例ではユーザーの操作によるものですが、プログラムによっては内部でプロセスを作り並列的に動作するものもあります。

QEXEとソースで動かすのとではEXEで動かす方が断然早い?

VisualBasic6でソースを動かすのと
コンパイルしてEXE形式で動かすのでは、
多分EXEの方が早いと思うのですが、
全然スピードが違うと言うことはありえるのでしょうか?

例えば、処理完了まで2時間~3時間もスピードが変わることは
あるのでしょうか?処理はデータベースを更新、参照したりするものです

どなたか教えて下さい。

windows2000
vb6 sp5

Aベストアンサー

Visual BasicではなくVisual C++での結果ですが...

ソースで動かす状態をデバッグ状態(Debug Build)
コンパイルで動かす状態をデバッグなしでのコンパイル(Release Build)
を用い、最適化されない単純処理を300万回繰り返すプログラムを作成して処理に必要な時間をプログラム上で計測しました。

結果はそれぞれ
 36秒
  2秒
でした。

これはあくまでVisual C++での結果ですがVisual Basicでも同じテストを行えば同じような結果になるはずです。
つまり処理は

ソースで動かした方が遅くなります。

また処理完了まで2時間~3時間もスピードが変わることは
あるのでしょうか?ということに関してですが...処理内容と全処理時間にもよるかと思います。上の例では34秒しか変わらなかったわけですし...

Qビジネスの場における「プロセス」とは?

初めまして、今現在大学生で、企業にてインターンをやっています。

上司や社員と会話、会議をする際に「プロセス(Process)」という言葉がよく使われるんですが、その言葉自体の概念、意味を理解できていないせいでまったくピンと(理解で)きません。

例えば、ある事、業務を上司に説明した際に、
「プロセスでものを考えないと伝えたいことが上手く伝わらない」、
「このプロジェクトに関してのプロセスを資料としてまとめて」など言われます。

ここで言う「プロセス」とはどういう事でしょうか?
質問が抽象的過ぎて、答えにくいかと思いますがお願いします。

Aベストアンサー

日本語としては「手順」・「流れ」でいいんですが、「プロセス」と
言った場合、言外に「何か全体としての"システム"が存在して、
その結果としての"手順"」という意味があります。

「システム」が中身で、それが外に出てきたものが「プロセス」と
いう感じですね。往々にしてこの2つの言葉はセットにして使われ
たりしますし・・・。

単に「手順」と受け取ると、言外にある「全体としての"システム"」
を見落としてしまう可能性がある、という点には注意して下さいね。

Qkill ステートメント

VB vr6 SP5
Win2K  です。

KILLステートメントで、ファイル属性が読み取り専用
のファイルを削除しようとすると
「パス名が無効です」とエラーメッセージが表示されます。

これは、属性を通常ファイルに変更してからじゃないと
削除できないのでしょうか?

Aベストアンサー

はい

Qillustrator 特色やグローバルプロセスカラーについて

illustrator初心者です。
スウォッチパレットというのがあって、グローバルプロセスカラーや特色などあるのですが、このグローバルプロセスカラーを特色に変換するということはどういう意味があるのですか?
また、色を登録するときにはどの色でも特色として登録することができるのでしょうか?
よろしくお願いします。

Aベストアンサー

>一般に使う場合にはillustratorのスウォッチオプションの特色をプロセスカラーに変換して使用したりすることにはどんな意味があるのですか?それとも、これはほとんど印刷所向けのための機能なのでしょうか?

こうした板で色に関する論議をする際は、RGBカラー系とCMYKカラー系を切り分けておかないとややこしくなります。
一般の人にはCMYKも特色も無縁の領域ですから、先にも言ったように「どうぞお好きなように」です。つまり家庭用や事務用プリンタのインクはお望みのインクに変えることはできないからです。同様にプロセスカラーというCMYKについても一般のパソコンユーザには無縁な領域であり、使いようのない色体系です。
このようにプロセスカラーとかillustratorのスォッチとして登録されているDICやパントンなどは、インキを変更できる商業印刷機だけの独特のカラー体系で、それをパソコン上で事前にシミュレートする機能としてあると受け止めてください。
ただしモニタのカラー体系はRGBですから、スオッチにある特色も印刷された時の色とはずれがあります。そこで実際に印刷されたカラーチップで確認しておかないと、結果確認にはなりません。

>DTPをマスターするには印刷会社などにアルバイトしたほうが早く覚えられるのでしょうか・・・。

将来商業印刷関連の職種を指向するなら、この世界の空気に触れておくことは有意義でしょう。ただし色の決定権はデザイナーやクライアントにあるので、印刷所のオペレーターが自己決定するケースはそうザラにあるわけではありません。その辺も考慮の内に入れておいてください。
もしDTPとCMYKカラー体系について勉強したいのであれば、
↓『DTP&印刷スーパーしくみ事典』がお薦めです。

http://www.jagat.or.jp/books/Catalog/itaku.htm

参考URL:http://www.jagat.or.jp/books/Catalog/itaku.htm

>一般に使う場合にはillustratorのスウォッチオプションの特色をプロセスカラーに変換して使用したりすることにはどんな意味があるのですか?それとも、これはほとんど印刷所向けのための機能なのでしょうか?

こうした板で色に関する論議をする際は、RGBカラー系とCMYKカラー系を切り分けておかないとややこしくなります。
一般の人にはCMYKも特色も無縁の領域ですから、先にも言ったように「どうぞお好きなように」です。つまり家庭用や事務用プリンタのインクはお望みのインクに変えることはできないからで...続きを読む

QVB2005でウェイトをかけたい

VB2005で、プログラムの実行を、0.5秒間停止したいってできますか?
できれば2秒ぐらいまで自由に設定できるようにしたいのですが??

Aベストアンサー

System.Threading.Threadクラスの Sleepメソッドでできると思いますよ

何かのイベントプロシージャなどで
' 0.5秒なら
Thread.Sleep( 500 )
といった具合です

Sleepの引数の単位は 1/1000秒です
2秒なら2000、0.25秒なら250になります


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報