CreateProcess

Обсуждение проблем, возникающих при разработке программ для мобильных устройств.
A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

CreateProcess

Сообщение A.A.Z. » 13.11.2004 (Сб) 22:22

Народ, помогите программу запустить! Пишу
Код: Выделить всё
Option Explicit

Public Declare Function CreateProcess Lib "coredll.DLL" Alias "CreateProcessW" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As String, ByVal lpStartupInfo As Long, ByVal lpProcessInformation As Long) As Long

Private Sub cmdRun_Click()
Dim ret
ret = CreateProcess("windows\repllog.exe", "/remote", 0, 0, False, 0, 0, vbNullString, 0, 0)
MsgBox ret
End Sub
Все время пишет "0", я запарился уже! Помогите! :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.11.2004 (Вс) 6:25

А кто тебе сказал, что два последних могут быть null? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 14.11.2004 (Вс) 17:30

Дык это ж eMbedded VB! Там UDT не поддерживается :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.11.2004 (Вс) 18:05

Ну и чё мне тебе сказать? :)
Где славная функция узрит параметры запуска процесса? Куда она вернёт handles, которые ты потом должен close? :)
Ну чё, создавай байтовый массив и ручками в нужные позиции заноси значения. А потом... Ну, ты меня понял :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

mad_Max
Бывалый
Бывалый
 
Сообщения: 203
Зарегистрирован: 15.09.2002 (Вс) 21:17
Откуда: Russia, Cherepovets

Сообщение mad_Max » 14.11.2004 (Вс) 22:51

Наковырял на одном сайте такой пример:
Код: Выделить всё
Public Declare Function CreateProcess Lib "coredll" Alias "CreateProcessW" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal lpThreadAttribute As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, ByVal lpStatupInfo As Long, ByVal lpProcessInformation As Long) As Boolean

Private Sub cmdRun_Click()
Dim Retval as Boolean
Retval = CreateProcess("\windows\repllog.exe", "/remote", 0, 0, 0, 0, 0, 0, 0, 0)
End Sub


У самого eVB нет, не проверить. Если не заработает, попробуй еще в своем коде прописать путь к repllog.exe со слэшем вначале.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 25.11.2004 (Чт) 21:15

Пробовал - не пашет :(

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.02.2005 (Пт) 19:06

Вопрос все еще открыт :)
GSerg, помоги с байтовыми массивами? А то уже мозги вскипели :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.02.2005 (Пт) 19:29

Гы, смотри-ка, структура в апивьюере неправильно определена :) Работает только благодаря случайному совпадению 4-байтового выравнивания с искомой формой :)

Ну ладно :)
В общем, берём массив типа long (можно там массивы-то?) в количестве 17 элементов. Это будет типа структура STARTUPINFO, Заполнить разберёшся как :) Потом берём массив того же типа, но из 4 лонгов.
Указатели на начальные элементы этих массивов передаём вместо указателей на структуры... Должно работать :)
Потом не забудть закрыть хэндлы... Которые будут возвращены во втором массиве :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.02.2005 (Пт) 19:36

Типизированные массивы афаик нельзя - можно только строки (могу заблуждаться)
Изображение

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.02.2005 (Пт) 19:51

Крик души, можно, да? А-а-а-а-а-а-а!!!! Как же я ненавижу eVB!!! Там даже GOTO нету!!! Не говоря уже о Split()!!! :evil:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 18.02.2005 (Пт) 19:52

Я быстрее весь VB.NET изучу, чем напишу на eVB "Hello, World"!!! :evil:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.02.2005 (Пт) 20:42

Увы, так оно и есть :-( :-(
Изображение


Вернуться в Visual Basic для мобильных устройств

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList