ShellExecute - параметр.
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
ShellExecute - параметр. - 2009-03-11 15:16:39.666666
|
|
|
Kerny
Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
|
Не пойму, что не так cmd запускается, но без параметров!!!
.386
.model flat,stdcall
option casemap:none
includelib C:\masm32\lib\kernel32.lib
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\shell32.lib
include C:\masm32\include\shell32.inc
.data
open BYTE "open",0
filename BYTE "cmd.exe",0
param BYTE "mkdir 77777",0
.code
start:
;код запускает любую прогу, сл. команда указатель на прогу
invoke ShellExecute, 0, addr open, addr filename, addr param, 0, SW_SHOW
invoke ExitProcess,0
end start
Помогите плиз…
|
|
|
RE: ShellExecute - параметр. - 2009-03-11 16:51:21.750000
|
|
|
=Мaster_Riv=
Сообщений: 9
Оценки: 0
Присоединился: 2009-03-05 18:22:28.716666
|
а что ты хоч откомпилировать а?
|
|
|
RE: ShellExecute - параметр. - 2009-03-11 17:07:28.883333
|
|
|
Kerny
Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
|
quote:
ORIGINAL: =Мaster_Riv= а что ты хоч откомпилировать а? НЕТ! cmd должен запустится с параметром mkdir 77777, тоесть создать папку с именем 77777, а он запускается без параметров!!!
|
|
|
RE: ShellExecute - параметр. - 2009-03-11 17:10:26.970000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
Тогда создай файл bat или cmd с таким содержимым и запусти его через то-же ShellExecute
|
|
|
RE: ShellExecute - параметр. - 2009-03-11 18:25:14.220000
|
|
|
Kerny
Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
|
quote:
ORIGINAL: Flint_ta Тогда создай файл bat или cmd с таким содержимым и запусти его через то-же ShellExecute так и делаю, но как мне .386
.model flat,stdcall
option casemap:none
includelib C:\masm32\lib\kernel32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\windows.inc
.data
fname BYTE "file1.bat",0
fh DWORD ?
cW DWORD ?
nB BYTE "строка1",0
nB2 byte "строка2",0
nB3 byte "строка3",0
nB4 byte "строка4",0
enter byte 00ah,0 ; перевод каретки
.code
start:
invoke CreateFile, addr fname, GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0
mov fh,eax
invoke WriteFile,fh,addr nB,7, addr cW,NULL ;записываем первую строку
invoke WriteFile,fh,addr enter,1, addr cW,NULL ;для того чтобы содержимое в файле было на сл. строчке
invoke WriteFile,fh,addr nB2,7, addr cW,NULL ;вторую
invoke WriteFile,fh,addr enter,1, addr cW,NULL ;
invoke WriteFile,fh,addr nB3,7, addr cW,NULL ;третью
invoke WriteFile,fh,addr enter,1, addr cW,NULL ;
invoke WriteFile,fh,addr nB4,7, addr cW,NULL ;четвертую
invoke WriteFile,fh,addr enter,1, addr cW,NULL ;
invoke CloseHandle,fh
push offset fname
CALL WinExec
invoke ExitProcess,0
end start как это организовать иначе, проще, а то так записывать по строкам - не годится, пробывал 1 большой массив, там записывалось в сплошную строку: .386
.model flat,stdcall
option casemap:none
includelib C:\masm32\lib\kernel32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\windows.inc
.data
fname BYTE "file1.bat",0
fh DWORD ?
cW DWORD ?
nB BYTE "строка1 строка2 строка3 строка4",0
.code
start:
invoke CreateFile, addr fname, GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0
mov fh,eax
invoke WriteFile,fh,addr nB,31, addr cW,NULL ;записываем первую строку
invoke CloseHandle,fh
push offset fname
CALL WinExec
invoke ExitProcess,0
end start Как мне сделать по - строкам.
|
|
|
RE: ShellExecute - параметр. - 2009-03-11 18:44:22.810000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
.386
.model flat,stdcall
option casemap:none
includelib C:\masm32\lib\kernel32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\windows.inc
.data
fname BYTE "file1.bat",0
fh DWORD ?
cW DWORD ?
nB BYTE "строка1",0
perenos db 0dh, 0ah
.code
start:
invoke CreateFile, addr fname, GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0
mov fh,eax
invoke WriteFile,fh,addr nB,7, addr cW,NULL ;записываем строку
invoke WriteFile,fh,addr perenos,2, addr cW,NULL ;записываем пернос и возврат каретки
invoke WriteFile,fh,addr nB,7, addr cW,NULL ;записываем строку
invoke CloseHandle,fh
push 0
push offset fname
CALL WinExec
invoke ExitProcess,0
end start
|
|
|
RE: ShellExecute - параметр. - 2009-03-11 19:11:59.823333
|
|
|
Kerny
Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
|
.data
fname BYTE "file1.bat",0
fh DWORD ?
cW DWORD ?
nB BYTE "строка1",0
nB2 byte "строка2",0
nB3 byte "строка3",0
nB4 byte "строка4",0
enter byte 00ah,0 ; перевод каретки
.code
start:
invoke CreateFile, addr fname, GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,0
mov fh,eax
invoke WriteFile,fh,addr nB,7, addr cW,NULL ;записываем первую строку
invoke WriteFile,fh,addr enter,1, addr cW,NULL ;для того чтобы содержимое в файле было на сл. строчке
invoke WriteFile,fh,addr nB2,7, addr cW,NULL ;вторую
invoke WriteFile,fh,addr enter,1, addr cW,NULL ;
invoke WriteFile,fh,addr nB3,7, addr cW,NULL ;третью
invoke WriteFile,fh,addr enter,1, addr cW,NULL ;
invoke WriteFile,fh,addr nB4,7, addr cW,NULL ;четвертую
invoke WriteFile,fh,addr enter,1, addr cW,NULL ; Так ведь у меня также….
|
|
|
RE: ShellExecute - параметр. - 2009-03-12 15:47:13.070000
|
|
|
Kerny
Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
|
.data
open BYTE "open",0
filename BYTE "cmd.exe",0
param BYTE "%/k mkdir 1111",0
.code
start:
invoke ShellExecute, 0, addr open, addr filename, addr param, 0, SW_SHOW
invoke ExitProcess,0
end start Вот сделал!!! Некоторые подробности: http://forum.vingrad.ru/forum/s/8a805fef319545e8ae5188bedf3921b0/topic-197933.html
|
|
|
RE: ShellExecute - параметр. - 2009-03-12 16:41:09.500000
|
|
|
VaZoNeZ
Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
|
А не проще сделать без батника ? .386
.model flat, stdcall
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \MASM32\INCLUDE\gdi32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \MASM32\LIB\gdi32.lib
.data
fff db 'WhatTheFuck',0
.code
START:
invoke CreateDirectory, addr fff, 0
invoke ExitProcess, 0
end START
|
|
|
RE: ShellExecute - параметр. - 2009-03-13 12:22:29.116666
|
|
|
Kerny
Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
|
Во - первых уже все сделано, без батника. Во - вторых создание папки было приведено, как пример, на самом деле важно исполнение любых команд, а не создания директорий.
|
|
|
|
|