delphi는 하나의 실례만 실행할 수 있습니다
1. 상호 배척 대상 만들기
프로젝트 프로젝트 1.dpr에서 상호 배척 대상 만들기
program project1
uses
windows,form,
frmmain in 'frmmain.pas' {mainform};
{$r *.res}
var
happmutex: thandle; //
begin
happmutex := createmutex(nil, false,’projectname’); // projectname
if ( (happmutex <> 0) and (getlasterror() = error_already_exists)) then
begin // happmutex <> 0
messagebox(' , !',' !', mb_ok);
end
else
begin
application.ininitialize;
application.createform(tmainform, mainform);
application.run;
end;
releasemutex(happmutex); // closehandle(happmutex)
end.
2. 찾기 창법
이것은 가장 간단한 방법 중의 하나다.프로그램이 실행되기 전에findwindow 함수로 같은 창 클래스와 제목을 가진 창을 찾습니다. 찾으면 이미 존재한다는 것을 설명합니다
프로젝트 소스 파일의 초기화 부분에 다음 코드를 추가합니다.
program project1
uses
forms,windows;
var hwnd:thandle;
begin
hwnd:=findwindow(‘tform1’,’form1’);
if hwnd=0 then
begin
application.initialize;
application.createform(tform1, form1);
application.run;
end
else
application.messagebox(pchar(' !'),pchar(' !'),mb_ok);
end;
findwindow () 함수는 두 개의 매개 변수 (클래스 이름과 제목의 창) 중 하나를 가지고 있는 매개 변수를 무시할 수 있지만, 공교롭게도 다른 프로그램도 같은 클래스를 사용하면 정확한 결과를 얻지 못하도록 두 개의 매개 변수를 모두 사용하는 것을 강력히 권장합니다.
또한델파이 ide 창에서 이 프로그램을 실행하면
이 글은 마카이동 블로그에서 전재되었습니다. 출처를 밝혀 주십시오.http://www.makaidong.com같은 클래스와 제목의 창이 이미 존재하기 때문에 한 번도 실행할 수 없습니다. 디자인할 때의 창입니다.
3. 전역원자법
우리도 시스템에 전역 원자를 추가하는 방법을 이용하여 여러 프로그램의 실례적인 운행을 방지할 수 있다.전역 원자는 윈도우즈 시스템이 책임지고 유지한다. 그 중의 모든 원자가 유일하다는 것을 보장하고, 인용 계수를 관리하며, 전역 원자의 인용 계수가 0일 때 메모리에서 제거한다.글로벌addatom 함수로 전역 원자에 255바이트 이내의 문자열을 추가하고 글로벌findatom으로 전역 원자가 존재하는지 확인합니다. 마지막으로 프로그램이 끝날 때 글로벌deletetom 함수로 추가된 전역 원자를 삭제합니다.예는 다음과 같습니다.
program project1
uses windows,froms,
unit1 in 'unit1.pas' {form1},
const iatom=‘application’; //
begin
if globalfindatom(iatom)=0 then
begin
globaladdatom(iatom); //
application.initialize;
application.createform(tform1,form1);
application.run;
globaldeleteatom(globalfindatom(iatom));//
end
else
application.messagebox(pchar(' !'),pchar(' !'),mb_ok);
end.
관련 기사를 검색하려면 다음과 같이 하십시오.
delphi는 이 링크를 실행하는 세 가지 방법만 허용합니다.http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%83%AD%E6%96%87/11617.shtml전재는 출처를 밝혀 주십시오:delphi는 하나의 실례만 실행할 수 있는 세 가지 방법-블로그원
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.