Abfrage ob ein Ordner geöffnet wurde
Abfrage ob ein Ordner geöffnet wurde
Hallöchen,
ich wollte mal fragen, ob es irgendwie möglich ist, eine Abfrage einzurichten, die reagiert wenn man einen bestimmten Ordner öffnet.
ich wollte mal fragen, ob es irgendwie möglich ist, eine Abfrage einzurichten, die reagiert wenn man einen bestimmten Ordner öffnet.
Win7, 64bit, PB 4.60
Re: Abfrage ob ein Ordner geöffnet wurde
Meinst du, du möchtest wissen, ob ein bestimmter Ordner im Windows Explorer offen ist?
http://www.rsbasic.de/aktualisierung/wi ... %20sind.pb
Das kannst du dann regelmäßig abfragen und wenn ein bestimmter Ordner in der zurückgegebenen Liste vorhanden ist, dann kannst du darauf reagieren.
http://www.rsbasic.de/aktualisierung/wi ... %20sind.pb
Das kannst du dann regelmäßig abfragen und wenn ein bestimmter Ordner in der zurückgegebenen Liste vorhanden ist, dann kannst du darauf reagieren.
Re: Abfrage ob ein Ordner geöffnet wurde
hmm, bei mir zeigt es in dem Fenster das der Code öffnen nichts an.
Win7, 64bit, PB 4.60
Re: Abfrage ob ein Ordner geöffnet wurde
Funktioniert nich mit Win7 64bit
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Re: Abfrage ob ein Ordner geöffnet wurde
Hm, keine Ahnung. Welches OS und welche PB Version?
Ich habe hier unter Win 7 x64 mit PB 5.00 B2 x86 sowie x64 getestet und funktioniert einwandfrei.
Ich habe hier unter Win 7 x64 mit PB 5.00 B2 x86 sowie x64 getestet und funktioniert einwandfrei.
Re: Abfrage ob ein Ordner geöffnet wurde
hmmm, ...
ich habe win7 64bit pb4.60 und bei mir funktioniert es nicht.
Edit: Es funktioniert doch! Ich habe nur beim ersten mal die Ordner geöffnet nachdem ich auf OK gedrückt habe.
ich habe win7 64bit pb4.60 und bei mir funktioniert es nicht.
Edit: Es funktioniert doch! Ich habe nur beim ersten mal die Ordner geöffnet nachdem ich auf OK gedrückt habe.
Win7, 64bit, PB 4.60
Re: Abfrage ob ein Ordner geöffnet wurde
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?
Win7, 64bit, PB 4.60
Re: Abfrage ob ein Ordner geöffnet wurde
Du kannst das doch selber mit einem Timer oder Thread regelmäßig abfragen, wo liegt das Problem?
Re: Abfrage ob ein Ordner geöffnet wurde
Das Problem ist, dass es bei mir nicht funktioniert...
Ich poste mal meinen Code, vielleicht findet ja jemand meinen/meine Fehler.
Ich poste mal meinen Code, vielleicht findet ja jemand meinen/meine Fehler.
Code: Alles auswählen
Global start.i
Global ende.i
Global mindest.i
mindest = 2000
Structure tFolderWindow
hWnd .i [ $FF ]
sTitle .s [ $FF ]
nEntries .i
nCurrent .i
EndStructure
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
If OpenWindow(0, 650, 150, 500, 500, "Offene Fenster")
ListViewGadget(0,2,2,400,500)
Define.tFolderWindow *FolderWindow
again:
ClearGadgetItems(0)
If ExamineFolderWindows()
Repeat
*FolderWindow = NextFolderWindow()
If *FolderWindow
AddGadgetItem(0, -1,*FolderWindow\sTitle+Chr(10)+Str(*FolderWindow\hWnd))
EndIf
Until Not *FolderWindow
EndIf
start = ElapsedMilliseconds()
pos1:
ende = ElapsedMilliseconds()
If ende - start < mindest
Delay(1)
Goto pos1
Else
Goto again
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Win7, 64bit, PB 4.60
Re: Abfrage ob ein Ordner geöffnet wurde
Mir sind zufällig drei Punkte aufgefallen:
1. Bitte keine Gotos verwenden
2. Auch Keine Delays in Events
3. EnableExplicit
Schau mal in der PB-Hilfe unter "AddWindowTimer()". Damit kannst du zeitgesteuert deine Vorgänge durchführen lassen.
1. Bitte keine Gotos verwenden
2. Auch Keine Delays in Events
3. EnableExplicit
Schau mal in der PB-Hilfe unter "AddWindowTimer()". Damit kannst du zeitgesteuert deine Vorgänge durchführen lassen.