Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Вниз

Загрузка приложения   Найти похожие ветки 

 
KVBr   (2002-10-11 15:56) [0]

Загрузка приложения происходит несколько секунд. Если нетерпеливый пользователь во время загрузки кликает на иконку еще раз, то вылетает ошибка. Как этого избежать?


 
neodiX   (2002-10-11 16:00) [1]

Автор не я, некий "Vladimir" (damageinc@e-mail.ru)

program My1;uses Forms, Windows, Dialogs, SysUtils,var g_hAppMutex: THandle; Wnd : hWnd; buff: array [0..127] of Char; s:string; i:integer;function OneInstance: boolean;begin g_hAppMutex:=CreateMutex(nil,false,PChar("AnUniqueString"+IntToStr(GetDesktopWindow))); Result:=(WaitForSingleObject(g_hAppMutex,0)<>WAIT_TIMEOUT);end;begin Application.Initialize; Application.Title := "SmartDecoder"; Application.HelpFile := "Decoder.hlp"; //создаём инстанс, если его ещё нету на текущем рабочем столе g_hAppMutex:=0; if OneInstance then begin
Application.CreateForm(TMainFrm, MainFrm); Application.R!
un; end; if LongBool(g_hAppMutex) then //если уже есть begin ReleaseMutex(g_hAppMutex); CloseHandle(g_hAppMutex); if ParamStr(1)="" then ShowMessage("Программа уже запущена на этом рабочем столе. Нажмите кнопку "OK" для передачи управления уже запущенной копии программы."); Wnd:=GetWindow(GetTopWindow(0),gw_HWndFirst); while Wnd<>0 do begin //Если не собственное и не дочернее окно if (Wnd<>Application.Handle)and(GetWindow(Wnd,gw_Owner)=0) then begin
GetWindowText(Wnd,buff,sizeof(buff!
)); if Copy(StrPas(buff),1,12)="SmartDecoder" then if Wnd=GetWindowLong(Wnd,GWL_USERDATA) then begin ShowWindow(Wnd,SW_ShowNormal); SetForegroundWindow(Wnd); i:=1; while ParamStr(i)<>"" do begin s:=ParamStr(i);
PostMessage(Wnd,WM_OPEN_FILE,GlobalAddAtom(PChar(s)),0); &!
nbsp; inc(i); end; Application.Terminate; Exit; end; end; Wnd:=GetWindow(Wnd,gw_hWndNext); end; end;end.
Если программа уже запущена, управление будет передано существующей
копии.


 
neodiX   (2002-10-11 16:04) [2]

Блин! Короче я тебе майл сейсас вышлю...


 
REA   (2002-10-11 16:05) [3]

Ну замутили... я как то попроще делал.


 
neodiX   (2002-10-11 16:07) [4]

Согласен есть и проще, но иногда главное что бы рабатоло.


 
Pumpkin   (2002-10-11 16:08) [5]

http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988619824&n=15


 
Zemal   (2002-10-11 16:10) [6]

Я предложу более простой вариант без всяких заморочек:

program Program1;

uses
Forms,
Windows,
Dialogs,
uMain in "uMain.pas" {fMain};

{$R *.res}

var
UniqueMapping: THandle;
begin
UniqueMapping := CreateFileMapping($ffffffff,
nil, PAGE_READONLY, 0, 32, "MyMap");
if UniqueMapping = 0 then
begin
ShowMessage("Ошибка выделения памяти!");
Halt;
end else
if GetLastError = ERROR_ALREADY_EXISTS then
begin
ShowMessage("Вторую копию запускать нельзя!");
Halt;
end;
Application.Initialize;
Application.CreateForm(TfMain, fMain);
Application.Run;
end.

Пользуйся наздоровье :).




Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-68615
pvasya
2002-09-28 09:58
2002.10.21
EOleException


14-68955
iNew
2002-09-19 16:47
2002.10.21
Почему если файл заархивировать RAR и запаролить то этот


7-69030
AArt
2002-08-13 16:05
2002.10.21
Я как-то сдесь ссылку нашел


14-68989
777
2002-09-29 01:27
2002.10.21
QNX


6-68905
Delpher-Hacker
2002-08-18 02:14
2002.10.21
Помогите мне разабраться с чатом. PLEASE!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский