Eiköhän otsikko kerro kaiken. Mulla on konsoliohjelma joka starttaa toisen ohjelman, jää odottamaan taustalle kun ajettava softa lopettaa, sitten tekee tiedostokopioinnin ja quittaa. Muuten toimii nyt ihan ok mutta enää jää häiritsemään se konsoli-ikkuna siihen roikkumaan, saattaa olla että menee aina tuntejakin että se ajettava ohjelma pysyy päällä joten kaikki ylimääräset akkunat poies työpöydältä ja tehtäväpalkista olisi enemmän kuin mukavaa.
Yritin vähän etsiskellä täältäkin ratkaisua, ainut mikä vähän näytti olevan asiaa oli jotain prosessin rekisteröimistä palveluksi mutta siitä tulleet esimerkit oli vähän sekavia.
E: ja typo näemmä otsikossakin :( Älkää nälvikö liiaksi.
En löytänyt VB.Netistä sellaista ominaisuutta, mutta WinAPIn avulla se onnistuum ja sitä voi toki periaatteessa käyttää (vaikkei se hyväksi olekaan). Kaksi tapaa, joista yksi on lyhyt ja toinen hieman pidempi. Ensimmäinen ainakin todistettavasti C++:lla toimii varsin hyvin, mutta laitetaan nyt varmuuden vuoksi kummatkin. Toista en ole lainkaan testannut, mutta kai sekin teoriassa toimii. Googlella nämä ajatukset löytyivät.
Declare Function FreeConsole Lib "kernel32" () As Integer ' Ja sitä sitten kutsut.
Public Declare Function GetConsoleTitle Lib "kernel32" Alias "GetConsoleTitleA" (ByVal lpConsoleTitle As String, ByVal nSize As Integer) As Integer Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer ' ... Dim strTitle As String Dim rtnLen As Integer Dim hwnd As Int32 strTitle = Space(256) rtnLen = GetConsoleTitle(strTitle, 256) If rtnLen > 0 Then strTitle = Left$(strTitle, rtnLen) End If hwnd = FindWindow(vbNullString, strTitle) ShowWindow(hwnd, 0) ' Tämän ikkunan saa vielä tarvittaessa takaisinkin, varmaan 1 tuohon 0:n paikalle.
Tosiaan ensimmäinen toimii, kiitos kovin!
Aihe on jo aika vanha, joten et voi enää vastata siihen.