Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Naziv aktivnog programa? VB.NET

[es] :: .NET :: .NET Desktop razvoj :: Naziv aktivnog programa? VB.NET

[ Pregleda: 4104 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Solution
Vladimir Stankovic
Solution software
Leskovac

Član broj: 46426
Poruke: 85
*.info-net.co.yu.

Sajt: www.zaljubise.net


Profil

icon Naziv aktivnog programa? VB.NET06.03.2005. u 01:29 - pre 232 meseci
Kako da dobije naziv aktivnog programa ako se program startuje u System Tray?
www.zaljubise.net - najbolji sajt za upoznavanje
 
Odgovor na temu

Steki_73
Predrag Stefanovic
Zemun

Član broj: 39918
Poruke: 10
*.sbb.co.yu.

ICQ: 226


Profil

icon Re: Naziv aktivnog programa? VB.NET06.03.2005. u 08:34 - pre 232 meseci
Treba postavljati karatka pitanja, ali ne bas toliko kratka. Da li hoces svojim programom pisanim u .NET-u, da proveris da li je startovan neki drugi - koji se startuje u SysTray-u? Ili....
potpis...necitak
 
Odgovor na temu

Solution
Vladimir Stankovic
Solution software
Leskovac

Član broj: 46426
Poruke: 85
*.ptt.yu.

Sajt: www.zaljubise.net


Profil

icon Re: Naziv aktivnog programa? VB.NET06.03.2005. u 23:26 - pre 232 meseci
Izvinjavam se na suvise kratno postavljenom pitanju. Sada cu lepo obrazloziti problem.

Moj program se startuje u System Tray i kao takav on se izvrsava u pozadini. A meni je potrebna naziv aktivnog programa. Npr. ako neko startuje Winamp i trenutno ga koristi (aktivan je) da dobije naziv tog programa.
Znam kako mogu da dobijem listu aktivnih procesa ali me interesuje kako mogu dobiti trenutno aktivan procec (odnosno naziv te aplikacije).

Nadam se da sam sada bio jasniji!
www.zaljubise.net - najbolji sajt za upoznavanje
 
Odgovor na temu

NeznamTkoSam

Član broj: 39660
Poruke: 279
*.cmu.carnet.hr.



Profil

icon Re: Naziv aktivnog programa? VB.NET07.03.2005. u 18:15 - pre 232 meseci
Pa klasa Process ima svojstvo ProcessName!
Evo programa koji ispisuje imena svih trenutnih procesa:
Code:
using System;
using System.Diagnostics;
using System.Windows.Forms

class Procesi {
  public static void Main() {
    foreach (Process p in GetProcesses()) {
      MessageBox.Show(p.ProcessName);
    }
  }
}
 
Odgovor na temu

Solution
Vladimir Stankovic
Solution software
Leskovac

Član broj: 46426
Poruke: 85
*.info-net.co.yu.

Sajt: www.zaljubise.net


Profil

icon Re: Naziv aktivnog programa? VB.NET07.03.2005. u 20:42 - pre 232 meseci
Da ovo sam i ja znao. Meni je potreban samo naziv jednog procesa, tj. samo aplikacija koja je trenutno aktivna na racunaru. Znaci ako su startovani npr. tri programa: Winamp, Total commander, i moj program i trenutno je aktivan Winamp, da dobijem taj naziv u moj program.
Ovo mi je potrebno jer koristim funkciju SendKey() koja salje tastere bilo kojoj aplikaciji, e sada bilo bi dobro kada bi znao o kojoj je aplikaciji rec.
www.zaljubise.net - najbolji sajt za upoznavanje
 
Odgovor na temu

ambimoustrous

Član broj: 1114
Poruke: 174
*.ptt.yu.



Profil

icon Re: Naziv aktivnog programa? VB.NET07.03.2005. u 21:10 - pre 232 meseci
Čini mi se da nisi bio dovoljno precizan. Tebe zapravo zanima kako da dobiješ pristup procesu čiji prozor trenutno poseduje fokus. A za to ne postoji rešenje u samom Framework-u već moraš da koristiš PInvoke. Pogledaj na http://64.78.52.104/FAQ/WinForms/FAQ_c41c.asp pa pitanje pod brojem 2.2, "How do I get hold of the currently focused Control?".

Da li je ovo pomoglo?
If Microsoft invented plumbing, legions of hackers would smugly discuss the benefits of washing in a stream.
 
Odgovor na temu

ambimoustrous

Član broj: 1114
Poruke: 174
*.ptt.yu.



Profil

icon Re: Naziv aktivnog programa? VB.NET07.03.2005. u 23:35 - pre 232 meseci
Povodom prethodne poruke:
To što sam naveo pouzdano nije rešenje za tvoj problem.

Međutim, mislim da sam pronašao dobar trag, koji vredi slediti:
Poziv API funkcije GetForegroundWindow koji vraća handle do trenutno aktivnog prozora, a taj handle prosleđujemo funkciji GetWindowThreadProcessId i tako dobijamo processID. Taj processID prosleđujemo .NET funkciji Process.GetProcessById i tako dobijamo proces objekat, i očitavanje ProcessName svojstva dolazimo do informacije o nazivu procesa. Taj naziv možemo uporediti sa listom "poželjnih procesa", i ako ima poklapanja, tada možemo da izvršimo nameravanu akciju.
Sad, linkovi:
http://www.pinvoke.net/default.aspx/user32.GetForegroundWindow
http://www.pinvoke.net/default...ser32.GetWindowThreadProcessId
a za dalje valjda ćeš se snaći...

Uzgred, ove funcije sasvim sigurno nisu dostupne iz FCL-a tako da ti ne gine petljanje sa API-jem. A ovo je samo početak, slutim da ima toga još...
If Microsoft invented plumbing, legions of hackers would smugly discuss the benefits of washing in a stream.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Naziv aktivnog programa? VB.NET08.03.2005. u 12:36 - pre 232 meseci
Obavezno javi da li ovo sto ti ambimoustrous savetuje radi. Definitivno to jeste nacin da dodjes to procesa aktivnog prozora, ali neki crv sumnje mi govori da ces imati problema, narocito ako taj kod aktiviras kad user klikne na tvoju ikonicu u tray-u, posto mi se cini da onda fokus predje sa aktivne apllikacije na tvoju .
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Solution
Vladimir Stankovic
Solution software
Leskovac

Član broj: 46426
Poruke: 85
*.ptt.yu.

Sajt: www.zaljubise.net


Profil

icon Re: Naziv aktivnog programa? VB.NET08.03.2005. u 15:39 - pre 232 meseci
Hvala svima na odgovorima problem sam resio na malo drugaciji nacin.

Probao sam sa Process.GetProcessById medjutim ta funkcija uvek vraca ID procesa moje aplikacije.
Zato sam napravio da korisnik najpre bira koji program zeli da aktivira:

Dim myProcesses() As Process
Dim myProcess As Process
Dim str As String = ""

myProcesses = Process.GetProcesses()
For Each myProcess In myProcesses
If myProcess.MainWindowTitle <> "" Then
ComboBox1.Item.Add (myProcess.MainWindowTitle)
End If
Next

A zatim kada korisnik izabera koju aplikaciju zeli da aktivira, pozovem AppActivate funkciju znaci:

AppActivate(ComboBox1.SelectedItem)

i to mi zavrsava posao.

Jos jednom hvala svima na odgovorima!
www.zaljubise.net - najbolji sajt za upoznavanje
 
Odgovor na temu

ambimoustrous

Član broj: 1114
Poruke: 174
*.ptt.yu.



Profil

icon Re: Naziv aktivnog programa? VB.NET08.03.2005. u 16:47 - pre 232 meseci
Citat:
mmix: Obavezno javi da li ovo sto ti ambimoustrous savetuje radi. Definitivno to jeste nacin da dodjes to procesa aktivnog prozora, ali neki crv sumnje mi govori da ces imati problema, narocito ako taj kod aktiviras kad user klikne na tvoju ikonicu u tray-u, posto mi se cini da onda fokus predje sa aktivne apllikacije na tvoju :).


