ども、はじめまして。ショコラといいます。
Delphi6を使い始めたばかりなのですが、
このHPの「過去のTips集」→「Win32API」にある、
「アプリの二重起動を防止する」
が、具体的にどうすればいいのか、分かりません。
既に、アプリは作っていて(単一のプロジェクト)きちんと動いています。
ソレを、多重起動しないようにしたいと思っているのです。
勉強不足すぎですか?
変更するのは、通常表示されない Project のソースです。
メニューの「プロジェクト」-「ソース表示」をクリックすれば、
Project のソースが表示されます。
もし、ショコラさんの
Projectソース名が Project1で、
ユニットファイル名が Unit1で、
フォーム名が デフォルトの Form1のままならば、
ショコラさんの Project1 のソースをすべて消して、
「アプリの二重起動を防止する」のサンプルソースをそっくりコピー、貼り付け
すればOKです。
そうでなければ、該当の名前の部分を書き換えてください。
なお、2ヵ所の'EX_Mutex'という文字列は、他で使われていないユニークな
文字列(自分の名前など)であれば何でもいいのです。
ども、まいるどさん。こんばんは。
私も、まいるどさんが書いていらっしゃるような意味だろうと思って、
やってはみたのですが、うまくいかないんです(再度、やってみました)。
たとえば、uses に unit名が二個登録されてるのが問題?
uses
Forms,
ab1 in 'ab1.pas' {Form1},
sgform2 in 'sgform2.pas' {sgForm};
二番目の、sgform2 の行を除去すると、確かに多重起動できないようになるのですが、
今度は当然、sgform を呼び出せなくなるわけで(泣)。
ども、まいるどさん。またまた、こんばんは。
今、上の投稿をした後、もう一度、
今度は「秀丸」に、元のソースと、Tipsの記事を貼り付けて、
元のソースを補完していく形で書き上げ、整形し、Delphiに書き戻したところ、
いけちゃいました!!>まるで、今までのことが全部ウソだったみたく…
う〜ん。何がいけなかったんでしょう?
カンマとか、セミコロンとか、スペースとか、不用意な位置に入っていたのでしょうか。
>> 実は、文字の左側に入れるスペースの意味が、まだよく分かっていないのです。
見様見真似でやってるだけで(^^;;
でも、ホントにありがとうございました。
まいるどさんが、「こうすれば!」って言ってくれたので、
「やっぱソレでいいんだ」って、
自信を持ってやり続けたことが成功のカギだったわけで…。
また、質問しに来たときは、どうかよろしくお願いします。
実はサンプルコードをコピーすると、
行の先頭に全角スペースが入っているのでコンパイルエラーになります。
まあ、IDEのエディタなら赤くなって気づくのですが、普通のエディタでは
気づかない事が多いです。
HTMLでサンプルコードを書く時には、<pre>〜</pre>タグではさめば半角スペースもそのまま有効にすることが出来ます。
管理人さんにお願い。
サンプルコードを<pre>〜</pre>タグではさんで、全角スペースを半角スペースに直して〜。
それから、ショコラさんが示したコードでは、
Forms, の後に Windows, を入れ忘れてますね。
この手のミスは誰でもありがちですが、エラーメッセージを見れば原因は
分かります。
ども、まいるどさん。こんばんは。
> まあ、IDEのエディタなら赤くなって気づくのですが、普通のエディタでは
> 気づかない事が多いです。
そうそう。朱色になってました。いちお、ソレ。削除はしてたんですけど。
> Forms, の後に Windows, を入れ忘れてますね。
問題は、コレだったんですね!
ていうか、元々のコードに入ってなかったんで、逆に入れるとエラーになる…
そう思い込んでしまったのが「致命的な、私のエラー」だったと言えます。
今度は、少しでもファイルサイズを小さくする方法とか、訊きに来ます。
そのときは、またどうぞよろしく!
ツイート | ![]() |