C#nedir?com Homepage
Forum Home Forum Home > C# / .NET > Visual C#
  New Posts New Posts RSS Feed - sistem tray
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

sistem tray

 Post Reply Post Reply
   

Author
Message
jackal View Drop Down
Newbie
Newbie


Joined: 20 Mayıs 2004
Location: Türkiye
Status: Offline
Points: 6
Post Options Post Options   Thanks (0) Thanks(0)   Quote jackal Quote  Post ReplyReply Direct Link To This Post Topic: sistem tray
    Posted: 26 Mayıs 2004 at 08:43
İyi günler ben sistem trayde çalışan bir program yaptım ancak bu esnada arka planda neler oluyor bilmiyorum.Bununla ilgili olarak yardıma ihtiyacım var.İlginiz için teşekkür ederim iyi günler...
Carlos
Back to Top
soulofblack View Drop Down
Moderator Group
Moderator Group


Joined: 21 Nisan 2004
Location: Türkiye
Status: Offline
Points: 153
Post Options Post Options   Thanks (0) Thanks(0)   Quote soulofblack Quote  Post ReplyReply Direct Link To This Post Posted: 26 Mayıs 2004 at 15:25
yardım ederim de nasıl yardım edebilirim onu anlayamadım.
merak ettiğin nedir? arka planda neler oluyordaki kastın nedir?
ne kadar açıklayıcı olursan o kadar fazla ve doğru yardım alabilirsin...

Hipokrat derki; İki şeyi alışkanlık edinin: yardım etmek ya da en azından zarar vermemek.

.:The Tao Of Programming:.


Back to Top
jackal View Drop Down
Newbie
Newbie


Joined: 20 Mayıs 2004
Location: Türkiye
Status: Offline
Points: 6
Post Options Post Options   Thanks (0) Thanks(0)   Quote jackal Quote  Post ReplyReply Direct Link To This Post Posted: 28 Mayıs 2004 at 11:03

Öncelikle teşekkür etmek istiyorum ilginiz için.Ben programda bir notify icon tanımladım ve bu icona iki adet event handler ekledim.Programı çalıştırdığımda çalışıyor.Yalnız merak ettiğim nokta şu.Programın devamlı çalışmasını sağlayan şey yani işlemcinin ona herzaman öncelik tanımasının nedeni nedir.

Ayrıca birşey daha sormak istiyorum.Bu uygulamanın başlagıca yerleşmesini istiyorum.Bu çalıştırıldığında veya kurulum sırasınada olabilir.Yani ben bilgisayarı reboot ettiğimde işletim sisteminin açılması ile birlikte çalışmaya başlasın.Bunu nasıl yapabilirim.

  

Carlos
Back to Top
emmett View Drop Down
Senior Member
Senior Member


Joined: 18 Mayıs 2004
Location: Türkiye
Status: Offline
Points: 290
Post Options Post Options   Thanks (0) Thanks(0)   Quote emmett Quote  Post ReplyReply Direct Link To This Post Posted: 28 Mayıs 2004 at 12:11

Yaptığın programın başlangıçta gözükmesini istiyosan, programın exe sinin kısayolunu başlangıç klasörüne atmalısın.

tabii bu işlemi eğer bi setup programıyla falan yapacaksan

Environment.GetFolderPath(Environment.SpecialFolder.Startup)  kodu sana başlangıç klasörünün path'ini verir. bu path'a programının exe sinin kısayolunu oluşturup kopyalaman lazım . aşağıdaki kod ile yapabilirsin:

WshShell objShell = new WshShellClass() ;

WshShortcut objShortcut = (WshShortcut)objShell.CreateShortcut(shortcutPath) ;

objShortcut.TargetPath = targetPath ;

objShortcut.Save() ;

Tabii bu kodları yazabilmen için Interop.IWshRuntimeLibrary.dll 'ye referans vermen gerekir. Bunu da com nesneleri arasında Windows Script Host Object Model olarak bulabilirsin.

kolay gelsin...

M Emre Onur
Dr Emmett L. Brown
Back to Top
albatros415 View Drop Down
Groupie
Groupie


Joined: 05 Ağustos 2003
Location: Türkiye
Status: Offline
Points: 219
Post Options Post Options   Thanks (0) Thanks(0)   Quote albatros415 Quote  Post ReplyReply Direct Link To This Post Posted: 29 Mayıs 2004 at 00:20

sen sunumu soruyorsun "systray attıgın program nasıl arka planda calısıyor".
eger sorun buysa sen systray attıgında zaten programı kapatmıs olmuyorsun visible ozelligini false yapmıs gibi birsey yapmıs oluyorsun program yine calısıyor ama gözükmüyor.

