User Passwort
 Passwort speichern Passwort vergessen?
 
 
 
 Alle Foren
 PDA-Dev :: Windows Mobile
 C#
 Form minimieren und aus Taskmanager entfernen
Autor Vorheriges Thema Thema Nächstes Thema  

~Sammy~

PDA-Interessierter


7 Beiträge

Erstellt am: 03.05.2009 :  23:56:09 Uhr  Profil anzeigen  Autor eine Email senden  Antwort mit Zitat
Hallo Leute,
ich habe eine Anwendung geschrieben, die aus 2 Formularen besteht.
Zu dem Zeitpunkt an dem beide geöffnet sind erscheinen auch beide im Taskmanager.
Wie kann ich es machen, dass nur das Hauptfenster angezeigt wird?
Im moment zeig ich das zweite Fenster so an:
frmOptions.ShowDialog();
Und wie kann ich es über einen Codebefehl lösen das ich die Anwendung minimiere? Also praktisch das X per Code drücke?
Ich will es nicht beenden, sondern nur minimieren.
Bei C# Anwendungen auf dem PC würde es anscheinend so gehen:
this.WindowState = FormWindowState.Minimized;
Minimized ist allerdings auf dem PPC nicht verfügber.
Es gibt nur Maximized und Normal.
Gibt es dazu vielleicht eine passende Windows Message?
Vielen Dank im vorraus.
   

pda-dev

pda-dev

Forum Admin


554 Beiträge

Erstellt  am: 07.05.2009 :  09:18:57 Uhr  Profil anzeigen  Autor eine Email senden  Besuche pda-dev's Homepage  Sende pda-dev eine ICQ Message  Antwort mit Zitat
Hmm ich bin mir nicht sicher, aber soweit ich weiss verschwindet das Formular auch aus dem Taskmanager, wenn man es mit "Hide" versteckt.

Ein Computer wird nie das tun, was du willst - sondern das, was du programmierst!
Zum Anfang der Seite

~Sammy~

PDA-Interessierter


7 Beiträge

Erstellt  am: 07.05.2009 :  19:13:24 Uhr  Profil anzeigen  Autor eine Email senden  Antwort mit Zitat
Mit Hide verschwindet es zwar auch aus dem Taskmanager, aber das hab ich anders gemeint.
Ich benutze SPB Pocket Plus und der zeigt eine Art Mini Taskmanager an wenn ich lang auf das [X] Oben rechts drücke.
Man kann Programme beenden oder zwischen aktiven Programmen switchen.
Das zweite Fenster meines Progs (Optionen-Fenster) soll nicht in dieser Liste, also auch nicht im Taskmanager erscheinen.
Gibt es vielleicht eine möglichkeit darauf zu reagieren wenn mein Programm erneut starten will und dann einfach nur das Show aufzurufen?
Zum Anfang der Seite

pda-dev

pda-dev

Forum Admin


554 Beiträge

Erstellt  am: 08.05.2009 :  09:35:11 Uhr  Profil anzeigen  Autor eine Email senden  Besuche pda-dev's Homepage  Sende pda-dev eine ICQ Message  Antwort mit Zitat
Naja wie du das Form vor Pocket Plus versteckst, kann ich leider auch nicht sagen, da ich dessen Algorithmus nicht kenne. Grundsäzlich gilt natürlich: solange das Formular lebt, kann es auch irgendwie aufgefunden werden.
Ich habe mir mal folgende Hilfsmethoden gebastelt, vielleicht helfen sie dir weiter (ist VB.NET, sorry, aber es gibt ja Übersetzer von VB.NET nach C#)
 
Private Const HWND_TOP = 0
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const HWND_BOTTOM = 1
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOACTIVATE = &H10
<DllImport("CoreDll", EntryPoint:="SetWindowPos")> _
Private Shared Function SetWindowPos(ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer
End Function
<System.Runtime.InteropServices.DllImport("CoreDll")> _
Private Shared Function FindWindow(ByVal className As String, ByVal WindowsName As String) As IntPtr
End Function
'minimiert ein Fenster
'Fenster wird noch in Taskbar angezeigt (?)
Private Shared Function Minimize(ByVal strWindowText As String) As Integer
Dim hwnd As Integer
hwnd = FindWindow(Nothing, strWindowText).ToInt32
If hwnd = 0 Then 'fenster wurde nicht gefunden
Return 0
Else
Return SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 240, 320, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOSIZE Or SWP_NOMOVE)
End If
End Function
''' <summary>
''' Zeigt das Fenster mit der übergebenen Caption an.
''' </summary>
''' <param name="strCaption"></param>
''' <remarks></remarks>
Public Shared Sub ShowWindowOnTop(ByVal strCaption As String)
Dim hwnd As IntPtr
hwnd = FindWindow(Nothing, strCaption)
Dim res As Integer = SetWindowPos(hwnd.ToInt32, HWND_NOTOPMOST, 0, 0, 240, 320, SWP_SHOWWINDOW)
End Sub
 
Wenn du etwas mit den Parametern spielst, kommst du evtl. auf das gewünschte Ergebnis.

Ein Computer wird nie das tun, was du willst - sondern das, was du programmierst!
Zum Anfang der Seite
  Vorheriges Thema Thema Nächstes Thema  
Springe nach:
 
  Bookmark & Share  
 
 
 
  Tags  
   
 

 



pda-dev.de

Quicklinks: Foren-Übersicht | Developer-News | Suche | Impressum

© just-works! Software

Zum Anfang der Seite

Snitz Forums 2000