Подскажите с параметрами старта программы.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Подскажите с параметрами старта программы.

Сообщение artist7 » 03.11.2005 (Чт) 18:51

Есть .exe , сказали мне тут, что можно этот .exe. с разнами параметрами стартовать (допустим, Из планировщика заданий). Естественно, эти параметры надо в самой программе указать. Если кто знает, подскажите, в каком направлении искать. А то шуршу по своим книгам ... и пока безуспешно. На форуме тоже не нашел

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

Сообщение GSerg » 03.11.2005 (Чт) 19:21

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

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.11.2005 (Чт) 20:22

Имеются в виду параметры командной строки?

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 04.11.2005 (Пт) 11:26

Напимер:
Есть программа (Приветствие.exe) в ней привязка к таблице Access. Таблица выглядит так:

1 Привет сначала
2 Чао в конце
3 Пока никогда
(Таблица выглядит конечно сложнее и вней находятся параметры, которые использует программа для дальнейших шагов , например телефонный номер, IP, login, password, и т.д. Я сознательно упростил таблицу для наглядности)

Хочу создать в программе три параметра – 1,2,3 (если такое возможно, во всяком случае, мне сказали, что ДА). Параметр 1 относится к строчке с «Привет» и все что там за ней в таблице находится, Параметр 2 относится к строчке с «Чао» и т.д.

В планировщике заданий устанавливаю время старта этой программы.
В расширенных опциях планировщика есть путь к Приветствие.exe.
Мне сказали, что можно там дописать Приветствие.exe 1
Или «1»
Или еще как
И програма будет (если , конечно, в коде все правильно прописано) выполнять дейсвия только в части данных относящихся к строке со словом «Привет».

Не знаю , понятно ли я описал, во всяком случае старался

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

Сообщение GSerg » 04.11.2005 (Пт) 12:22

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

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 04.11.2005 (Пт) 13:21

Странно, не найду такого в Helpe

А может это из области AddCommandBar-Methode

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

Сообщение GSerg » 04.11.2005 (Пт) 13:21

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

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 04.11.2005 (Пт) 13:21

В 2003.
System.Environment.CommandLine()
Возвращает всю команду запуска включая Путь к файлу.
а там уж оюработай строку

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 04.11.2005 (Пт) 13:33

спасибо Temur,
буду пробовать

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 07.11.2005 (Пн) 16:02

а куска кода нету часом ни у кого?

Что бы понагляднее было.

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 07.11.2005 (Пн) 16:33

