Custom virtual drive

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
Mijn uitdaging:

Het maken van een eigen 'drive' die zichtbaar is in windows explorer. De lijst met bestanden en folders moeten worden gevoed met Sharepoint lists, folders en bestanden. Als een gebruiker een bestand opslaat naar die drive moet dit dus naar Sharepoint, zelfde voor lezen.

Ben aan het zoeken naar voorbeelden die een extra 'drive' aanmaken in Windows explorer welke ik kan voeden met informatie.

Op de site van MS kwam ik dit voorbeeld tegen: FILE: Ramdisk.sys sample driver for Windows 2000 (ramdrive)
Op een andere site kwam ik een SDK tegen: http://www.eterlogic.com/Products.VirtualDriveSDK.html

Ik vermoed dat ik een Shell Extension moet schrijven maar ik kan maar moeilijk voorbeelden vinden van Shell Extensions die daadwerkelijk een drive tonen.

Anderen die een idee hebben?

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

Misschien op dezelfde manier als bluetooth-telefoons zichzelf laten zien? Dat is geen echte ramdrive, komt volgens mij onder 'control panel'.

Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
MBV schreef op dinsdag 26 januari 2010 @ 14:24:
Misschien op dezelfde manier als bluetooth-telefoons zichzelf laten zien? Dat is geen echte ramdrive, komt volgens mij onder 'control panel'.
Eigenlijk een beetje zoals digitale camera's ook werken.. je krijgt niet echt een driveletter, maar wel een icoontje van je camera in windows explorer als je op "Deze Computer" klikt. Bij het openen van dat icoontje krijg je dan de mappen en files te zien van die camera.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08

Acties:
  • 0 Henk 'm!

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Bij in ieder geval VirtualDriveSDK kan je niet op file-modus dingen zelf doen: het enige wat je daar moet doen is een blob data beschikbaar maken voor read/write-operaties. Wat je waarschijnlijk zoekt is iets als Dokan, een 'user mode file system for windows', waarbij je zelf de file-operaties moet implementeren.

Acties:
  • 0 Henk 'm!

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Ik dnek dat je grootste kans zit bij het beschikbaar maken van je sharepoint site als webdav bron.
http://www.google.nl/search?q=sharepoint+webdav

Als dat niet by default kan kun je zelf wellicht iets in elkaar zetten met sabredav als sharepoint een api heeft.

Acties:
  • 0 Henk 'm!

  • Xiphalon
  • Registratie: Juni 2001
  • Laatst online: 26-09 17:04
Wat is er mis met de 'explorer-view' die je standaard met sharepoint meekrijgt?

Acties:
  • 0 Henk 'm!

  • tc982
  • Registratie: Oktober 2003
  • Laatst online: 08:54
(jarig!)
maniak schreef op dinsdag 26 januari 2010 @ 14:11:
Mijn uitdaging:

Het maken van een eigen 'drive' die zichtbaar is in windows explorer. De lijst met bestanden en folders moeten worden gevoed met Sharepoint lists, folders en bestanden. Als een gebruiker een bestand opslaat naar die drive moet dit dus naar Sharepoint, zelfde voor lezen.

Ben aan het zoeken naar voorbeelden die een extra 'drive' aanmaken in Windows explorer welke ik kan voeden met informatie.

Op de site van MS kwam ik dit voorbeeld tegen: FILE: Ramdisk.sys sample driver for Windows 2000 (ramdrive)
Op een andere site kwam ik een SDK tegen: http://www.eterlogic.com/Products.VirtualDriveSDK.html

Ik vermoed dat ik een Shell Extension moet schrijven maar ik kan maar moeilijk voorbeelden vinden van Shell Extensions die daadwerkelijk een drive tonen.

Anderen die een idee hebben?
Je kan toch perfect een sharepoint share maken en die in Windows Explorer zichtbaar maken ( net use T: \\companyweb\libraryX ). Daarmee kan je de bestanden openen en bewerken alsof je een network drive hebt.

Computers make very fast, very accurate mistakes.


Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
Joolee schreef op dinsdag 26 januari 2010 @ 16:03:
Ik dnek dat je grootste kans zit bij het beschikbaar maken van je sharepoint site als webdav bron.
http://www.google.nl/search?q=sharepoint+webdav

Als dat niet by default kan kun je zelf wellicht iets in elkaar zetten met sabredav als sharepoint een api heeft.
Probleem is dat de werkstations op XP draaien waarbij webdav met SSL dus niet goed werkt. Probeer maar eens via paint een bestand op te slaan op een mapped webdav drive, dan krijg je een foutmelding dat de locatie niet goed is.

Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
Weet iemand wat voor type drivers/dll's het zijn die een icoontje aanmaken bij ' Deze Computer' waarbij als je ze aanklikt je de bestanden ziet van het apparaat (bv foto's op een camera). Zoekt wat makkelijker bij Google. Volgens mij is het namelijk niet een Shell Extention maar wat anders.. kan het alleen niet vinden.

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Als je het in de Shell ziet, en het is geen drive, dan is het dus een Shell Extension.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
MSalters schreef op woensdag 27 januari 2010 @ 11:26:
Als je het in de Shell ziet, en het is geen drive, dan is het dus een Shell Extension.
Het is inderdaad geen Shell Extension maar een Namespace Extension :)

