Guest |
Отправлено: 12.05.2005, 21:19 |
|
Не зарегистрирован
|
Можно ли из своей программы запустить другую программу по ее ярлыку
|
|
olegenty |
Отправлено: 13.05.2005, 06:57 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
можно
|
|
Guest |
Отправлено: 13.05.2005, 14:02 |
|
Не зарегистрирован
|
КАК? |
|
Gedeon |
Отправлено: 13.05.2005, 16:29 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
CODE |
HWND ODBW = FindWindow("ConsoleWindowClass","ODB"); // ищем окно проги, чтоб узнать не запущена ли уже
if(ODBW){ // если да
SetForegroundWindow(ODBW); // переносим на первый план
}
else{ // иначе
TIniFile *INI = new TIniFile(ExtractFilePath(Application->ExeName) + "odb.ini");
AnsiString Path = INI->ReadString("ODB","Path",""); // вычитываем путь из ини файла (можете указать свой сразу, без ини)
delete INI;
ShellExecute(NULL,"open",Path.c_str(),NULL,ExtractFilePath(Path).c_str(),SW_SHOWDEFAULT); // запускаем программу по ярлыку
ODBW = FindWindow("ConsoleWindowClass","ODB"); // находим окно
SetForegroundWindow(ODBW); // переносим на первый план
} |
Вот на всякий случай кусок ини файла
QUOTE |
[ODB]
Path=C:\Documents and Settings\admin\Рабочий стол\ODB.lnk
|
|
|
Guest |
Отправлено: 13.05.2005, 23:23 |
|
Не зарегистрирован
|
Почему то данный код не запускает программы через ярлыки, происходит ошибка, а просто EXE файлы без проблем |
|
Gedeon |
Отправлено: 14.05.2005, 09:01 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Да? А почему у меня работает?
Ошибка какая?
|
|