Hej!Lista öppna filer som en process/tråd har öppna eller vad tycker du?
Någon som har något förslag på hur jag skulle kunna lösa detta?
Tanken är att mitt program skall hålla reda på i vilken fil som användaren för tillfället jobbar i.
Ett spår som jag jobbat på är att använda user32.dll-funktionerna GetForegroundWindow() för att sedan använda GetWindowText() för att få ut titelraden från det aktiva fönstret. Det går ju jättebra att tolka strängen för att få ut filnamnet i de applikationer som redovisar detta i sin titelrad. Men det fungerar inte alltid, eftersom det inte är säkert att applikationen skriver vilken fil användaren redigerar. En annan nackdel är att det ju kan finnas flera filer med samma namn på olika platser på hårddisken.
Mitt näst alternativ är att på något sätt ta reda på vilken process/tråd som har vilken fil öppen och med hjälp av att koppla det aktiva fönstret till en process/tråd så kan man förhoppningsvis luska ut vilken fil som användaren redigerar. Detta vet jag inte om det är möjligt men det går nog iaf att ta reda på vilken process som har vilken fil öppen eftersom 'openfiles'-kommandot i WinXp klarar av det och det finns en Win2k-variant som heter oh.exe som gör (ungefär)samma sak. Men frågan är om detta räcker eftersom en process (exempelvis WINWORD.EXE) kan ha flera fönster öppna med olika filer i varje. Någon som vet något om hur man skulle kunna lösa problemet på detta sätt?
Ett annat alternativ är ju att anpassa mitt program till att vara mer applikations-specifikt, dvs göra specifika anpassningar till olika typer av applikationer. Exempelvis kan jag ju för att ha stöd för M$ Word använda dess API för att luska ut vilken fil som för tillfället användaren jobbar med. Men detta vill jag helst inte eftersom detta blir allt för tidsödande då jag vill ha stöd för många olika applikationer.
Är det någon som har något förslag på andra lösningar av problemet eller vet hur jag kan lösa det på något av ovan nämnda sätt? Jag jobbar i C# men det spelar ingen roll i vilket språk som lösningan finns. Bara jag kommer på rätt spår så blir jag glad.
// Fredrik von Walden