Abfrage ob ein Ordner geöffnet wurde
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Abfrage ob ein Ordner geöffnet wurde
Suchst Du nicht eher sowas: ReadDirectoryChanges?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Abfrage ob ein Ordner geöffnet wurde
@ts-soft
Funktioniert es überhaupt damit, wenn man im Windows Explorer nur einen Ordner öffnet, ohne Änderungen (Erstellung, Änderung/Speicherung, Umbenennung und Entfernung einer Datei oder eines Ordners) vorgenommen zu haben?
Er will ja eigentlich nur wissen, ob ein Ordner(fenster) geöffnet wurde:
Funktioniert es überhaupt damit, wenn man im Windows Explorer nur einen Ordner öffnet, ohne Änderungen (Erstellung, Änderung/Speicherung, Umbenennung und Entfernung einer Datei oder eines Ordners) vorgenommen zu haben?
Er will ja eigentlich nur wissen, ob ein Ordner(fenster) geöffnet wurde:
Ansonsten mal abwarten, was er sagt. Vielleicht meint er doch was Anderes.TheNewOne hat geschrieben:Ist es möglich, dass man die Abfrage die ganze Zeit aktualisiert, so dass der name des Fensters angezeigt wird, sobald es geöffnet wird?
Re: Abfrage ob ein Ordner geöffnet wurde
Danke, aber nein. Mit dem Code kann man ja nicht sehen ob ein Ordner nur geöffnet wurde.ts-soft hat geschrieben:Suchst Du nicht eher sowas: ReadDirectoryChanges?
Win7, 64bit, PB 4.60
Re: Abfrage ob ein Ordner geöffnet wurde
@TheNewOne
Hast du es nun hingekriegt?
Wenn nicht:
Wird jetzt alle 500ms aktualisiert und wenn ein neuer Ordner geöffnet wurde, wird es spät. nach 500ms in der Liste angezeigt.
Hast du es nun hingekriegt?
Wenn nicht:
Code: Alles auswählen
EnableExplicit
Define EventID
Structure tFolderWindow
hWnd .i [ $FF ]
sTitle .s [ $FF ]
nEntries .i
nCurrent .i
EndStructure
Define.tFolderWindow *FolderWindow
Define FolderWindows.tFolderWindow
Procedure.i _ExamineFolderProc ( hWnd.i , *FolderWindows.tFolderWindow )
Protected sClassName .s = Space ( $FF )
Protected sWindowName.s
GetClassName_( hWnd , @ sClassName , $FF )
If sClassName = "CabinetWClass"
sWindowName = Space ( $FF )
GetWindowText_( hWnd , @ sWindowName , $FF )
*FolderWindows\hWnd [ *FolderWindows\nEntries ] = hWnd
*FolderWindows\sTitle [ *FolderWindows\nEntries ] = sWindowName
*FolderWindows\nEntries + 1
EndIf
ProcedureReturn #True
EndProcedure
Procedure ExamineFolderWindows ()
Shared FolderWindows.tFolderWindow
FolderWindows\nEntries = 0
FolderWindows\nCurrent = 0
ProcedureReturn EnumWindows_( @ _ExamineFolderProc () , FolderWindows )
EndProcedure
Procedure NextFolderWindow ()
Shared FolderWindows.tFolderWindow
Static Current .tFolderWindow
If FolderWindows\nCurrent => FolderWindows\nEntries
ProcedureReturn #Null
EndIf
Current\hWnd = FolderWindows\hWnd [ FolderWindows\nCurrent ]
Current\sTitle = FolderWindows\sTitle [ FolderWindows\nCurrent ]
FolderWindows\nCurrent + 1
ProcedureReturn Current
EndProcedure
Procedure GetExplorerFolderList()
Protected.tFolderWindow *FolderWindow
ClearGadgetItems(1)
If ExamineFolderWindows()
Repeat
*FolderWindow = NextFolderWindow()
If *FolderWindow
AddGadgetItem(1,-1,*FolderWindow\sTitle+Chr(10)+Str(*FolderWindow\hWnd),0,0)
EndIf
Until Not *FolderWindow
EndIf
Debug "Aktualisiert."
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ListIconGadget(1,10,10,480,380,"Titel",200,0)
AddGadgetColumn(1,1,"Handle",200)
AddWindowTimer(0, 123, 500)
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_Timer And EventTimer() = 123
GetExplorerFolderList()
EndIf
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Re: Abfrage ob ein Ordner geöffnet wurde
Vielen Dank RSBasic.
Ich habe schon probiert, aber es nicht richtig hinbekommen, in deiner Lösung habe ich dann gesehen dass ich auf dem richtigen Weg war.
Ich habe schon probiert, aber es nicht richtig hinbekommen, in deiner Lösung habe ich dann gesehen dass ich auf dem richtigen Weg war.

Win7, 64bit, PB 4.60
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Abfrage ob ein Ordner geöffnet wurde
Deswegen ja meine Nachfrage. Es wurde ja nicht gesagt, wofür das ganze nötig ist und eine ÜberwachungRSBasic hat geschrieben:Ansonsten mal abwarten, was er sagt. Vielleicht meint er doch was Anderes.
auf Änderungen macht viel öfter Sinn (z.B. MediaPlayer MusikDB aktualsieren usw.)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
