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

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
14-1102057966
Lancelot
2004-12-03 10:12
2005.01.02
Вопрос специалистам по Java


3-1102055435
Игорь нтк
2004-12-03 09:30
2005.01.02
Combobox


3-1102243521
_Dragon
2004-12-05 13:45
2005.01.02
Не создается "убывающий" индекс во время работы программы


4-1100754989
e-a-r-l
2004-11-18 08:16
2005.01.02
Запуск "скрытого" приложения


1-1103190060
Garry_c
2004-12-16 12:41
2005.01.02
Пропало верхнее меню в окне. Как восстановить?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский