Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja?

  • 8 odgovora
  • 4.878 pregleda

Najnovija ↓

Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 21.05.2004. u 11:34 · pre 273 meseca #1
Kao što može da primi neke parametre, pre izvršavanja, da li VB aplikacija može i da vrati neku poruku na kraju.

Npr. iz nekog programa pozovem neku rutinu "prebaci.exe 1,50" (prebaci sve zapise od broja 1 do 50) i kada ova rutina završi prebacivanj vrati poruku npr. "prebačeno 38 zapisa" ili "ERROR xyz" itd. i na osnovu te poruke prvi program odlučuje šta dalje.
Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 05.06.2004. u 12:25 · pre 272 meseca #2
Odlicno pitanje. VB na zalost nema mogucnosti da koristi STDOUT i STDDIN direktno. Sve sto ostaje je da se koriste Win32 Console Functions pomocu kojih mozes da kreiras konzolu, pises u nju i citas iz nje. Problem pri startovanju vb aplikacije iz konzole je to sto se odmah pri startu VB aplikacija "otkaci" (detach) od konzole i onda je malo nezgodno naci handle konzole iz koje je VB aplikacija pokrenuta.
Potpis
fire, walk with me
Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 05.06.2004. u 13:04 · pre 272 meseca #3
Može, može..
Code:

Option Explicit

Public Sub Main()
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  
  Call FSO.GetStandardStream(1).WriteLine("Neki tekst na konzolu..")
End Sub

E sad, da bi ovo proradilo, potrebno je da još iskoristiš EDITBIN.EXE koji dolazi uz Visual Studio. Dakle, kompajliraj svoju aplikaciju i zatim dobiveni exe (npr. Project1.exe) obradi pomoću:

editbin /subsystem:console project1.exe

i to je to. Pokretanjem programa iz konzole dobiva se lepo očekivani tekst u istoj.

Pozdrav
Potpis
Commercial-Free !!!
Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 05.06.2004. u 16:11 · pre 272 meseca #4
Da, svakako postoji workaround - ovo ne radi "sam VB". Steta sto kod mene ovo ne radi posto mi prilikom pokretanja editbin.exe javlja da nedostaje neka biblioteka mspdb60.dll.

Nego, sta cemo za STDIN? ;) Da li FSO daje moguce resenje i za to?

Inace, verujem da uz malo truda moze da se odradi preko odredjenih Console Functions.
Potpis
fire, walk with me
Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 05.06.2004. u 16:37 · pre 272 meseca #5
Potrebnu biblioteku (imaš je na disku) samo iskopiraj u isti folder gde je i editbin.exe. Što se stdin tiče, dovoljno je da staviš GetStandardStream(0), mada ovo bih morao da proverim - uglavnom mi nije trebalo (a ulazne parametre iz komandne linije, znaš i sam, možeš da čitaš pomoću Command$).
Potpis
Commercial-Free !!!
Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 11.06.2004. u 07:45 · pre 272 meseca #6
Ne, ne, ne...

Za izvrsavanje ovog koda...

Code:

Option Explicit

Public Sub Main()
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  
  Call FSO.GetStandardStream(1).WriteLine("Neki tekst na konzolu..")
End Sub


ti je samo potrebno da dodas odredjenu referencu u program. U ovom slucaju je to Microsoft Scripting Runtime koja se nalazi u COM odeljku (Project -> Add Reference, za .NET i Project->References, za VB6)

Pozdrav

Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 03.09.2004. u 15:28 · pre 269 meseci #7
Code:

Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As Long)


Citat:
Parameters:
· uExitCode
Specifies the exit code for the process, and for all threads that are terminated as a result of this call. Use the GetExitCodeProcess function to retrieve the process’s exit value. Use the GetExitCodeThread function to retrieve a thread’s exit value.


Code:

Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Private Sub Form_Load()
    'end this process
    ExitProcess GetExitCodeProcess(GetCurrentProcess, 0)
End Sub
Potpis
Blue Man Group
Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 05.09.2004. u 18:17 · pre 269 meseci #8
Citat:
kuske:Ne, ne, ne...
Za izvrsavanje ovog koda...
..
ti je samo potrebno da dodas odredjenu referencu u program. U ovom slucaju je to Microsoft Scripting Runtime koja se nalazi u COM odeljku (Project -> Add Reference, za .NET i Project->References, za VB6)


Tek sam sad video ovaj komentar koji nije tačan, kako ne bi bilo zabune.
Potpis
Commercial-Free !!!
Re: Da li VB aplikacija može da vrati neku poruku po završetku izvršavanja? 05.09.2004. u 21:40 · pre 269 meseci #9
Da, ovo je late binding.

Za ovo ne treba referenca na FSO

Code:

  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")


a za ovo bi trebala

Code:

  Dim FSO As Scripting.FileSystemObject
  Set FSO = New Scripting.FileSystemObject


Potpis
Blue Man Group
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme