VB 6.0

Dieses Thema VB 6.0 im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Alexander16, 15. Sep. 2002.

Thema: VB 6.0 So da bin ich wieder mit einer neuen Frage!!! ;D Wie kann ich ein Formular so einstellen damit es beim Ausführen...

  1. So da bin ich wieder mit einer neuen Frage!!! ;D

    Wie kann ich ein Formular so einstellen damit es beim Ausführen immer im Vordergrund bleibt?
    Also wenn ich das Programmstarte und z.B. danach ein Spiel oder so starte, damit es dann immer noch sichtbar ist.

    Vielen Dank an Alle ;D
     
  2. AFAIK geht  das nur ueber die API. Also zum testen mach dir ne form auf die du dann ne checkbox ziehst. dann kopierste den folgenden code einfach mal in das code fenster.
    wenn checkbox angehakt bleibt das fenster on top, wenn nicht angehakt kansste auch andere in den vordergrundholen.
    was du immer brauchst is die API deklaration oben und die konstanten. wenn du das fenster oben haben willst rufst du dann SetWindowPos mit den parametern wie bei If check1.value = vbChecked auf, wenn du es nicht mehr im vordergrund haben willst die parameter wie bei else.

    Code:
    Private Declare Function SetWindowPos Lib user32 (ByVal _
           hwnd As Long, ByVal hWndInsertAfter As Long, ByVal _
           x As Long, ByVal y As Long, ByVal cx As Long, ByVal _
           cy As Long, ByVal wFlags As Long) As Long
     
    Const SWP_NOMOVE = &H2
    Const SWP_NOSIZE = &H1
    Const HWND_ALLWAYSONTOP = -1
    Const HWND_NORMAL = -2
     
    Private Sub Form_Load()
      Check1.Caption = Fenster obenhalten
      Check1.Value = vbChecked
    End Sub
     
     
    Private Sub Check1_Click()
      If Check1.Value = vbChecked Then
          SetWindowPos hwnd, _
          HWND_ALLWAYSONTOP, 0, 0, 0, 0, _
          SWP_NOMOVE + SWP_NOSIZE
      Else
          SetWindowPos hwnd, _
          HWND_NORMAL, 0, 0, 0, 0, _
          SWP_NOMOVE + SWP_NOSIZE
      End If
    End Sub
    
     
  3. hail,

    also das mit dem API stimmt schon, aber so einfach funzt es natürlich nicht.
    SetWindowPos() kann natürlich NUR die Z- Order INNERHALB eines Programms ändern....damit kannst du sowas
    SYSTEMÜBERGREIFENDES nicht programmieren.
    Ich weiss eh nicht, ob es in VB überhaupt zu realisieren ist
    das Ganze ist sehr schwierig und wie ich meine, nur in C/C++ oder Assembly zu programmieren

    mfg
    drulak
     
  4. bei mir funzt das aber sysuebergreifend
     
  5. hi,

    echt ?? du meinst, das Fenster bleibt im Vordergrund, auch wenn du z.B. Word startest ??
    d.h. sämtliche OnPaint- Handler aller anderen Programme ignorieren diesen Bildschirmbereich ??
    ist ne Überraschung für mich, echt !!

    ich hätte das besser überprüft ( *peinlich berührt)
    ich hätte nicht gedacht, dass mit so einer Popel- Funktion wie SetWindowPos sowas zu realisieren ist, sorry

    mfg
    drulak
     
  6. tja, da kannste mal sehen =)
     
  7. Cool es funktioniert :eek: Danke ;D
     
  8. Hallo

    Ich habe mein Notebook erst zwei Wochen. Windows 7 Home Premium 64bit
    Nun habe ich folgendes ärgerliche Problem.
    Wenn ich im Ordner "Eigene Bilder" eine oder mehrere Dateien lösche, gibt es keine Reaktion.
    Aktualisieren hilft nicht.

    Verlasse ich den Ordner und öffne ihn erneut, dann ist die gelöschte Datei weg. Anfangs dachte ich, dass irgendein Programm z.B. Picasa auf den Ordner ständig zugreift und dass das die Ursache wäre.

    Auch wenn ich in die Listenansicht wechsle verschwinden die Dateien nicht unmittelbar - erst beim neuerlichen öffnen es ordners. In allen anderen Ordnern taucht das Problem nicht auf.

    Hat jemand eine Idee, was die Ursache ist?

    Bitte um Infos

    Danke,

    sedem