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

Вниз

как запустить файл, который присоединен в качестве рессурса?   Найти похожие ветки 

 
MikeFW   (2003-02-25 13:06) [0]

помогите, пожалуйста

я в качестве рессурса разместил exe-файл в своей программе (c помощью {$R test.res})

test.res (TEST EXEFILE D:\TEST.EXE)

как мне теперь запустить этот файл по нажатию кнопки?
если можно то проилюстрируйте на коде.


 
OlegM   (2003-02-25 13:49) [1]

VAR
s:STRING;
BEGIN
procedure TForm1.Button1Click(Sender: TObject);
ExtractRes("EXEFILE", "EXE", "TEST.EXE");
S:=ExtractFilePath(Application.ExeName);
S:=S+"HEXPERT.exe";
WinExec(pCHAR(S), SW_SHOW)
end;


 
OlegM   (2003-02-25 13:50) [2]

Блин, в 7 строке вместо HEXPERT.EXE напиши TEST.exe


 
MikeFW   (2003-02-25 14:35) [3]

что-то я несовсем разобрался в вашем коде,
вот тут я привожу полный код программы, которая не работает:
подскажите, пожалуйста, где я ошибся

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Pass: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
S: String;

implementation
{$R *.dfm}
{$R test.res}

procedure ExtractRes(ResType, ResName, ResNewName: String);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
//Res.SaveToFile(ResNewName);
//Res.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Pass.Text = "123" then begin
ExtractRes("EXEFILE", "WINSER", "WINSER.EXE");
S := ExtractFilePath(Application.ExeName);
S := S + "WINSER.EXE";
WinExec(Pchar(S), SW_SHOW);
Form1.Close;
end
else
ShowMessage("Пароль указан неверно");
end;

end.


 
OlegM   (2003-02-25 14:40) [4]

А где ошибку выдает?


 
MikeFW   (2003-02-25 14:51) [5]

ошибку не выдает,
просто файл не запускается


 
OlegM   (2003-02-25 14:54) [6]

А сам файлик то выдергивает из ресурса, посмотри если да то почему не работает Winexec хрен знает.
P.S. у меня робит


 
MikeFW   (2003-02-25 15:01) [7]

вот смотри,
я убираю комментарии

procedure ExtractRes(ResType, ResName, ResNewName: String);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
Res.SaveToFile(ResNewName);
Res.Free;
end;

и файл ныдергивается из ресурса и копируется в каталог

но мне надо его не копировать, а просто запускать
может ты напишешь весь код своей проги,
а то честно я не совсем тот кусок понял (думаю в этом и ошибка кроется)


что же я не понял:

// какая функция это?
VAR
s:STRING;
BEGIN
// почему здесь идет Button1Click?
procedure TForm1.Button1Click(Sender: TObject);
// как выглядит у тебя данная функция?
ExtractRes("EXEFILE", "EXE", "TEST.EXE");
S:=ExtractFilePath(Application.ExeName);
S:=S+"HEXPERT.exe";
WinExec(pCHAR(S), SW_SHOW)
end;








 
MikeFW   (2003-02-25 15:51) [8]

procedure ExtractRes(ResType, ResName, ResNewName: String);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
Res.SaveToFile(ResNewName);
Res.Free;
end;

а может есть такая процедура, которая запускает файл, как просиходит копирование в Res.SaveToFile(ResNewName);
?



 
MikeFW   (2003-02-25 17:03) [9]

> OlegM ©

твой код работает только при программе в каталоге, но мне какраз нужно чтобы она запускалась из ресурса


 
OlegM   (2003-02-26 06:20) [10]

Как запустить из ресурса я незнаю, как то пытался зделать тточно такое-же но неполучилось, пришел к тому что надо после запуска удалять файл, я там правда Flash использовал и короче после выдергивания ролика из ресурса, запускал и затем сразу удалял его
Пытался просмотреть будет ли видно файл ролика в Explorere ничего не увидел. Но не знаю прокатит ли это с EXE

procedure TForm1.FormCreate(Sender: TObject);
var
S:String;
begin
ExtractRes("ShockwaveFlashObjects_TLB", "FLASHM", "FLASH.swf");
S:=ExtractFilePath(Application.ExeName);
S:=S+"Flash.swf";
ShockWaveFlash1.Movie:=S;
ShockWaveFlash1.Play;
DeleteFile(S);
end;



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

Форум: "Основная";
Текущий архив: 2003.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
14-17285
Vitus
2003-02-19 10:48
2003.03.06
Как проверить есть ли подключение к Инету?


14-17267
tiam
2003-02-19 09:20
2003.03.06
Duke Nukem3d & Duke Nukem Forever


1-17004
mmmh
2003-02-24 20:21
2003.03.06
Сразу два вопроса 1 как отсортировать String grid чтод сначала шл


1-17110
ers
2003-02-26 09:20
2003.03.06
Как записать в ини цвет?


6-17216
neodiX
2003-01-13 01:25
2003.03.06
Что за ошибка, в чем причина?





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