Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2021, 11:27   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
Лампочка скопировать вставить и заменить файл

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

из
Цитата:
D:\gta_sa.exe 100%\gta_sa.exe
в
Цитата:
C:\Program Files\Grand Theft Auto San Andreas\gta_sa.exe
Код:
uses
  ShlObj, ClipBrd; 

procedure CopyFilesToClipboard(FileList: string); 
var 
  DropFiles: PDropFiles; 
  hGlobal: THandle; 
  iLen: Integer; 
begin 
  iLen := Length(FileList) + 2; 
  FileList := FileList + #0#0; 
  hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT, 
    SizeOf(TDropFiles) + iLen); 
  if (hGlobal = 0) then raise Exception.Create('Could not allocate memory.'); 
  begin 
    DropFiles := GlobalLock(hGlobal); 
    DropFiles^.pFiles := SizeOf(TDropFiles); 
    Move(FileList[1], (PChar(DropFiles) + SizeOf(TDropFiles))^, iLen); 
    GlobalUnlock(hGlobal); 
    Clipboard.SetAsHandle(CF_HDROP, hGlobal); 
  end; 
end; 

// Example, Beispiel: 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  CopyFilesToClipboard('C:\Bootlog.Txt'#0'C:\AutoExec.Bat'); 
end;  

//Separate the files with a #0.
А как это всё вставить (какой-то пример там нашел: DelphiWorld)?

P.S. винчестер "убитый" и постоянно портится это файл gta_sa.exe ( компу уже ~ 12 лет, старый )) )

Последний раз редактировалось beegl; 18.10.2021 в 11:35. Причина: add code
beegl вне форума Ответить с цитированием
Старый 18.10.2021, 11:45   #2
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Так вроде...
copyfile('путь папки' , 'путь куда копировать ')
rita616 вне форума Ответить с цитированием
Старый 18.10.2021, 11:53   #3
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
По умолчанию

