Wow, sehr fleißig, vielen lieben Dank für deine zahlreichen Beispielcodes
WinAPI Library (Snippets) (1163 Beispielcodes)
Re: WinAPI Library (Snippets) (548)
@neotoma
Wow, sehr fleißig, vielen lieben Dank für deine zahlreichen Beispielcodes
  
			
			
									
									
						Wow, sehr fleißig, vielen lieben Dank für deine zahlreichen Beispielcodes
Re: WinAPI Library (Snippets) (548)
Ist mir zufällig beim Durchstöbern aufgefallen:
Hier verschwindet der Effekt, sobald das Fenster den Fokus verliert:
"OpenWindow -> Dünner Rahmen"
Hier erscheint die Schaltfläche in der Taskleiste, wenn der Fokus erst genommen und dann wieder gegeben wird:
"OpenWindow - Schaltfläche aus der Taskleiste entfernen"
Vielleicht kann jemand helfen.  
			
			
									
									
						Hier verschwindet der Effekt, sobald das Fenster den Fokus verliert:
"OpenWindow -> Dünner Rahmen"
Code: Alles auswählen
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible)
  SetWindowLongPtr_(WindowID(0),#GWL_EXSTYLE,$2000)
  HideWindow(0,0)
  
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf"OpenWindow - Schaltfläche aus der Taskleiste entfernen"
Code: Alles auswählen
EnableExplicit
Procedure HideFromTaskBar(hWnd.l, Flag.l)
  Protected TBL.ITaskbarList
  CoInitialize_(0)
  If CoCreateInstance_(?CLSID_TaskBarList, 0, 1, ?IID_ITaskBarList, @TBL) = #S_OK
    TBL\HrInit()
    If Flag
      TBL\DeleteTab(hWnd)
    Else
      TBL\AddTab(hWnd)
    EndIf
    TBL\Release()
  EndIf
  CoUninitialize_()
 
  DataSection
    CLSID_TaskBarList:
    Data.l $56FDF344
    Data.w $FD6D, $11D0
    Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
    IID_ITaskBarList:
    Data.l $56FDF342
    Data.w $FD6D, $11D0
    Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
  EndDataSection
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  HideFromTaskBar(WindowID(0),1)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf- Falko
 - Admin
 - Beiträge: 3535
 - Registriert: 29.08.2004 11:27
 - Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit), 
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
 
Re: WinAPI Library (Snippets) (548)
Da ich jetzt wieder auf Vsita 32bit umgestiegen bin, habe ich 
die WinAPI Library erneut installiert.
Dabei ist mir folgendes aufgefallen:
Die WinAPI Library kann ich so nicht vom Start ... Programm ausführen.
Was half, im Verzeichnis WinAPI Library eine neue Vernküpfung erzeugen
und diese dann ins Startverzeichnis kopieren. Damit funktioniert sie wieder.
Unten rechts der Button für PureBasic funktioniert wohl nur auf ein festes
Verzeichnis. Denn ich bekomme die Fehlermeldung:
Obwohl der im Programm wohl korrekt ist, sollte die html-Seite auch auf http://www.rsbasic.de zeigen.
Gruß Falko
			
			
									
									
						die WinAPI Library erneut installiert.
Dabei ist mir folgendes aufgefallen:
Die WinAPI Library kann ich so nicht vom Start ... Programm ausführen.
Was half, im Verzeichnis WinAPI Library eine neue Vernküpfung erzeugen
und diese dann ins Startverzeichnis kopieren. Damit funktioniert sie wieder.
Unten rechts der Button für PureBasic funktioniert wohl nur auf ein festes
Verzeichnis. Denn ich bekomme die Fehlermeldung:
Die html-Seite im Programmordner zeigt noch den alten Link zu http://www.rsbasic.i3h.deWinAPI Library hat geschrieben: [Window Title]
C:\Program Files\PureBasic\PureBasic.exe
[Content]
"C:\Program Files\PureBasic\PureBasic.exe" konnte nicht gefunden werden. Stellen Sie sicher, dass Sie den Namen richtig eingegeben haben und wiederholen Sie den Vorgang.
[OK]
Obwohl der im Programm wohl korrekt ist, sollte die html-Seite auch auf http://www.rsbasic.de zeigen.
Gruß Falko
- 
				super_castle
 - Beiträge: 557
 - Registriert: 29.11.2005 15:05
 