Google leverde me al de volgende links op:

http://galaxy.sourceforge.net/
http://www.codeproject.com/KB/shell/namespcextguide1.aspx

Ze maken het allemaal niet makkelijk voor je zeg..

Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

Een drive in windows is geen Shell Extension, maar een IFS (Installable File System). De zaken die je nodig hebt voor de ontwikkeling zijn onderdeel van de DDK : http://www.microsoft.com/whdc/DevTools/WDK/default.mspx

Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
igmar schreef op woensdag 27 januari 2010 @ 12:03:
Een drive in windows is geen Shell Extension, maar een IFS (Installable File System). De zaken die je nodig hebt voor de ontwikkeling zijn onderdeel van de DDK : http://www.microsoft.com/whdc/DevTools/WDK/default.mspx
Ik denk ook niet dat ik een drive wil maken. Drive's kunnen namelijk veel meer dan alleen bestanden opslag enzo. Ik denk dat ik moet zijn bij Namespace Extensions waarbij ik dus een 'eigen' stuctuur presenteer aan Explorer.

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
maniak schreef op woensdag 27 januari 2010 @ 11:52:
[...]
Het is inderdaad geen Shell Extension maar een Namespace Extension :)
"Namespace Extensions", heten voluit Shell Namespace Extensions. Dus 't is niet zo'n tegenstelling; Namespace Extensions zijn een subcategorie.

Linkje is verder wel nuttig: het laat zien hoe je Shell Instance Objects kunt maken.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Overigens, als je er mee kunt leven dat er enkel een aan jou applicatie gekoppeld icoontje in de My Computer icoontje komt te staan met een door jou bepaalde actie, dan is een simpele registry hack voldoende. Dan heb je, niet getest maar het ziet er uit de keer dat ik dit deed, hier genoeg aan http://www.pctools.com/guides/registry/detail/73/

[ Voor 6% gewijzigd door PrisonerOfPain op 28-01-2010 11:34 ]


Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
Even een update voor de mensen die het ook een keer willen doen :)

Ik gebruik nu dit als basis voor mijn project. Het verzorgt alle afhandelingen met Explorer enzo zodat ik me daar geen zorgen over hoef te maken. Het mooie aan dat product, naast de prijs van 200 dollar, is dat je zelf met C# (of een andere .NET taal) kan programmeren :)

Door gebruik te maken van de standaard Sharepoint webservices ben ik nu bezig de extension te maken en het gaat goed en redelijk eenvoudig.

Tip: Als je in Vista of Windows 7 een shell extension aan het proberen bent hoef je niet telkens opnieuw de computer op te starten, daar hebben ze bij MS een truukje voor.

Druk op de startknop. Hou je muis ergens onderaan het start menu waar nog ' lege' ruimte is. Hou de shift en ctrl ingedrukt en doe rechtermuisknop. Je krijgt een extra optie "Exit explorer".. hiermeer sluit je Explorer op een normale manier. Met de taskmanager of een eigen explorer kan je explorer.exe weer starten :)

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

http://dokan-dev.net/en/ is wellicht ook interessant.

Rustacean


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
maniak schreef op dinsdag 02 februari 2010 @ 09:53:
Even een update voor de mensen die het ook een keer willen doen :)

Ik gebruik nu dit als basis voor mijn project. Het verzorgt alle afhandelingen met Explorer enzo zodat ik me daar geen zorgen over hoef te maken. Het mooie aan dat product, naast de prijs van 200 dollar, is dat je zelf met C# (of een andere .NET taal) kan programmeren :)
Jammer alleen dat het gebruik van .NET in Shell Extensions door Microsoft expliciet niet ondersteund wordt. Dus ook niet in Namespace Extensions.

De reden is dat je als Shell Extension te gast bent in een process. Je mag daarom .NET niet initialiseren, en de .NET versie dus ook niet kiezen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

Verwijderd

MSalters schreef op dinsdag 02 februari 2010 @ 20:43:
[...]

Jammer alleen dat het gebruik van .NET in Shell Extensions door Microsoft expliciet niet ondersteund wordt. Dus ook niet in Namespace Extensions.

De reden is dat je als Shell Extension te gast bent in een process. Je mag daarom .NET niet initialiseren, en de .NET versie dus ook niet kiezen.
kan wel denk ik toch?
http://www.ssware.com/ezn...eznamespaceextensions.htm

http://msdn.microsoft.com/en-us/magazine/cc188741.aspx

http://www.codeplex.com/namespaceextension

