Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.02;
Скачать: CL | DM;

Вниз

Параметры запуска приложения   Найти похожие ветки 

 
Ralf ©   (2004-11-16 20:58) [0]

У меня такой вопрос, если например файлы с определённым расширением открываются каким то приложением, то как перехватить "параметры" и открыть файл не во второй копии этого приложения, а в той, которая запущенна в данный момент. P.S. Я использовал функцию ShellExecute(...., Parameters, ..), где Parameters и есть "параметры", т.е. путь к файлу, который нужно открыть. Если можно поподробнее. Заранее благодарен.


 
Poirot ©   (2004-11-16 21:56) [1]

Что значит перехватить!?!?
Ты их задаёшь, значит ты и должен их знать:) Или объясняй проблему более точно:)


 
XProger ©   (2004-11-17 01:35) [2]

hWnd := FindWindow("TMainForm", nil);
if hWnd <> 0 then
begin
if IsIconic(hWnd) then
 ShowWindow(hWnd, SW_RESTORE);
SetForegroundWindow(hWnd);
SendMessage(hWnd, WM_USER + 1, 0, LPARAM(PChar(ParamStr(1))));
close;
end;

А в цикле перехвата сообщений пишешь
WM_USER + 1:
OpenFile(PChar(lparam));

Гарантий на правильность не даю... ;)


 
GuAV ©   (2004-11-17 01:47) [3]

XProger ©   (17.11.04 1:35) [2]
Гарантий на правильность не даю... ;)


Я гарантирую непраильность ;-)


 
Тестировщица ©   (2004-11-17 02:09) [4]

XProger ©   (17.11.04 01:35) [2] Афигеть... Ж%-О


 
Германн ©   (2004-11-17 04:28) [5]

А я бы еще попросил бы разъяснить - "и открыть файл не во второй копии этого приложения, а в той, которая запущенна в данный момент".


 
Kair ©   (2004-11-17 07:04) [6]


> Германн ©   (17.11.04 04:28) [5]
> А я бы еще попросил бы разъяснить - "и открыть файл не во
> второй копии этого приложения, а в той, которая запущенна
> в данный момент".


Чтобы при запуске второй копии приложения, эта самая копия передавала имя файла первой копии приложения, чтобы уже та (первая) копия обработала файл, запускаемый во-второй копии.


 
Kair ©   (2004-11-17 07:10) [7]

P.S. Проверка, запущена ли уже программа или нет:


program MyProgram;

uses
 Forms, Windows, ...;

var
 hMutex: Cardinal;

begin
 Application.Initialize;
 Mutex := CreateMutex(nil, False, "MyString");
 if GetLastError <> 0 then Exit;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
 ReleaseMutex(Mutex);
end.



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

Текущий архив: 2005.01.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
14-1102759642
OneFragLeft
2004-12-11 13:07
2005.01.02
Загрузка из сети


3-1102021579
ali_t
2004-12-03 00:06
2005.01.02
sql запрос в TQuery


3-1102058137
Ivanesus
2004-12-03 10:15
2005.01.02
Подскажите как в ХРАНИМОЙ ПРОЦЕДУРЕ выбрать уникальные записи?


14-1102531328
begin...end
2004-12-08 21:42
2005.01.02
Выбор монитора


6-1097617392
Zeon
2004-10-13 01:43
2005.01.02
Проверка существования этектронного адреса