eger sorun isletim sistemleri programları nasıl calistiriyor gibi bir seyse onuda acıklamaya calısırım.

Back to Top
erkal View Drop Down
Senior Member
Senior Member


Joined: 23 Ocak 2004
Location: Türkiye
Status: Offline
Points: 392
Post Options Post Options   Thanks (0) Thanks(0)   Quote erkal Quote  Post ReplyReply Direct Link To This Post Posted: 09 Haziran 2004 at 18:16

reboot sırasında çalışmasını kısayol oluşturmadan ve dll kullanmadan yapabilmenin bir yolu da, registry'ye yazmaktır. bunu da c# ile yapabildiğin gibi bence daha basit bir yol olan, notepad'de reg uzantılı bir dosyaya aşağıdakileri kaydedip kapattıktan sonra çift tıklayarak da yapabilirsin.

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"uygulama_adi"="C:\Program Files\klasör\program.exe"

en iyi programcı, uyumayan programcıdır...
Back to Top
jackal View Drop Down
Newbie
Newbie


Joined: 20 Mayıs 2004
Location: Türkiye
Status: Offline
Points: 6
Post Options Post Options   Thanks (0) Thanks(0)   Quote jackal Quote  Post ReplyReply Direct Link To This Post Posted: 10 Haziran 2004 at 18:03
teşekkür ederim.Şu anda finallerim olduğu için önerilerinizi deneyemedim.Bu hafta sonu uğraşıcam.İlgilenen herkese tekrar teşekkürler...:)
Carlos
Back to Top
mapetek View Drop Down
Newbie
Newbie


Joined: 02 Mart 2005
Location: Türkiye
Status: Offline
Points: 8
Post Options Post Options   Thanks (0) Thanks(0)   Quote mapetek Quote  Post ReplyReply Direct Link To This Post Posted: 15 Mart 2005 at 18:36

Hepinize kolay gelsin arkadaşlar, System tray ile ilgili bir sorunum. Programıma notify icon ekledim ayrıca programımın sadece system tray'de görünmesini sağlıyorum yani formumu visible yaptırıyorum ama sonra tekrar geri getiremiyorum? context menu aracılığıyla Formumu tekrar visible yapıyorum fakat şöyle bir hata veriyor...

Yardımcı olursanız sevinirim...

 

LeTReSeT TeaM
Back to Top
Boot View Drop Down
Moderator Group
Moderator Group


Joined: 17 Ağustos 2004
Status: Offline
Points: 1585
Post Options Post Options   Thanks (0) Thanks(0)   Quote Boot Quote  Post ReplyReply Direct Link To This Post Posted: 17 Mart 2005 at 01:30

Oncelikle acilista calismasi icin en iyi oneri erkaldan gelmis .. Yani CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run a Value ekleyerek yapmak en iyi yontemdir. Buna benzer bir diger yolda

C:\Documents and Settings\[Kullanici]\Start Menu\Programlar\Başlangıç klasorune kisayol koymak ki bunuda emmet solemis. bunun kotu yolu kisayol olusturmaktir ki emmet de yazmis zaten kodu . Kisayol olusturmak giciktir cunku shell de yani windows un kabugunda yapilabilecek bir islemdir. Bunun yerine sole bir seyde mantikli olabilir onceden hazirlanmis bir shortcut i o adrese kopyalamak... Ama tabii demin de dedigim gibi en iyi yol erkalinda soledigi Registry ye value ekleme ...

Simdi arka plan mevzusuna gelince...

Aslinda diger arkadaslarinda soledigi gibi Tay a gectiignde sadece Visibe = false; olmus olur. Yani onun haricinde application icin degisen bir sey yoktur..

Appliation calisma mantigi Windows da message looop sekllindedir.
Windows application larinda islemelri windows mesage gondererek yapar. Bir application Applicaton.Run diyerek bir message loop baslatir ve bu message loop o application thread i calistigi surece calisir. Bu loop da message lar ilgili kontrol ve form lar arasinda gider ... Bu nedenle sen bir application i Visible = false etsen de formunu (bu main form da olabilir) degisen bir sey olmaz. Message loop halen islemlere devam eder ... Bu nedenle arka planda olmasi yada olmamasi pek bir seyi degistirmez. Arka planda calismasinda degisen sudur ki Application hic bir Mouse ve Key eventine dair message i almaz.

Back to Top
 Post Reply Post Reply
  Share Topic   
   


Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.