uruchomienie programu zewnętrznego z dwoma parametrami C#

0

Witam. Dopiero co zaczynam przygodę z programowaniem i mam pewien problem. Tzn. Chcę napisać aplikację w którym po wciśnięciu buttonu uruchomi mi się program zewnętrzny w którym po uruchomieniu należy podać login i hasło. Małymi kroczkami doszedłem do tego, że uruchamia mi się program zewnętrzny ale nie wiem jak ogarnąć te parametry żeby automatycznie się logowało. Jest ktoś w stanie pomóc?

0

Program który chcesz włączyć to jest aplikacja okienkowa czy konsolowa? w jaki sposób musisz to podać te parametry? Tego troszkę brakuje w temacie.
Jeśli konsola - to musisz pokombinować z RedirectStandardInput obiektu klasy Processinfo, jeśli jest to aplikacja okienkowa to masz gorzej - w zależności od technologii tego GUI musisz zdobyć uchwyty do pól i przycisków i je użyć.

0

Aplikacja jest okienkowa (VNC Viver- zdalny pulpit). Wygląda to tak, że mam podłączonych kilka komputerów w sieci i po wpisaniu nazwy komputera i hasła otwiera mi się pulpit z innej maszyny. Chciałem napisać aplikację gdzie do każdego komputera będzie przypisany jeden button i po jego wciśnięciu odpala się VNC i loguje mnie automatycznie na inny komputer. Zmienia się tylko nazwa kompów hasło jest takie samo dla wszystkich. Miałem to napisane jako plik bat. i wszystko działało ale postanowiłem zrobić to na aplikacji okienkowej Windows Forms.

0
Wojtasp1407 napisał(a):

Aplikacja jest okienkowa (VNC Viver- zdalny pulpit). Wygląda to tak, że mam podłączonych kilka komputerów w sieci i po wpisaniu nazwy komputera i hasła otwiera mi się pulpit z innej maszyny. Chciałem napisać aplikację gdzie do każdego komputera będzie przypisany jeden button i po jego wciśnięciu odpala się VNC i loguje mnie automatycznie na inny komputer. Zmienia się tylko nazwa kompów hasło jest takie samo dla wszystkich. Miałem to napisane jako plik bat. i wszystko działało ale postanowiłem zrobić to na aplikacji okienkowej Windows Forms.

Jeżeli masz jeszcze te batki, to możesz je wykorzystać i:

a) odpalać .bat file przyciskiem

b) wykonywać skrypt .batowy

To 1 jest raczej najłatwiejsze i najszybsze w implementacji

https://msdn.microsoft.com/pl-pl/library/53ezey2s(v=vs.110).aspx

https://stackoverflow.com/questions/5519328/executing-batch-file-in-c-sharp

https://social.msdn.microsoft.com/Forums/vstudio/en-US/2a06ec27-91c7-4656-9031-2b66f7ddc80e/how-to-i-execute-a-bat-file-in-a-c-windows-form?forum=csharpgeneral

http://net-informations.com/q/faq/batfile.html

0

Mam te batki ale właśnie chciałbym je pominąć. Bo wcześniej odpalałem skrypt bat. tam wybierałem który komputer ma mi zalogować i to też mi odpalało VNC już zalogowane. Tzn do liter na klawiaturze miałem przypisane nazwy komputerów i jako opcja było podane hasło. Po wciśnięciu np Litery "A" logowało mnie na jeden komputer a "B" czy "C" na inny itd. Jak w programie wykorzystałbym bata to dodałbym tylko jeszcze jeden punkt. Teraz mam BAT--->VNC--->komputer zdalny. A miałbym Appka--->BAT--->VNC--->komputer zdalny.

0

W skrypcie bat jest to banalnie prosto zrobione i myślę że w windows forms jako aplikacja też by się dało bez problemu ale mój level programowania jest bardzo początkujący. To jest moja praktycznie pierwsza aplikacja. Dlatego poprosiłem o wsparcie :)

0

To powiedz jak to jest zrobione w tym skrypcie, to możemy przepisać na C#.

0

@Ktos: No ale jak to ma być zrobione? Jest pewnie wywołanie vnc.exe z parametrami.

@Wojtasp1407 : WeiXioa podał CI linki. Process.Start(). Coś jeszcze nie tak?

0

W skrypcie zrobione jest to tak:

"
@echo off
mode con:cols=115 lines=30

color e
set choice=

SET ST1= nazwa komputera
SET ST2= nazwa komputera
SET ST3= nazwa komputera
SET ST4= nazwa komputera
SET ST5= nazwa komputera
SET ST6= nazwa komputera

set VNC=vnc.exe
set OPT=/password 1234

:start
echo.
echo VNC Runner
echo.
echo.

echo A. ST1
echo.
echo B. ST2
echo.
echo C. ST3
echo.
echo D. ST4
echo.
echo E. ST5
echo.
echo F. ST6
echo.

echo.
echo.
echo (Wielkosc liter ma zanaczenie)
set /p choice=Wybierz litere:

if not '%choice%'=='' set choice=%choice:~0,1%

if '%choice%'=='A' goto ST1
if '%choice%'=='B' goto ST2
if '%choice%'=='C' goto ST3
if '%choice%'=='D' goto ST4
if '%choice%'=='E' goto ST5
if '%choice%'=='F' goto ST6

ECHO "%choice%" nie ma takiej opcji, spróbuj ponownie...
ECHO.
goto start

:ST1
start %vnc% %ST1% %OPT%
cls
goto start

:ST2
start %vnc% %ST2% %OPT%
cls
goto start

:ST3
start %vnc% %ST3% %OPT%
cls
goto start

:ST4
start %vnc% %ST4% %OPT%
cls
goto start

:ST5
start %vnc% %ST5% %OPT%
cls
goto start

:ST6
start %vnc% %ST6% %OPT%
cls
goto start

:end

0

coś typu

private void executeCMDQuery(string query)
{
    Process process = new Process();
    process.StartInfo.FileName = "cmd.exe";
    process.StartInfo.Arguments = $"/c {query}";
    process.Start();
}

private void runVNC_At(string pcName, string password="/password 1234")
{
    string fileName = "vnc.exe";
    executeCMDQuery($"start {fileName} {pcName} {password}");
}

private void button1_Click(object sender, EventArgs e)
{
    runVNC_At("test1");
}

private void button2_Click(object sender, EventArgs e)
{
    runVNC_At("test2");
}

(...)
0

Ogólnie działa mi w 75% na takim kodzie:

private void button1_Click(object sender, EventArgs e)
{
Process uruchomienie = new Process();
uruchomienie.StartInfo.FileName = @"C:\Users\wojtas\Desktop\vncviewer.exe";
uruchomienie.StartInfo.Arguments = @"nazwa_komputera";
uruchomienie.Start();
}
Otwiera mi to VNC i wpisuje nazwę komputera, potem pojawia się kolejne okienko żeby wpsać hasło: 1234. No i tego już nie robi. Co trzeba było by dopisać jeszcz do tego co mam ( drugi parametr) żeby to zadziałało?

1 użytkowników online, w tym zalogowanych: 0, gości: 1