मेरे पास एक VB.NET एप्लिकेशन है जो एक NotifyIcon का उपयोग करके स्टार्टअप पर छिपा हुआ है।
एक टाइमर है जिसे हर 10 सेकंड में निष्पादित किया जाता है ... टाइमर में:
यदि कोई फ़ाइल मौजूद है तो कुछ भी नहीं किया जाएगा। लेकिन अगर यह मौजूद नहीं है, तो मैं निष्पादित करूंगा:
MySubOrFunction()
यदि एप्लिकेशन छिपा हुआ है तो MySubOrFunction () कोड निष्पादित नहीं किया गया है ... और जैसा कि मैंने आपको ऊपर बताया था "मेरा आवेदन स्टार्टअप पर छिपा हुआ है"
मैंने "पब्लिक सब", "प्राइवेट सब", वही कोशिश की"फ़ंक्शन" के लिए भी ... मैंने भी "साझा फ़ंक्शन" की कोशिश की, लेकिन यह काम नहीं कर सकता क्योंकि मेरे कुछ कोड को किसी अन्य कोड तक पहुंच की आवश्यकता है जो फ़ंक्शन / उप के अंदर नहीं है।
मैंने फॉर्म को खुला रखने की कोशिश की और सब कुछ ठीक हो गया, लेकिन मैं चाहता हूं कि यह छिपा रहे :(
किसी भी सहायता की सराहना की जाएगी!
धन्यवाद! :-)
संपादित करें: उदाहरण यहाँ है (इसे याद करने के लिए खेद है):
Form_Load इवेंट पर:
Timer2.Enabled = True
Timer2.Start()
Timer2 को हर 5 सेकंड में निष्पादित किया जाता है और यहाँ Timer2_Tick है
Timer1.Enabled = True
Timer1.Start()
यहाँ Timer1_Tick है
MySubOrFunction("start")
यहाँ MySubOrFunction है
Private Sub MySubOrFunction(ByVal status As String)
If status = "start" Then
" My Code Here
Return
End If
If status = "stop" Then
Return " stop the function
End If
End Sub
और यहां बताया गया है कि मैं अपना आवेदन कैसे छिपाऊं:
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
NotifyIcon1.Visible = True
NotifyIcon1.Icon = SystemIcons.Application
NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon1.BalloonTipTitle = "AppName"
NotifyIcon1.BalloonTipText = "AppDesc"
NotifyIcon1.ShowBalloonTip(50000)
"Me.Hide()
ShowInTaskbar = False
End If
End Sub
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
Me.Visible = True
"Me.Show()
ShowInTaskbar = True
Me.WindowState = FormWindowState.Normal
NotifyIcon1.Visible = False
End Sub
Protected Overrides Sub SetVisibleCore(ByVal value As Boolean)
If Not Me.IsHandleCreated Then
Me.CreateHandle()
value = False
End If
MyBase.SetVisibleCore(value)
End Sub
यह काम ठीक है जब आवेदन छिपा नहीं है ... और वे सिर्फ उदाहरण थे और पूर्ण कोड नहीं थे!
उत्तर:
जवाब के लिए 2 № 1समस्या यह है कि Form_Load()
आप जिस तरह से फॉर्म को छिपा रहे हैं, इसलिए "निष्पादित नहीं किया गया है" SetVisibleCore
.
टाइमर को इनेबल करें Form_HandleCreated()
और यह काम करना चाहिए।
जवाब के लिए 0 № 2
जिस तरह से मैं फॉर्म को छिपाने के लिए उपयोग कर रहा था वह समस्या थी!
मैंने NotifyIcon को हटा दिया और निम्नलिखित को हटा दिया:
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
NotifyIcon1.Visible = True
NotifyIcon1.Icon = SystemIcons.Application
NotifyIcon1.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon1.BalloonTipTitle = "AppName"
NotifyIcon1.BalloonTipText = "AppDesc"
NotifyIcon1.ShowBalloonTip(50000)
"Me.Hide()
ShowInTaskbar = False
End If
End Sub
Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
Me.Visible = True
"Me.Show()
ShowInTaskbar = True
Me.WindowState = FormWindowState.Normal
NotifyIcon1.Visible = False
End Sub
Protected Overrides Sub SetVisibleCore(ByVal value As Boolean)
If Not Me.IsHandleCreated Then
Me.CreateHandle()
value = False
End If
MyBase.SetVisibleCore(value)
End Sub
और यहां स्टार्टअप पर एप्लिकेशन को छिपाने का नया तरीका है:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
" hide application on startup
Me.Opacity = 0.0
Me.ShowInTaskbar = False
" ---------------------
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Shown
Me.Visible = False
End Sub