Private Sub Form1_Load(ByVal snder As System.Object, ByVal e As As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To Envinronment.GetCommandLineArgs.Length - 1
MsgBox(Envinronment.GetCommandLineArgs(i))
Next i

End Sub
При i = 0 функция вернет путь екзешника
Envinronment.GetCommandLineArgs(i)
Если программа запущенна с аргументами
При i = 1 вернет первый аргумент
При i = 2 второй и так далее
Аргументы разделяются пробелами

Novichok$
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 04.11.2005 (Пт) 16:53

Сообщение Novichok$ » 07.11.2005 (Пн) 17:09

В программе привязка к таблице, в таблице 2 строки с разными текстами для MessageBox

Выглядит так :

------------------
1 | Hallo
---------------------------
2 | By
---------------------------

Private Sub Form1_Load ....

MessageBox.Show (Текст из таблицы)

End Sub

Наример, при старте с параметром –1 долженпоявиться текст «Hallo»,
при старте с параметром 2 – текст «By»


Как прописать теперь эти 2 параметра в коде (имеется в виду 1 и 2).
И главное, смогу ли я потом мой exe –шник сартонуть с любым из этих параметров из Планировщика заданий

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 9:17

Private Sub Form1_Load(ByVal snder As System.Object, ByVal e As As System.EventArgs) Handles MyBase.Load
IF Envinronment.GetCommandLineArgs.Length > 1 Then
If Equals(Envinronment.GetCommandLineArgs(1) , "1") Then
MessageBox.Show (Текст из таблицы 1)
ElseIF Equals(Envinronment.GetCommandLineArgs(1) , "2") Then
MessageBox.Show (Текст из таблицы 2)
Else
MessageBox.Show (Текст из таблицы 3)
EndIf
Else
MessageBox.Show(Программа запущена без параметров!)
End Sub

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 11:15

пробую

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 11:27

А какой Imports надо сделать,
чтобы Envinronment задекларировать ?

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 11:30

System.Envinronment

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 11:32

Извини немного ошибся
System.Environment

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 11:37

Уже пробовал

IF Envinronment.GetCommandLineArgs.Length > 1 Then

Envinronment подчеркнуть синим и говорит "имя Envinronment не задекларировано"

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 11:39

Какой у тебя Net

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 11:40

Visual studio .NET 2003 V.7.1.3088

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 11:46

Тогда должен работать
Поменяй
IF Envinronment.GetCommandLineArgs.Length > 1 Then
на
IF Environment.GetCommandLineArgs.Length > 1 Then

там n лишний

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 11:53

ага так вроде нормально,
еще я после
Код: Выделить всё
Else
MessageBox.Show(Программа запущена без параметров!)

дописал

Код: Выделить всё
End If


если ты не против

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 11:54

Да нет :D
Рад был помочь

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 12:44

Моя exe выглядит так:
WindowsApplication1.exe

Параметр для старта я взял вместо 1, 2, 3 - а, в, с

Куда теперь добавить этот параметр в командной строке
C:\Eigene Dateien\Visual Studio Projects\ParametrSTART\bin\WindowsApplication1.exe

я уже и так и так пробовал?

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 12:59

C:\Eigene Dateien\Visual Studio Projects\ParametrSTART\bin\WindowsApplication1.exe 1
Пишешь через пробел можно и в ковычках
"C:\Eigene Dateien\Visual Studio Projects\ParametrSTART\bin\WindowsApplication1.exe" "1"
Каждый пробел новый параметр
например если строка выглядит так
"C:\Eigene Dateien\Visual Studio Projects\ParametrSTART\bin\WindowsApplication1.exe" "1" "2"
Тогда
Environment.GetCommandLineArgs(1) вернет 1
Envinronment.GetCommandLineArgs(2) вернет 2 и так далее

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 13:09

Код: Выделить всё
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If Environment.GetCommandLineArgs.Length > 1 Then
            If Equals(Environment.GetCommandLineArgs(1), "1") Then
                MessageBox.Show("IlonA")
            ElseIf Equals(Environment.GetCommandLineArgs(2), "2") Then
                MessageBox.Show("IlonB")
            Else
                MessageBox.Show(" ")
            End If
        Else
            MessageBox.Show("Bez parametrov!")
        End If
    End Sub


уж не знаю, что ему надо, не хочет, говрит не находит такого

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 13:13

если без параметров - все находит и выдает
MessageBox.Show("Bez parametrov!")

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 13:14

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If Environment.GetCommandLineArgs.Length > 1 Then
If Equals(Environment.GetCommandLineArgs(1), "1") Then
MessageBox.Show("IlonA")
ElseIf Equals(Environment.GetCommandLineArgs(1), "2") Then
MessageBox.Show("IlonB")
Else
MessageBox.Show(" ")
End If
Else
MessageBox.Show("Bez parametrov!")
End If
End Sub

temur
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.02.2005 (Чт) 21:17
Откуда: Georgia

Сообщение temur » 08.11.2005 (Вт) 13:17

ElseIf Equals(Environment.GetCommandLineArgs(2), "2") Then

Нужно использовать если ты хочешь получить второй параметр
"C:\Eigene Dateien\Visual Studio Projects\ParametrSTART\bin\WindowsApplication1.exe" "1" "2"
Если ты передаешь
"C:\Eigene Dateien\Visual Studio Projects\ParametrSTART\bin\WindowsApplication1.exe" "2"
в том коде который ты выложил тогда выйдет ошибка потомучто в данном случае Environment.GetCommandLineArgs.Length = 2
тоесть последний елемент массива Environment.GetCommandLineArgs(1)

artist7
Новичок
Новичок
 
Сообщения: 48
Зарегистрирован: 19.10.2005 (Ср) 9:53

Сообщение artist7 » 08.11.2005 (Вт) 13:23

Так я тоже пробовал, не выходило

А теперь просто на :
C:\WindowsApplication1.exe "1"

положил и пошло, видать с путем что то накрутил

Спасибо БОЛЬШОЕ за помощь

След.

Вернуться в Visual Basic .NET

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

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

    TopList  
cron