Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Копирование файла по заданному пути для разных типов ОС

Ответить
Настройки темы
[решено] Копирование файла по заданному пути для разных типов ОС

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: foma555
Дата: 28-06-2012
Привет, Ребята.
Я ещё новичёк, и пока не разбираюсь в этом языке программирования. Но очень хочу научиться.
Помогите пожалуйста.
Задача: Файл лежит по пути: C:\5\files\TEMP\programma.exe
нужно его скопировать в путь: C:\Program Files\files\myProgram\programma.exe
(разрядность систем x96-x64 нужно учитывать)
(процесс копирования оображать не надо)
ну и запустить скопированный файлик.
Подскажите плз, какой код должен быть.
P.S. Сори, если это где-то было уже.

Отправлено: 19:13, 28-06-2012

 

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


всё, сам разобрался.
Код: Выделить весь код
FileCopy("C:\5\files\TEMP\programma.exe", "C:\Program Files\files\myProgram\programma.exe", 9)
тока не понял как сделать разделение для x64. и надо ли оно.

Отправлено: 19:55, 28-06-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Macros
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:26, 28-06-2012 | #3


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, ок, понял.
Ещё бы теперь научитья испольовать его у с учётом выше написанного кода

а , кажись разобрался.
Тока вот проблемса. у меня есть команда
Код: Выделить весь код
Run('C:\Windows\Notepad.exe "C:\Program Files\files\textes\info.txt" ')
вот как бы её реализовать корректно для x64. В ней нужно направить запрос не в C:\Program Files а в C:\Program Files (x86)

Хотя всё, и это догадался как реализовать.
Могу выложить вариант, кому надо.

Последний раз редактировалось foma555, 29-06-2012 в 00:22.


Отправлено: 22:37, 28-06-2012 | #4


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата foma555:
Могу выложить вариант, кому надо »
Выложи, и будь добр, пометь тему как решённая.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 04:59, 29-06-2012 | #5


Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Набросал код:
Код: Выделить весь код
#NoTrayIcon ; убираем иконку в трее, она не нужна точно.
FileCopy(@SystemDrive & "\5\files\TEMP\programma.exe", @ProgramFilesDir & "\files\myProgram\programma.exe", 1 + 8) ; копирование файла
RunWait(@ProgramFilesDir & "\files\myProgram\programma.exe") ; запуск файла с ожиданием конца его работы
Рассмотрим строку FileCopy(@SystemDrive & "\5\files\TEMP\programma.exe", @ProgramFilesDir & "\files\myProgram\programma.exe", 1 + 8)

@SystemDrive - макрос, указывающий на системный диск (то есть C (на всякий случай, ведь система бывает установлена не только на C
& - символ конкатенации, объединения строк
@ProgramFilesDir - макрос, указывающий на папку программ ("Program Files" в операционке x86 или "Program Files (x86)" в x64)
1 + 8 - флаги копирования, "1" указывает на перезапись существующих файлов, "8" указывает на создание недостающих директорий.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:53, 29-06-2012 | #6


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата apozlevich:
"Program Files (x86)" в x64) »
насколько помню, в х64 переменная переадресовывает на просто програм файлз. А в програм файлз х86 можно запихнуть. Ниже выкладываю то, как я сделал.

Код: Выделить весь код
$ProgramFilesDir = EnvGet('ProgramFiles(x86)') ; for 64bit Win it will return a valid path.
if not $ProgramFilesDir then $ProgramFilesDir = @ProgramFilesDir ;

FileCopy(@SystemDrive & "\5\files\TEMP\programma.exe", $ProgramFilesDir & "\files\myProgram\programma.exe", 9)
Если же захотим не копировать, а скажем запустить файл по такому разделению, то код будет такой:

Код: Выделить весь код
$ProgramFilesDir = EnvGet('ProgramFiles(x86)') ; for 64bit Win it will return a valid path.
if not $ProgramFilesDir then $ProgramFilesDir = @ProgramFilesDir ;

if $ProgramFilesDir = EnvGet('ProgramFiles(x86)') then 
      Run('C:\Windows\Notepad.exe "C:\Program Files (x86)\files\myProgram\Info.txt" ')  
   else 
     Run('C:\Windows\Notepad.exe "C:\Program Files\files\myProgram\Info.txt" ')
	  endif

Отправлено: 23:33, 29-06-2012 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата foma555:
насколько помню, в х64 переменная переадресовывает на просто програм файлз »
Можно отключить переадресацию:
Код: Выделить весь код
DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 00:18, 30-06-2012 | #8


Аватара для apozlevich

Ветеран


Автор проектов


Сообщения: 1025
Благодарности: 180

Профиль | Отправить PM | Цитировать


Цитата foma555:
EnvGet('ProgramFiles(x86)') »
Хм.. а такая переменная есть? Пойду на виртуальник семерку поставлю чтоль

-------
echo 127.0.0.1 google.ru >> %systemroot%\system32\drivers\etc\hosts && ipconfig /flushdns && echo Я ничего не трогал, оно само!


Отправлено: 09:54, 30-06-2012 | #9


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Можно отключить переадресацию:
Код: Выделить весь код
DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1) »
сори, не особо разбираюсь в этом пока. Тока начал изучать язык)
Цитата apozlevich:
Хм.. а такая переменная есть? Пойду на виртуальник семерку поставлю чтоль »
да, на 7 x64 пробовал у друга. вроде как работает

Отправлено: 11:54, 30-06-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Копирование файла по заданному пути для разных типов ОС

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Копирование пути к файлу с помощью горячих клавиш garynich Microsoft Windows 7 12 30-03-2012 15:00
CMD/BAT - [решено] Как завершить процесс по пути файла процесса? navigator19 Скриптовые языки администрирования Windows 1 21-07-2010 11:54
C/C++ - Создание файла, по указанному пути S1stem Программирование и базы данных 1 01-08-2008 04:05
Просмотр пути используемого файла maslinaV Microsoft Windows NT/2000/2003 6 25-06-2008 13:43
Два пути ввода пользователей в домен, два разных результата xstranger Microsoft Windows NT/2000/2003 14 31-05-2006 18:30




 
Переход