Ovo radi samo ako tvoj program ne preuzima fokus već u pozadini povremeno proverava koji je aktivan prozor i na osnovu toga "donosi odluke". Ja sam recimo na brzinu napravio malu formu u SharpDevelop-u sa Timer kontrolom koja u određenim vremenskim intervalima ispisuje na konzolu podatke o aktivnom prozoru i pripadajućem procesu. Kada moj program (tačnije, moj prozor, tj forma) ima fokus, naravno, podaci se odnose na pripadajući proces, tj onaj od mog programa.

E sad, pravi izazov bi bio iznalaženje načina da pre nego što moja forma preuzme fokus očitam koji je prozor prethodno bio aktivan. Ali za to već treba prilično znanja o tome kako sistem procesuira poruke i postaviti neki hook u sam centar tog mehanizma, što već nije nimalo naivan zadatak...

Sorry, što sam se zaleteo, inače odlično što je Solution pronašao solution. Eh, nisam mogao da odolim igri rečima :)
If Microsoft invented plumbing, legions of hackers would smugly discuss the benefits of washing in a stream.
 
Odgovor na temu

Steki_73
Predrag Stefanovic
Zemun

Član broj: 39918
Poruke: 10
*.nat-pool.bgd.sbb.co.yu.

ICQ: 226


Profil

icon Re: Naziv aktivnog programa? VB.NET13.03.2005. u 13:03 - pre 231 meseci
Mislim da ovaj primer ima slicnosti sa onim sto ti trazis.

http://www.Planet-Source-Code....p?txtCodeId=1607&lngWId=10

Pozdrav!
potpis...necitak
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Naziv aktivnog programa? VB.NET

[ Pregleda: 4104 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.