Help, please((((
Задача проста (но для меня оказалась не под силу). Есть CD, на нем есть файл setup.exe. Пишу autorun, но у меня получается жесткая привязка к имени CD-ROM'а:
ShellExecute(Handle,"open","g:\\setup.exe",NULL,NULL,SW_RESTORE);
Что можно сделать для того, чтобы привязка была гибкая???
Заранее огромное спасибо!
Люди!! Помогите!!!
Задача проста (но для меня оказалась не под силу). Есть CD, на нем есть файл setup.exe. Пишу autorun, но у меня получается жесткая привязка к имени CD-ROM'а:
ShellExecute(Handle,"open","g:\\setup.exe",NULL,NULL,SW_RESTORE);
Что можно сделать для того, чтобы привязка была гибкая???
Заранее огромное спасибо!
Попробуй так:
int driveNumber = getdisk();
char driveLet = 'A'+driverNumber;
AnsiString mySetupPath;
mySetupPath = driveLet+":\\setup.exe";
ShellExecute(Handle,"open",mySetupPath.c_str(),NULL,NULL,SW_RESTORE);
[/COLOR]
Попробуй так:
int driveNumber = getdisk();
char driveLet = 'A'+driverNumber;
AnsiString mySetupPath;
mySetupPath = driveLet+":\\setup.exe";
ShellExecute(Handle,"open",mySetupPath.c_str(),NULL,NULL,SW_RESTORE);
[/COLOR]
Не хочет (((
Пишет следующее:
[C++ Error] Unit1.cpp(22): E2268 Call to undefined function 'getdisk'
[C++ Error] Unit1.cpp(23): E2451 Undefined symbol 'driverNumber'
[C++ Warning] Unit1.cpp(29): W8004 'driveNumber' is assigned a value that is never used
Не хочет (((
Пишет следующее:
[C++ Error] Unit1.cpp(22): E2268 Call to undefined function 'getdisk'
[C++ Error] Unit1.cpp(23): E2451 Undefined symbol 'driverNumber'
[C++ Warning] Unit1.cpp(29): W8004 'driveNumber' is assigned a value that is never used
Извини еще #include <dos.h> нужно
и ошибочка во 2 строке, нужно так:
сhar driveLet = 'A'+driveNumber;
Извини еще #include <dos.h> нужно
и ошибочка во 2 строке, нужно так:
сhar driveLet = 'A'+driveNumber;
void __fastcall TForm1::StaticText1Click(TObject *Sender)
{
int driveNumber = getdisk();
char driveLet = 'A'+driveNumber;
AnsiString mySetupPath;
mySetupPath = driveLet+":\\setup.exe";
ShellExecute(Handle,"open",mySetupPath.c_str(),NULL,NULL,SW_RESTORE);
SecondForm->ShowModal();
}Млин, форму вторую он выдает, падлюка.. а вот с CD файл запускать не хочет (((
Ну в самом же деле, не прописывать:
{
ShellExecute(Handle,"open","g:\\setup.exe",NULL,NULL,SW_RESTORE);
}
для всех возможных имен CD-ROM'а (((
Люди!! Помогите!!!
Задача проста (но для меня оказалась не под силу). Есть CD, на нем есть файл setup.exe. Пишу autorun, но у меня получается жесткая привязка к имени CD-ROM'а:
ShellExecute(Handle,"open","g:\\setup.exe",NULL,NULL,SW_RESTORE);
Что можно сделать для того, чтобы привязка была гибкая???
Что то я не догоняю может, или просто нужно все усложнить? Авторан у тебя ведь находится на CD! Значит просто положи и сетап и авторан в один каталог (обычно это корневой) и не указывай в пути ничего кроме имени файла сетапа (setup.exe).
Что то я не догоняю может, или просто нужно все усложнить? Авторан у тебя ведь находится на CD! Значит просто положи и сетап и авторан в один каталог (обычно это корневой) и не указывай в пути ничего кроме имени файла сетапа (setup.exe).
Проблема в том, что кроме setup.exe необходимо запустить еще 3-4 файла, который разбросаны по разным папкам CD
А нет, пасиб! Действительно зачем было делать сложнее ))))
Спасибо все еще раз!
Проблема в том, что кроме setup.exe необходимо запустить еще 3-4 файла, который разбросаны по разным папкам CD
А нет, пасиб! Действительно зачем было делать сложнее ))))
Спасибо все еще раз!
На самом то деле всё очень просто...
Ты же свою программу запускаешь? А она знет в какой папочке всё лежит нам остаётся только кинуть autorun.exe в корень диска и написать
void __fastcall TForm1::FormCreate(TObject *Sender)
{
path = ExtractFilePath(Application->ExeName);
if (path.LastDelimiter("\\")<path.Length())
{path += "\\";};
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
String Swop = path + "1C\\21_update\\B770021\\DISK1\\setup.exe";
WinExec(Swop.c_str(),SW_SHOW);
}
и все, прибавляй к path все что хочеш!
На самом то деле всё очень просто...
Ты же свою программу запускаешь? А она знет в какой папочке всё лежит нам остаётся только кинуть autorun.exe в корень диска и написать
void __fastcall TForm1::FormCreate(TObject *Sender)
{
path = ExtractFilePath(Application->ExeName);
if (path.LastDelimiter("\\")<path.Length())
{path += "\\";};
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
String Swop = path + "1C\\21_update\\B770021\\DISK1\\setup.exe";
WinExec(Swop.c_str(),SW_SHOW);
}
и все, прибавляй к path все что хочеш!
Спасибо!