[ Voor 3% gewijzigd door Verwijderd op 03-02-2010 01:25 ]


Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 26-09 13:08

Crazy D

I think we should take a look.

Het _kan_ wel maar je kunt diverse problemen krijgen wanneer andere .Net applicaties (die tegen een andere versie van het framework zijn gebouwd) de shell gebruiken (en naar ik heb begrepen gebeurt dat bv in een filesave-dialog). Hier staat wat over: http://social.msdn.micros...0-42b4-ad94-8e962124043e/

Exact expert nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Crazy D schreef op woensdag 03 februari 2010 @ 09:05:
Het _kan_ wel maar je kunt diverse problemen krijgen wanneer andere .Net applicaties (die tegen een andere versie van het framework zijn gebouwd) de shell gebruiken (en naar ik heb begrepen gebeurt dat bv in een filesave-dialog). Hier staat wat over: http://social.msdn.micros...0-42b4-ad94-8e962124043e/
hmz, uitkijken dus.

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Kijk eens naar de Editor's Update

Die FileSave dialog zal inderdaad ook je virtual drive tonen. Dat wil dus zeggen dat je extensie in alle processen moet kunnen draaien, unmanaged en met willekeurige welke .Net versie.

[ Voor 30% gewijzigd door MSalters op 03-02-2010 14:52 ]

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
Die EZNamespaceExtensions is een C/C++ laag waardoor je wel .NET kan gebruiken zonder dat je Explorer verknalt ;) Ik doe dus ook geen calls of andere vreemde dingen met Explorer maar doe alles via die EZNamespaceExtensions DLL.

Eigenlijk komt het erop neer dat EZNamespaceExtensions de Namespace maakt en ik met mn c# input lever aan de DLL om de Namespace te vullen.

[ Voor 23% gewijzigd door maniak op 04-02-2010 11:08 ]


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Een interface laag helpt niet. De enige manier waarop je .NET kunt gebruiken is met de goede .NET DLL. Die wordt hopelijk geladen in EXPLORER.EXE en alle andere processen die een file save dialog gebruiken. Maar dat kun jij niet simpelweg garanderen - als er al een andere .NET versie geladen is, dan mislukt het laden van jouw .NET DLL, en breekt jouw shell extensie.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 26-09 10:03

MBV

Dus je zou eigenlijk een dunne interface moeten schrijven die via een socket o.i.d. praat met je managed C#, als je perse managed C# wilt gebruiken voor je shell extension?

edit:
Ik bedoelde dit dus ook niet als oplossing die ik zelf zou gebruiken, maar als theoretische mogelijkheid. Eigenlijk laat het wel goed zien waarom je het niet moet willen, toch? :)

[ Voor 35% gewijzigd door MBV op 05-02-2010 12:28 ]


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 00:06

ZaZ

Tweakers abonnee

Je moet gewoon de juiste taal gebruiken. Zoveel overhead creeren in een shell extension is extreem ranzig imho.

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • maniak
  • Registratie: Augustus 2000
  • Laatst online: 21-09 08:52
Mja.. ben bezig met c# omdat ik een proof of concept moet maken. Kans is groot dat het uiteindelijk in c/c++ gemaakt gaat worden.

Tis trouwens wel erg leuk om te doen, zo'n shell extension maken.

[ Voor 21% gewijzigd door maniak op 05-02-2010 13:40 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Beste oplossing zou dus (mogelijk kunnen) zijn:
- Service bouwen met .Net.
- ShellExtension in C(++) / Delphi etc., die weer met de service communiceert.

Dan is het gebeuren/gevaar met .Net versies toch weg?

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Ja, dat is een correcte workaround. Maar wat schiet je ermee op? Je bouwt een RPC interface voor Sharepoint, wat zelf ook al een client-server architectuur heeft. Je Shell Extension zal daarom niet heel veel simpeler zijn dan een Shell Extension die direct met Sharepoint praat.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 26-09 21:37
maniak schreef op dinsdag 02 februari 2010 @ 09:53:
[...]

Tip: Als je in Vista of Windows 7 een shell extension aan het proberen bent hoef je niet telkens opnieuw de computer op te starten, daar hebben ze bij MS een truukje voor.

Druk op de startknop. Hou je muis ergens onderaan het start menu waar nog ' lege' ruimte is. Hou de shift en ctrl ingedrukt en doe rechtermuisknop. Je krijgt een extra optie "Exit explorer".. hiermeer sluit je Explorer op een normale manier. Met de taskmanager of een eigen explorer kan je explorer.exe weer starten :)
Een soortgelijk trucje is er ook voor Windows XP. Druk op Ctrl-Alt-Del, en druk dan op CTRL+Alt+Shift en kies dan met de muis voor Cancel. Dan vindt er een clean shutdown van Explorer plaats. Via de taskmanager kan je dan een nieuwe starten.
Pagina: 1