стартиране на ARJ

7 отговора 265 прегледа
#1

стартиране на ARJ

как може да се стартира ARJ да архивира директория със делфи

Отговор
в отговор на Cвeтлин #2

Re: стартиране на ARJ

пробвай нещо такова не съм го тествал щото нямам arj тука но предполагам че ще сработи:

Procedure Archive (Directory:String);
begin
ShellExecute(0, Nil, Pchar('arj.exe'), PChar(directory+' -a -r'), Nil, SW_NORMAL);
end;

AquilaX

____________
умният знае кога да говори, мъдрият знае кога да мълчи
Отговор
в отговор на AquilaX #3

Re: стартиране на ARJ

Проблема е че командния ред трябва да има подобен вид
ARJ a c:\proba\filename.txt c:\ text.arj

Благодаря

Отговор
в отговор на svetlin #4

Re: стартиране на ARJ

Значи ето ти ShellExecute (има я в WinAPI-to)
HINSTANCE ShellExecute(

HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);


pParameters:
If lpFile specifies an executable file, lpParameters is a pointer to a null-terminated string that specifies parameters to be passed to the application.
If lpFile specifies a document file, lpParameters should be NULL.

Значи пиши му там каквито си искаш параметри към ARJ-то

AquilaX

____________
умният знае кога да говори, мъдрият знае кога да мълчи
Отговор
в отговор на Cвeтлин #5

Re: стартиране на ARJ

Ехеее, защо го правите по най трудния начин?
пробвай....
WinExec('arj a -v1200 -y c:\Tom\Arh\Data.arj *.*',SW_SHOWMINIMIZED);
примерно!!!!

Отговор
в отговор на Eмилиo #6

Zashtoto

Ve4e se preporuchva izpolzvaneto na ShellExecute vmesto Winexec

by Wise Guy
Отговор
в отговор на WiseGuy #7

Re: Zashtoto

От както си нагодих един алгоритъм за компресиране и си го враждам в програмите, от тогава не ги използвам тия функци... та за тва може да не съм в час :))))))))

Отговор
в отговор на Cвeтлин #8

Стартиране на друга програма

Прилагам един unit който ще свърши работа.


unit FExecute;

interface

uses WinTypes, ShellAPI, Forms, SysUtils;

function ExecuteFile(const FileName, Params, DefaultDir: string): THandle;

implementation

{ExecuteFile(FileName, '', Directory)}

function ExecuteFile(const FileName, Params, DefaultDir: string): THandle;
var
zFileName, zParams, zDir: array[0..255] of Char;
begin

Result := ShellExecute(Application.MainForm.Handle, nil, StrPCopy(zFileName, FileName), StrPCopy(zParams, Params), StrPCopy(zDir, DefaultDir), SW_SHOW);

end;

end.


Отговор