miten pystyy lopettamaan tehtävän listasta
Painamalla Lopeta tehtävä -nappia.
Jos haluat tehdä sen ohjelmallisesti niin voisit kertoa kielen. QB:llä et luultavasti voi sitä tehdä ollenkaan, VB:llä onnistunee WinApilla.
vb5cce teen Anti Joke Ohjelmaa jossa on taskmanageri
SendMessagella lähetät valitulle prosessille WM_DESTROY:n.
miten
haku.
esimerkki en saanut mitään hausta irti.
No tästä saan sapiskaa, mutta menkööt: http://reminder.ton.tut.fi >:)
Hakusanalla 'sendmessage' ensimmäinen osuma on tämä threadi, josta löytyy ihan varmasti tarpeeksi esimerkkejä SendMessagen käytöstä, jotta osaat loput itse soveltaa.
no voi kalkuna en muista miten saa sen valitsemaan sen listboxista
Saa valitsemaan minkä?
miten saa sen valitsemaan siitä laaksosen vinkin listboxista jonkun ja senmessagella tappamaan sen.
Pistäs nyt osoite siihen vinkkiin, mitä tarkoitat. Muuten on aika paha antaa neuvoja. ;)
Pelkkä listan nimi palauttaa sen, mikä on valittuna. Eli siis tässä tapauksessa nimi on kai "List1".
Annat vain tolle SendMessagelle parametriksi List1 siihen kohtaan, mihin normaalisti tulis tapettavan prosessin nimi.
saan errorin kun yritän "Compile Error Expected: ="
missä kohdassa? kerro rivin sisältö ja se kohta mikä on maalattu (paina debug)
ei pääse siinä lukee vaan kun runaan "Compile Error Syntax Error"
maalas tän rivin sendMessage(list1, WM_CLOSE, 0, 0&)
Sulut pois, tai Call-avainsana tuon eteen.
voisko joku kirjoittaa mitä tohon tartee jos api niin kaikki mitä tohon pätkään tartee.
mulla tulee errori type mismach ja se keltasella maalaa täman Call SendMessage(List1, WM_CLOSE, 0, 0&) mitä pitäisi tehdä?
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long tätäksä tarkotata
Blaze kirjoitti:
Sulut pois, tai Call-avainsana tuon eteen.
SendMessagen kutsu on aivan oikein mutta...
SendMessage vaatii ohjelman kahvan(whnd), jolle se lähettää viestinsä, eli SendMessage(List1, WM_CLOSE, 0, 0&) aiheuttaa vain virheen (mikä onkin tullut todetuksi).
Lisäsin prosessin lopetus-komennon Laaksosen koodivinkin yhteyteen, johon on viitattu aikaisemmin.
theman kirjoitti:
https://www.ohjelmointiputka.net/koodivinkit/
23537-vb6-päällä-olevat-ohjelmat
Edit: Typo,ypot,poyt...
saaks ton WM_DESTROY koska haluan lopettaa tehtävän siis tuhota tehtävän enkä sulkea sitä (olen tekemässä ohjelmaa jolla voi sulkea vaikeasti suljettavia ohjelmia jotka ei suleudu ihan WM_CLOSE.
Se on yksi ja sama mikä sen vakion nimi minkä kyseiselle prosessille lähetät, kunhan se vain on hexa 10, eli tutummin numero 16 meidän kymmenjärjestelmästä.
Se voi olla vaikka WM_TAMAKOMENTOSAMMUTTAAPIANKOKOTAJUNTASI, kunhan se on määritelty oikein. Voit siis käyttää tuota WM_DESTROY:takin, jos määrittelet sen vakioksi komennolla
Const WM_DESTROY = &H10 '&H tarkoittaa hexaa
Edit: Typo
aina opii uutta
BadSource on kyllä oikeassa siinä, että tuo vakion nimi on todellakin vain määrittelykysymys, mutta tässä tapauksessa WM_DESTROY ja WM_CLOSE viittaavat eri arvoihin. Sopii kokeilla, mikä noista sulkee prosessin kaikkein varmimmin, itse en jaksa.
Private Const WM_DESTROY As Long = &H2 Private Const WM_CLOSE As Long = &H10 Private Const WM_QUIT As Long = &H12
pitääkös tossa muutaa mitään muuta kuin WM_COLSE WM_DESTROY:ksi
WM_DESTROY ilmoittaa vaan ohjelmalle, että sen ikkuna on tuhottu (vaikkei oikeasti olisikaan), ja minun ohjelmani eivät ainakaan lannistu moisesta pikkuseikasta ;). Lähes kaikki ohjelmat sammuvat WM_QUIT -viestillä.
Kuten BadSource jo sanoikin, tuo SendMessage vaatii ikkunan eikä prosessia.
WinAPI sisältää ihanat toiminnot TerminateProcess ja TerminateThread, joilla tuo perjaatteessa hoituisi, mutta prosessiin ei välttämättä saa riittäviä oikeuksia sulkemista varten. Näistä TerminateProcess siis tarvitsee kahvan prosessiin ja TerminateThread kahvan säikeeseen.
Metabolix kirjoitti:
WM_DESTROY ilmoittaa vaan ohjelmalle, että sen ikkuna on tuhottu (vaikkei oikeasti olisikaan), ja minun ohjelmani eivät ainakaan lannistu moisesta pikkuseikasta ;). Lähes kaikki ohjelmat sammuvat WM_QUIT -viestillä.
Aa, hyvä tietää tämäkin. Olisihan tuo varmaan SDK:ta lukemalla selvinnyt, mutta laiska kun olen :)
WM_CLOSE:lla, WM_DESTROY:lla ja WM_QUIT:lla on eroja jotka menevät jotenkin seuraavasti...
Edit: Tyop
Eikö kukaan ole koskaan tehnyt C/C++:lla ohjelmaa?!?
Jos minä käsken ohjelmani olla reagoimatta noihin, se ei reagoi niihin. Tästä saa halutessaan ladata ohjelman, joka pitää tehtävienhallinnalla sulkea.
miten sen saa suleutumaan ei mee kiini taskmanagerrillä
Taskmanager avaa ennen pitkää sen ikkunan, jossa lukee suunnilleen että "Ohjelma '...' ei vastaa järjestelmän pyyntöihin" ja jossa on Lopeta heti -nappula.
Aihe on jo aika vanha, joten et voi enää vastata siihen.