Re: WinAPI Library (Snippets) (548)
Ein Dosfenster(DosBox) in einem Purebasicwindows setzen(öffnen) und daneben Buttons .
Wie geht so etwas?
Gruss
			
			
									
									
						Wie geht so etwas?
Gruss
Re: WinAPI Library (Snippets) (548)
DOSBox ist ein DOS-Emulator und wahrscheinlich was ganz anderes, als du meinst.
Willst du die Konsole in ein Fenster verfrachten, könnte das mit SetParent_() gehen.
Im Übrigen.. ich schätze, das ist das falsche Topic zum random-Fragen stellen  
Edit: Oh.. ich hab gerade mal ein wenig gestöbert und geblättert.. was dein Profil angeht.. ich frage mich, wieso ich das hier eigentlich noch extra für dich schreibe
			
			
									
									
						Willst du die Konsole in ein Fenster verfrachten, könnte das mit SetParent_() gehen.
Code: Alles auswählen
OpenConsole()
ConsoleTitle("Blablabla")
OpenWindow(0, 0, 0, 650, 400, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetParent_(FindWindow_(0, "Blablabla"), WindowID(0))
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindowEdit: Oh.. ich hab gerade mal ein wenig gestöbert und geblättert.. was dein Profil angeht.. ich frage mich, wieso ich das hier eigentlich noch extra für dich schreibe
- 
				super_castle
 - Beiträge: 557
 - Registriert: 29.11.2005 15:05
 
Re: WinAPI Library (Snippets) (548)
Jup, danke.
Sieht schon gut aus. Erscheint im Screen, aber es lässt sich kein "Dir" eingeben bzw es hat keine aktivitäten.
Gruss
			
			
									
									
						Sieht schon gut aus. Erscheint im Screen, aber es lässt sich kein "Dir" eingeben bzw es hat keine aktivitäten.
Gruss
Re: WinAPI Library (Snippets) (548)
Cool, habe den Link irgendwie jetzt erst richtig wargenommen.
 
 
Viele kurze einfache Beispiele zu durchaus wichtigen APIs ... danke

			
			
									
									Viele kurze einfache Beispiele zu durchaus wichtigen APIs ... danke

PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
						Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: WinAPI Library (Snippets) (548)
Ein Fenster in den Fullscreen wechseln und zurück.
Quelle: http://www.vbarchiv.net/tipps/tipp_834- ... modus.html
			
			
									
									Quelle: http://www.vbarchiv.net/tipps/tipp_834- ... modus.html
Code: Alles auswählen
#SC_SYSSEPERATOR = $0
;Structure to keep the Infoprmation of a Window for restore them.
Structure sFullscreenWindow
  bytState.i
  tWinRect.RECT
  lWinStyle.i
EndStructure  
  
; For the 'courious' case with more than one Fullscreen-Windows  
Global NewMap _Fullscreen_windows.sFullscreenWindow()
; Window-Fullscreen
;
;
Procedure WindowFullscreen(win_id.i, bState.i, bMenuClose.i = #True)    
  Protected lStyle.i, hMenu
  
  LockWindowUpdate_( GetDesktopWindow_() ) 
  
  If IsWindow(win_id)        
    
    ;Noch nicht in der Vollansicht gewesen.
    If FindMapElement( _Fullscreen_windows(),Str(win_id) ) = 0 And bState = #False
      LockWindowUpdate_( #Null )
      
      ProcedureReturn 
    EndIf          
    
    With _Fullscreen_windows(Str(win_id))
      
      ;Ist bereits vollansicht
      If  \bytState = #True And bState = #True
        LockWindowUpdate_( #Null )
        ProcedureReturn 
      EndIf
      
      ;Vollansicht?
      If bState
        
        \bytState = #True 
        
        ;Gr÷¯e und Position merken
        GetWindowRect_( WindowID(win_id), @\tWinRect )
        
        ;Stil merken
        \lWinStyle = GetWindowLong_(WindowID(win_id), #GWL_STYLE)
   
        ;Titelleiste und (Gr÷¯enõnderungs-)Rahmen entfernen
         lStyle = \lWinStyle & ~(#WS_CAPTION | #WS_THICKFRAME)
         SetWindowLong_(WindowID(win_id), #GWL_STYLE, lStyle)
        
        ExamineDesktops()
        
        ; Fenstergr÷¯e auf Bildschirm-Gr÷¯e setzen
        SetWindowPos_(WindowID(win_id), #HWND_NOTOPMOST, 0, 0, DesktopWidth(0),DesktopHeight(0),#SWP_FRAMECHANGED)
        
        ; Handle des SystemMen³s ermitteln
        hMenu = GetSystemMenu_(WindowID(win_id), #Null)      
 
        ; Eintrõge aus dem SystemMen³ entfernen
        If hMenu 
          ; Wiederherstellen
          DeleteMenu_(hMenu, #SC_RESTORE, #MF_BYCOMMAND)
          ; Verschieben
          DeleteMenu_(hMenu, #SC_MOVE, #MF_BYCOMMAND)
          ; Gr÷¯e õndern
          DeleteMenu_(hMenu, #SC_SIZE, #MF_BYCOMMAND)
          ; Minimieren
          DeleteMenu_(hMenu, #SC_MINIMIZE, #MF_BYCOMMAND)
          ; Maxminieren
          DeleteMenu_(hMenu, #SC_MAXIMIZE, #MF_BYCOMMAND)
          ; Trennlinie
          DeleteMenu_(hMenu, #SC_SYSSEPERATOR, #MF_BYCOMMAND)
          If bMenuClose = #False 
            ; Schlie¯en
            DeleteMenu_(hMenu, #SC_CLOSE, #MF_BYCOMMAND)
          EndIf
        EndIf
      Else
        ; Status auf Normalansicht setzen
        \bytState = #False
                
        ; Fenstergr÷¯e wiederherstellen
        SetWindowPos_( WindowID(win_id), #HWND_NOTOPMOST, \tWinRect\left, \tWinRect\top, \tWinRect\right - \tWinRect\left, \tWinRect\bottom - \tWinRect\top, #SWP_FRAMECHANGED)
 
        ; Fensterstil wiederherstellen
        SetWindowLong_( WindowID(win_id), #GWL_STYLE, \lWinStyle )
 
        ; Systemmen³ wiederherstellen
        GetSystemMenu_( WindowID(win_id), #True)
      EndIf
 
    ; Systemmen³ neu zeichnen
      DrawMenuBar_(WindowID(win_id))
    EndWith
  EndIf
  
  LockWindowUpdate_( #Null )
EndProcedure 
; Vollansicht-Status ermitteln
Procedure WindowFullscreenState(win_id)
  ProcedureReturn  _Fullscreen_windows(Str(win_id))\bytState
EndProcedure   
; Test
Define flag=0
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ButtonGadget(1,10,10,100,20,"FullscreenSwitch",0)
  Repeat
    
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
  Select EventGadget()
    Case 1
      WindowFullscreen(0, 1!WindowFullscreenState(0))
  EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
EndIf
; IDE Options = PureBasic 4.50 (Windows - x86)
; CursorPosition = 108
; FirstLine = 83
; Folding = -
; EnableXP
Alle Rechtschreibfehler unterliegen der GPL und dürfen frei kopiert und modifiziert werden.
						Re: WinAPI Library (Snippets) (548)
Hallo neotoma,
danke für dein Code
			
			
									
									
						danke für dein Code



