Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
프로그램이 1번만 실행되도록...
제가 프로그램(land.exe)을 만들었는데 리소스를 많이 차지하는 프로그램입니다.
윈도우에서 land.exe 라는 프로그램이 2개 이상은 못 올라오게 하는 방법이 있느지요?
(land.exe 라는 프로그램이 실행중일 때에는 또다시 land.exe가 올라 오지 못하도록)
1. 이런 방법이 있는지요?
2. 있다면 구현 방법을 알고 싶습니다.
즐거운 추석 이 되기를 바랍니다.
99.9.22
박면구
1
COMMENTS
신인재
•
1999.09.22 18:26
한번만 실행시키기 기법은 ATom을 이용하는 방법이
대중적입니다....(이것은 여러 델파이 사이트를 돌아 다니면서
'한번'이란 키워드를 이용하면 많이 소개 되어 있습니다.)
여기서는 Mutex를 이용하는 방법을 소개 해 드리죵..
if not AppIsAlreadyRunning('MyAppName') then
begin
Application.Initialize;
{ ... }
Application.Run;
end; { if }
(*
Module Name : Just1Fix.pas
Description : Module to insure that just one copy of an application
is running at any given time.
Call AppIsAlreadyRunning in Project file, and
bypass everything if the function returns True.
Note that AppIsAlreadyRunning should only be called once.
Designed for Delphi 3 or higher, with long strings
enabled as default in compiler options.
Copyright (c) 1999 ASI/EDI, Inc. All rights reserved.
Written by Bill Sorensen ( tzimisce@mwaccess.net, www.Will.brinet.net).
Source code published by permission of ASI/EDI, Inc. (www.asiedi.com).
ASI/EDI Inc. and the author expressly disclaim any warranty,
express or implied, for this code and documentation.
Use it at your own risk.
*)
unit Just1Fix;
interface
function AppIsAlreadyRunning(const sUniqueText: String): Boolean;
implementation
uses
Windows;
function AppIsAlreadyRunning(const sUniqueText: String): Boolean;
begin
// If the named Mutex already exists, there's another copy running.
if OpenMutex(MUTEX_ALL_ACCESS,False,PChar(sUniqueText)) <> 0 then
Result := True
else
Result := (CreateMutex(nil,False,PChar(sUniqueText)) = 0);
// Otherwise, create a Mutex with a unique name.
// This should succeed, unless we're out of resources.
// Mutex handle is closed automatically when the process terminates.
// Mutex is destroyed when the last handle to it is closed.
end;
end.
박면구 wrote:
> 제가 프로그램(land.exe)을 만들었는데 리소스를 많이 차지하는 프로그램입니다.
> 윈도우에서 land.exe 라는 프로그램이 2개 이상은 못 올라오게 하는 방법이 있느지요?
> (land.exe 라는 프로그램이 실행중일 때에는 또다시 land.exe가 올라 오지 못하도록)
>
> 1. 이런 방법이 있는지요?
> 2. 있다면 구현 방법을 알고 싶습니다.
>
> 즐거운 추석 이 되기를 바랍니다.
> 99.9.22
> 박면구
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
문보석
1999.09.23 02:29
0
COMMENTS
/
0
LIKES
메모리에 있는 내용을 버퍼로 옮기려면....
박성훈
•
1999.09.23 01:39
1
COMMENTS
/
0
LIKES
문자키이외의 키 입력
박지훈.임프
•
1999.10.24 20:24
박성훈 wrote: > 버튼을 만들어서 키보드가 눌린 것처럼 하려고 하는데요. > 그런데 -,:등의 문자는 화...
진희
1999.09.23 00:40
0
COMMENTS
/
0
LIKES
String을 오른쪽에서 끊어 읽기
최은석
1999.09.23 00:26
0
COMMENTS
/
0
LIKES
메모타입의 데이타를 쿼리하는 방법
이강선
•
1999.09.22 23:40
1
COMMENTS
/
0
LIKES
[급한질문] 컴파일시(후에 런타임시)에 에러메시시 해설에대해서
이진우
•
1999.09.23 00:21
이강선 wrote: > 컴파일시에 그리고 런타임시에 다음과 같은 에러메시시가 납니다. > 'cannot focus...
이주원
1999.09.22 21:45
0
COMMENTS
/
0
LIKES
델파이등 질문함.. 꼭 봐주세요.
이충권
•
1999.09.22 21:28
1
COMMENTS
/
0
LIKES
Delphi Question!
이진우
•
1999.09.22 22:44
이충권 wrote: > 아래에서 보듯이 > 1부터 20까지의 Integer 만을 받기 위해서 > Range Error를 Check...
최영국
•
1999.09.22 19:06
1
COMMENTS
/
0
LIKES
AutoCAD 와 Delphi
박종혁
•
1999.09.26 19:12
안녕하세요. 음 최영국님이 질문하신 내용의 요지를 파악하고자 무지(?) 생각했었습니다. 근데 한가지 확...
박면구
•
1999.09.22 17:57
1
COMMENTS
/
0
LIKES
프로그램이 1번만 실행되도록...
제가 프로그램(land.exe)을 만들었는데 리소스를 많이 차지하는 프로그램입니다. 윈도우에서 land.exe 라는 프로그램이 2개 이상은 못 올라오게 하는 방법이 있느지요? (land.exe 라는 프로그램이 실행중일 때에는 또다시 land.exe가 올라...
신인재
•
1999.09.22 18:26
한번만 실행시키기 기법은 ATom을 이용하는 방법이 대중적입니다....(이것은 여러 델파이 사이트를 돌...
한 재
•
1999.09.22 17:29
1
COMMENTS
/
0
LIKES
컴포넌트 등록
신인재
•
1999.09.22 18:38
.pas를 등록하는 방법은 델파이 메뉴에서 component|install component.. 를 선택하여 dcluser40.bpl...
구관중
1999.09.22 16:31
0
COMMENTS
/
0
LIKES
이미지 인쇄가 안되는 이유가 몰까요??
김성률
•
1999.09.22 11:11
1
COMMENTS
/
0
LIKES
데이타셋의 여러 필드에 대한 속성들을 공유하는 방법에 대해서
이진우
•
1999.09.22 22:47
김성률 wrote: > 한가지 물어 보겠습니다. > 데이타베이스 응용프로그램 제작시 사용하는 데이타셋의 여...
정경철
1999.09.22 05:23
0
COMMENTS
/
0
LIKES
VssComm32의 아이콘 문제
김지혜
•
1999.09.22 04:45
2
COMMENTS
/
0
LIKES
급] 제 말은 그게 아닌데..받은변수가 정수인지 아닌지 확인...
이진우
•
1999.09.22 22:51
김지혜 wrote: > 제가 질문했던 것은 어떤 변수의 값을 받았는데 그것이 문자인지 숫자인지 확인을 해 볼...
김종환
•
1999.09.27 21:09
김지혜 wrote: > 제가 질문했던 것은 어떤 변수의 값을 받았는데 그것이 문자인지 숫자인지 확인을 해 볼...
김용
1999.09.22 04:45
0
COMMENTS
/
0
LIKES
BDE에서 호스트 및 바인드 변수의 개수 제한 ?
이주흥
•
1999.09.22 03:09
1
COMMENTS
/
0
LIKES
문자열을 뒤집는 방법 혹시 아시나요?
이진우
•
1999.09.22 22:53
이주흥 wrote: > 안녕하세요...왜이리 머리가 안돌아가는지.. > 문자열을 뒤집는 소스 없습니까. > 아님...
호
•
1999.09.22 02:54
1
COMMENTS
/
0
LIKES
Query한 결과를 입력화면 없이 바로 다른 테이블에 Insert 하기 전에 Update?
이진우
•
1999.09.22 22:54
호 wrote: > 안녕하세요? > 어제 제 질문에 답해 주신 이재식님과 익명의 델피니언께 무지무지 고맙다는 ...
진현주
1999.09.22 02:18
0
COMMENTS
/
0
LIKES
AdoDataset 의 shape 에 대해 아시는분[델파이5]
조복기
1999.09.22 02:05
0
COMMENTS
/
0
LIKES
wise 인스톨프로그램에서 BDE첨부
황현동
•
1999.09.22 01:58
1
COMMENTS
/
0
LIKES
HideCaret이라는 api함수 사용방법좀..
김영대
•
1999.09.22 18:33
// 아래 HideCaret()과 ShowCaret()을 보세요 // unit Unit1; interface uses Windows, Message...
박면구
1999/09/22 17:57
Views
586
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
대중적입니다....(이것은 여러 델파이 사이트를 돌아 다니면서
'한번'이란 키워드를 이용하면 많이 소개 되어 있습니다.)
여기서는 Mutex를 이용하는 방법을 소개 해 드리죵..
if not AppIsAlreadyRunning('MyAppName') then
begin
Application.Initialize;
{ ... }
Application.Run;
end; { if }
(*
Module Name : Just1Fix.pas
Description : Module to insure that just one copy of an application
is running at any given time.
Call AppIsAlreadyRunning in Project file, and
bypass everything if the function returns True.
Note that AppIsAlreadyRunning should only be called once.
Designed for Delphi 3 or higher, with long strings
enabled as default in compiler options.
Copyright (c) 1999 ASI/EDI, Inc. All rights reserved.
Written by Bill Sorensen ( tzimisce@mwaccess.net, www.Will.brinet.net).
Source code published by permission of ASI/EDI, Inc. (www.asiedi.com).
ASI/EDI Inc. and the author expressly disclaim any warranty,
express or implied, for this code and documentation.
Use it at your own risk.
*)
unit Just1Fix;
interface
function AppIsAlreadyRunning(const sUniqueText: String): Boolean;
implementation
uses
Windows;
function AppIsAlreadyRunning(const sUniqueText: String): Boolean;
begin
// If the named Mutex already exists, there's another copy running.
if OpenMutex(MUTEX_ALL_ACCESS,False,PChar(sUniqueText)) <> 0 then
Result := True
else
Result := (CreateMutex(nil,False,PChar(sUniqueText)) = 0);
// Otherwise, create a Mutex with a unique name.
// This should succeed, unless we're out of resources.
// Mutex handle is closed automatically when the process terminates.
// Mutex is destroyed when the last handle to it is closed.
end;
end.
박면구 wrote:
> 제가 프로그램(land.exe)을 만들었는데 리소스를 많이 차지하는 프로그램입니다.
> 윈도우에서 land.exe 라는 프로그램이 2개 이상은 못 올라오게 하는 방법이 있느지요?
> (land.exe 라는 프로그램이 실행중일 때에는 또다시 land.exe가 올라 오지 못하도록)
>
> 1. 이런 방법이 있는지요?
> 2. 있다면 구현 방법을 알고 싶습니다.
>
> 즐거운 추석 이 되기를 바랍니다.
> 99.9.22
> 박면구