IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Копирование файла
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Мужской

Репутация: -  0  +


Кто ни будь знает как сделать так чтобы призапуске програмы она копировала
фаил в в у казаную втексте проги папку и прописавала бы в реестре запуск этого файла при загрузки компа.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Я знаю этот модуль XMS тока он у мя немного расширен по удобству smile.gif
почти одно и тоже но...


unit xmslib;

                    interface
type TXMS = record
MajVer,MinVer:byte;
Func:pointer;
end;

type
PMoveStruct= ^TMoveStruct;
TMoveStruct=record
 lenght            :longint;{желательно, четная}
 SourceHandle      :word;{0 - читать из convension memory}
 SourceOffset      :longint;{полный pointer}
 DestanationHandle :word;{0 - читать из convension memory}
 DestanationOffset :longint;{полный pointer}
end;

var       IsXMS:boolean;
         XMS:TXMS;

procedure DetectXMS;{есть ли XMS}
function  XMSGetFreeMem:word;{Скока мемори свободно?}
function  XMSAllocateMem(size:word):word;{захватить большой кус памяти}
function  XMSReAllocateMem(desc,size:word):word;{переопределить размеры куска - нам вечно МАААЛО =)}
function  XMSFreeMem(desc:word):boolean;{Освободить кусок}
procedure XMSMoveMem(MoveStruct:PMoveStruct);{перебросить инфу из памяти в память}

                    implementation

procedure DetectXMS;
begin
 asm
  mov [IsXMS],0
{--- Is xms ---}
  mov ax,4300h
  int 2Fh
  cmp al,80h
  jne @exit
  mov [IsXMS],1
{--- xms control---}
  mov ax,4310h
  int 2Fh
  mov word ptr [XMS.func],bx
  mov word ptr [XMS.func+2],es
{--- xms Ver---}
  xor ax,ax
  call [xms.func]
  mov [XMS.MajVer],ah
  mov [XMS.MinVer],al

@exit:
 end;
end;

function XMSGetFreeMem:word;
begin
 asm
  mov @result,0
  cmp [IsXMS],0
  je @exit
  xor ax,ax
  mov ah,8
  call [xms.func]
  mov @result,dx
@exit:
 end;
end;

function XMSAllocateMem(size:word):word;
begin
 asm
  mov @result,0
  cmp IsXMS,0
  je @exit
  mov ax,0900h
  mov dx,[size]
  call [xms.func]
  cmp ax,1
  jne @exit
  mov @result,dx
@exit:
 end;
end;

function XMSReAllocateMem(desc,size:word):word;
begin
 asm
  mov @result,0
  cmp IsXMS,0
  je @exit
  mov ax,0F00h
  mov bx,[size]
  mov dx,[desc]
  call [xms.func]
  cmp ax,1
  jne @exit
  mov @result,dx
@exit:
 end;
end;

function XMSFreeMem(desc:word):boolean;
begin
 asm
  cmp IsXMS,0
  je @exit
  mov ax,0A00h
  mov dx,[desc]
  call [xms.func]
  mov @result,al
@exit:
 end;
end;

procedure XMSMoveMem(MoveStruct:PMoveStruct);
begin
 asm
  cmp IsXMS,0
  je @exit
  push ds
  lds si,MoveStruct
  mov ax,0B00h
  call [xms.func]
  pop ds
@exit:
 end;
end;

begin
DetectXMS;
end.

(*
Здесь немнога бла бла бла по поводу - почему мне XMS больше чем EMM
понравилось - так вот,

1. EMM позволяет из куска памяти в 64 Kb копировать все 64 Kb -
здесь тоже самое, НО после этого, для копирования нового куска
в 64 Kb здесь надо всего навсего изменить один параметр записи, а EMM
необходимо сдвинуть окно (или его часть).

2.Процедуру для копирования здесь предоставляет драйвер, в EMM вы пишете
ее сами.

3. Нельзя наверняк сказать - есть ли на компьютере EMM драйвер, потому что
проверка осуществляеться с помощью проверки поинтера. Про XMS можно узнать
однозначно путем вызова прерывания.

4. На XMS можно установить hook и проверять что программа там вызывает.
*)



--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Darkwolf   Копирование файла   17.03.2004 20:41
SKVOZNJAK   Если требуется лишь запуск проги при старте компа,…   18.03.2004 0:35
Darkwolf   SKVOZNJAK спасибо попробую   18.03.2004 10:29
trminator   Прописать в реестре автозапуск можно, написав .reg…   18.03.2004 10:36
Atos   Всё собираюсь и никак не соберусь выложить прогу, …   20.03.2004 11:22
Atos   А вот и прога: uses dos,crt; const Recs=100; {запи…   22.03.2004 9:55
Dark   Ну копирование это то не сложно, а вот реестр ) чт…   22.03.2004 9:58
Darkwolf   Atos программку посмотрю, если получется что то у…   22.03.2004 13:19
Atos   К сожалению, во всём, что касается реестра, автоза…   23.03.2004 19:03
Darkwolf   Atos если есть ещё интересные программки и матерья…   23.03.2004 19:32
Altair   Атрибут есть у каждого файла или папки, 1) У пап…   25.03.2004 14:02
GLuk   2Oleg_Z: Ты имел ввиду единственный способ работы …   28.03.2004 15:15
Atos   А это что-то даёт, кроме просто увеличения свобод…   29.03.2004 10:45
trminator   Теоретически, должна возрасти скорость работы с ре…   29.03.2004 23:54
P@sh@   для физического ужатия файлов реестра как в W98, т…   1.04.2004 13:30
P@sh@   по поводу копирования файлов - делал я когда-то не…   1.04.2004 13:41
Atos   Круто... P@sh@, а исходник не выложишь?   3.04.2004 12:55
BlackShadow   Uses WinProcs,Strings,ShellAPI; Const  Destinat…   6.04.2004 14:56
P@sh@   программа копирования файлов (одного файла за раз)…   7.04.2004 9:15
Atos   Да, до такого мне ещё расти... Обязательно попытаю…   7.04.2004 13:34
Altair   А вот очень красивый вариант копирования (достал в…   8.04.2004 17:47
P@sh@   Oleg_Z Это из TurboVision, для пользователя да, п…   9.04.2004 14:19
Altair   Да, согласен, кстати на форуме нет ничего про объе…   9.04.2004 14:54
Atos   Если есть исходники TV, то не проблема! {Кста…   9.04.2004 15:54
SKVOZNJAK   http://argon.com.ru/windows/winxp/xpautorun   14.04.2004 23:20
Darkwolf   SKVOZNJAK спасибо обезательно воспользуюсь   15.04.2004 10:02
Dark   Я знаю этот модуль XMS тока он у мя немного расшир…   21.05.2004 9:07


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.04.2024 15:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name