|
|
|
| Вобщем я со всем этим общаюсь не очень но каким то боком сварганил на C++ Builder 5 мини прогу. Ее цель - запускать выбранный файл и все :D (эдакий анагол эксплорера)
Проблема в следующем - могу делать там все что задумал кроме запуска самого файла =P
Вообщем хелп! | |
|
|
|
|
|
|
|
для: Smak
(11.04.2007 в 16:03)
| | Возможно вам подойдёт функция execlp() из библиотеки prosess.h
execlp("main.exe","main.exe",NULL);
execlp("Winword", "Winword", "doc1.doc", "doc2.doc", NULL); |
| |
|
|
|
|
|
|
|
для: cheops
(11.04.2007 в 19:40)
| | Эту функцию я пробовал но у меня не вышло - проблему описал под кодом
#include <vcl.h>
#pragma hdrstop
#include <process.h>
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TSE *SE;
__fastcall TSE::TSE(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TSE::FilesChange(TObject *Sender)
{
Filename->Text = Files->FileName;
}
void __fastcall TSE::DriveChange(TObject *Sender)
{
Dir->Drive = Drive->Drive;
}
void __fastcall TSE::DirChange(TObject *Sender)
{
Files->Directory = Dir->Directory;
}
void __fastcall TSE::OpenClick(TObject *Sender)
{
if(Filename->Text == "")
{
SE->Close();
}
//execlp("","",NULL);
}
|
У меня путь и имя файла могут идти от TEdit-a и TFileListBox-a там выходит AnsiString а надо Char. Превратить одно в другое и заставить работать не удалось увы. | |
|
|
|
|
|
|
|
для: Smak
(11.04.2007 в 20:10)
| | Для того, чтобы перобразовать AnsiString в char * следует воспользоваться методом c_str()
execlp(Filename->Text.c_str(),Filename->Text.c_str(),NULL);
|
| |
|
|
|
|
 75.9 Кб |
|
|
для: cheops
(11.04.2007 в 20:16)
| | Чет не запускается при этом молчит как партизан хоть бы ошибку выдал.
Прикрепил проект скажите что там не так. Зарание Спасибо. | |
|
|
|
|
|
|
|
для: Smak
(11.04.2007 в 20:51)
| | А файл какой запускаете? | |
|
|
|
|
|
|
|
для: cheops
(12.04.2007 в 15:42)
| | Любой выбранный в листбоксе. Прога должна работать как explorer - просто запускать выбранный файл автоматом определяя какой прогой это нуно делать(для примера щелкаем на рабочем столе на файл word.doc - запускается ворд запускается файл. или inet.html запускается браузер по умолчанию и файл). Возможно есть способ проще если ктото знает подскажите.
З.Ы.
Вариант execlp("main.exe","main.exe",NULL); тоже не прокатил хотя я пробовал запускать ехешник через прогу но результат тот же - нету результата | |
|
|
|
|
|
|
|
для: Smak
(12.04.2007 в 17:20)
| | Чтобы выяснить имя программы, которая назначена данному расширению файла - нужно реестр потрошить... покрайней мере Windows, имена программ, соответствующих файлам берёт от туда, а уже потом передавать имя файла программе в качестве параметра
execlp("Winword", "Winword", "doc1.doc", NULL); |
| |
|
|
|