Цитата:
Сообщение от rita616 Посмотреть сообщение
copyfile('путь папки' , 'путь куда копировать ')
А оно копируется не спрашивая подтверждение замены?

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
copyfile('D:\gta_sa.exe 100%\GTA SA Version 1.0 US -Jehr\GTA SA PATCH 1.0 US\',  
'C:\Program Files\Grand Theft Auto San Andreas\', True);
end;
 end.

Последний раз редактировалось beegl; 18.10.2021 в 11:54. Причина: add code
beegl вне форума Ответить с цитированием
Старый 18.10.2021, 12:12   #4
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Цитата:
А оно копируется не спрашивая подтверждение замены?
да.
rita616 вне форума Ответить с цитированием
Старый 18.10.2021, 13:20   #5
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
По умолчанию

Подскажите, а как программно распаковывать архив gta_sa.exe.rar и кинуть туда:

Код:
'C:\Program Files\Grand Theft Auto San Andreas\'
P.S. наверное какой-то вирус портит именно тот файл gta_sa.exe

Последний раз редактировалось beegl; 18.10.2021 в 13:27. Причина: add text
beegl вне форума Ответить с цитированием
Старый 18.10.2021, 14:55   #6
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
По умолчанию

Подскажите, пожалуйста, как отключить одно ядро для процесса gta_sa.exe, (их всего 2х, ядра), чтоб игра ускоренно не "летала".

P.S. соррри если не по теме.

Последний раз редактировалось beegl; 18.10.2021 в 14:55. Причина: add text
beegl вне форума Ответить с цитированием
Старый 18.10.2021, 15:22   #7
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Цитата:
Подскажите, а как программно распаковывать архив gta_sa.exe.rar и кинуть туда:
https://www.programmersforum.ru/showthread.php?t=258798, нашла вот
rita616 вне форума Ответить с цитированием
Старый 18.10.2021, 15:27   #8
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
По умолчанию

получилось:
Цитата:
Сообщение от rita616 Посмотреть сообщение
https://www.programmersforum.ru/showthread.php?t=258798, нашла вот
так пробовал отключить одно ядро, не получилось ( как отключить одно ядро для процесса gta_sa.exe )

Код:
CheckCheckBox(FindWindow(nil,0), '#32770', False, 1);
Код:
procedure CheckCheckBox(hApp: HWND; ClassName: string; bValue: Boolean; CheckBoxNr: Integer);
var
  i: Word;
  hCheckBox: HWND;
begin
  if not IsWindow(hApp) then Exit;
  for i := 0 to CheckBoxNr do
    hCheckBox := FindWindowEx(hApp, hCheckBox, PChar(ClassName), nil);
  if IsWindow(hCheckBox) then
    SendMessage(hCheckBox, BM_SETCHECK, Integer(bValue), 0);
end;

Последний раз редактировалось beegl; 18.10.2021 в 15:29. Причина: add text
beegl вне форума Ответить с цитированием
Старый 18.10.2021, 16:00   #9
rita616
Пользователь
 
Регистрация: 19.12.2019
Сообщений: 69
По умолчанию

Цитата:
Подскажите, пожалуйста, как отключить одно ядро для процесса gta_sa.exe, (их всего 2х, ядра), чтоб игра ускоренно не "летала".
https://coderoad.ru/9078838/SetProce...BE%D1%80%D0%B0, долго искала, вот это нашла, ничего особо не поняла, может получится
rita616 вне форума Ответить с цитированием
Старый 18.10.2021, 19:01   #10
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,453
По умолчанию

Цитата:
Сообщение от rita616 Посмотреть сообщение
может получится
вот так должно работать??? :

Код:
type
  TProcessPriority = (ptLow         = $00000040,
                      ptBelowNormal = $00004000,
                      ptNormal      = $00000020,
                      ptAboveNormal = $00008000,
                      ptHigh        = $00000080,
                      ptRealtime    = $00000100);

procedure RunProcess(FileName: string; Priority: TProcessPriority);
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: string;
  Done: Boolean;
begin
  FillChar(StartInfo, SizeOf(TStartupInfo), #0);
  FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
  StartInfo.cb := SizeOf(TStartupInfo);

  CmdLine := FileName;
  UniqueString(CmdLine);
  try
    Done := CreateProcess(nil, PChar(CmdLine), nil, nil, False,
                          CREATE_NEW_PROCESS_GROUP + Integer(Priority),
                          nil, nil, StartInfo, ProcInfo);
    if Done then
    begin
      // Todo: Get actual cpu core count before attempting to set affinity!
      // 0 = <All Processors>
      // 1 = CPU 0
      // 2 = CPU 1
      // 3 = CPU 2
      // 4 = CPU 3
      // 5 = CPU 5
      // 6 = CPU 6
      // 7 = CPU 6
      // 8 = CPU 7

      // this sets to CPU 0 - but how to allow multiple parameters to
      // set more than one logical processor?
      SetProcessAffinityMask(ProcInfo.hProcess, 1); 
    end else
      MessageDlg('Could not run ' + FileName, mtError, [mbOk], 0)
  finally
    CloseHandle(ProcInfo.hProcess);
    CloseHandle(ProcInfo.hThread);
  end;
end;
в кнопку вписать:

Код:
RunProcess('gta_sa.exe',1); // только одно ядро для gta_sa.exe
Или как?

Последний раз редактировалось beegl; 18.10.2021 в 19:04. Причина: add text
beegl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать код в котором нужно заменить метод подсчёта на метод выбора и вставить ключ float[3] (файл вложен) Sasha48 Помощь студентам 0 26.02.2017 12:03
макрос: скопировать содержимое и вставить в нижнюю строку Sokovnin Microsoft Office Excel 3 18.09.2013 18:47
Stringgrid как выделить несколько ячеек, скопировать и вставить. tarakan1983 Общие вопросы Delphi 0 15.09.2010 10:27
скопировать/вставить snakezx Microsoft Office Excel 2 24.11.2008 17:04
Как с поиощью hiew вставить в файл строчку, "раздвинуть" файл и вставить туда строчку? barand Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.06.2008 10:58