[C#] Shell informatie*

Pagina: 1
Acties:

  • Elect
  • Registratie: Mei 2000
  • Niet online
Ik ben het idee aan het namaken als de uploader van Imageshack. Het idee is perfect en het lukt voor een groot deel al af.

Ik ben net voor m'n stage begonnen met ASP.NET en C#, ik zal nog wel wat cruciale informatie aan m'n neus voorbij laten gaan hierdoor. Excuses daar al voor ;)
Ik zal er wel wat code bijplaatsen voor toekomstige mensen met hetzelfde probleem zodat ze niet ook uren aan het zoeken zijn. (als ze GoT een beetje kunnen gebruiken..)

Ik heb in m'n registry een gedeelte toegevoegd zodat als ik met de rechtermuisknop op een JPG klik ik een extra entry heb met daar "Upload Online".

Mijn vraag is nu, hoe krijg ik de link (die die snelkoppeling meerstuurd neem ik aan) in m'n ASP.NET programma? Een ander klein vraagje is hoe ik informatie uit mijn programma op het klembord krijg.

[ Voor 15% gewijzigd door Elect op 02-03-2006 15:55 ]

HelmChat.eu - Free Motorcycle Group Chats


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 08-04 21:55
Je klembord heet in het Engels gewoon clipboard. Dus als je daar opzoekt krijg je info over hoe je informatie op het klembord plaatst en uit kan lezen. In .NET is er het object "Clipboard", in de namespace "System.Windows.Forms.Clipboard", op de msdn zijn daar wel artikelen en voorbeelden over te vinden.

Kun je je args niet in je main afvangen en uitlezen? dus static void Main(string[] args) {....}. Ik heb het zelf nog nooit gedaan, maar lijkt mij een logische manier op die manier gegevens op te vragen, in jouw geval een volledig path wat wordt meegeven.

Verwijderd

Elect schreef op donderdag 02 maart 2006 @ 15:55:
Mijn vraag is nu, hoe krijg ik de link (die die snelkoppeling meerstuurd neem ik aan) in m'n ASP.NET programma?
Dat kan gelukkig niet automatisch. (internetbrowser -> webserver (asp.net)
Je moet een tussenapplicatie bouwen die het voor je regelt.

Edit:
De link zou je nog wel via GET-variabelen kunnen doorsturen, maar daar heb je uiteraard niets aan zonder de bijbehorende data.
Elect schreef op donderdag 02 maart 2006 @ 15:55:
Een ander klein vraagje is hoe ik informatie uit mijn programma op het klembord krijg.

[ Voor 12% gewijzigd door Verwijderd op 03-03-2006 00:06 ]


  • Elect
  • Registratie: Mei 2000
  • Niet online
Verwijderd schreef op vrijdag 03 maart 2006 @ 00:05:
[...]
Dat kan gelukkig niet automatisch. (internetbrowser -> webserver (asp.net)
Je moet een tussenapplicatie bouwen die het voor je regelt.

Edit:
De link zou je nog wel via GET-variabelen kunnen doorsturen, maar daar heb je uiteraard niets aan zonder de bijbehorende data.
[...]
Even ter verduidelijking; ik werk aan een windows applicatie, geen website. Want weet niet of je dat ook bedoelde?

HelmChat.eu - Free Motorcycle Group Chats


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

ik neem aan dat het makkelijkst is als je een plugin maakt voor IE/FF/... en daarin een GET-request doorzend in de vorm:
http://www.mijndomein.com...erdomein.com/plaatje.jpg"

en je je webapp dan deze laat downloaden en weergeven.

ASSUME makes an ASS out of U and ME


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Elect schreef op vrijdag 03 maart 2006 @ 08:10:
[...]


Even ter verduidelijking; ik werk aan een windows applicatie, geen website. Want weet niet of je dat ook bedoelde?
Waarom gebruik je dan ASP.NET?

  • ZeroCode
  • Registratie: Februari 2002
  • Laatst online: 04-03 19:41

ZeroCode

Woopie

My thoughts exactly...
Je bouwt een windows applicatie en gebruikt asp.net :)

Clipboard is gewoon uit te lezen zoals hierboven aangegeven...
Wil je de url ook nog terug van imageshack kijk dan eens naar een webbrowser voorbeeld die in de msdn zit :)

  • Elect
  • Registratie: Mei 2000
  • Niet online
HIGHGuY schreef op vrijdag 03 maart 2006 @ 09:30:
ik neem aan dat het makkelijkst is als je een plugin maakt voor IE/FF/... en daarin een GET-request doorzend in de vorm:
http://www.mijndomein.com...erdomein.com/plaatje.jpg"

en je je webapp dan deze laat downloaden en weergeven.
Ik wil het juist andersom, maar dan voor mijn eigen website :)

Ik ben in m'n startpost wat te onduidelijk geweest. Met uploader bedoel ik dit (maar dan niet naar imageshack, naar mijn eigen applicatie die het dan verder afhandeld):

Afbeeldingslocatie: http://reg.imageshack.us/img/quickloadmark.png

Juist die functie krijg ik niet voor elkaar. Ik heb alles in m'n registry staan en ik krijg via de rechtermuisknop bij .jpg 'Uploaden' te zien. Vanaf dat punt moet de applicatie opgestart worden en de link ontvangen en gebruiken.
Ik ben al een hele tijd aan het zoeken hoe ik die (shell?) informatie kan ophalen vanuit mijn applicatie.

Vanwaar ASP.NET? Omdat het aansluit op m'n stageopdracht (intranet site die ik moet bouwen). En ASP.NET ook direct windows applicaties kan maken. Hier probeer ik nu een beetje ervaring in op te doen.
Maar ASP.NET is hier niet een juiste keus voor? Ik dacht juist dat ASP.NET, gezien het .NET framework juist geschikt hiervoor was..

[ Voor 27% gewijzigd door Elect op 03-03-2006 09:48 ]

HelmChat.eu - Free Motorcycle Group Chats


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Bedoel jij niet gewoon Visual Studio .NET?

Wat je zult moeten doen om een upload na te doen is een POST actie fingeren. Dit kun je o.a. doen met XmlHttp.

  • Elect
  • Registratie: Mei 2000
  • Niet online
Ja, ik ben mis. Ik ontwerp hem in Visual Studio .NET maar heb een C# applicatie gekozen. Geen ASP.NET pagina. Ruk. Sorry, verduidelijkt in iedergeval een heleboel.

HelmChat.eu - Free Motorcycle Group Chats


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Begrijp ik goed dat je een website hebt die plaatjes accepteert als upload (wsl. als Post meegestuurd?) en je een C# Winforms applicatie hebt die het uploaden gaat regelen?

Kijk eens naar de class System.Net.HttpWebRequest, hiermee kun je een volledige request naar een website maken. Stel de property Method in op "POST", en stuur het geselecteerde bestand mee in de RequestStream, voorafgegaan van een identifier die het mogelijk maakt om de Post variabele op te halen. Wellicht dat je je webapplicatie op enkele punten moet aanpassen om dit uploaden mogelijk te maken, als het een standaard ASP.NET webform is, dan ga je problemen krijgen m.b.t. viewstate.

Lees ook eens de HTTP specificatie m.b.t. POST requests door voor het formuleren van een eigen POST.

[ Voor 14% gewijzigd door Not Pingu op 03-03-2006 10:06 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • whoami
  • Registratie: December 2000
  • Laatst online: 07-04 22:26
Elect schreef op vrijdag 03 maart 2006 @ 09:56:
Ja, ik ben mis. Ik ontwerp hem in Visual Studio .NET maar heb een C# applicatie gekozen. Geen ASP.NET pagina. Ruk. Sorry, verduidelijkt in iedergeval een heleboel.
Wat is het nu, een windows applicatie, of een web applicatie ?
(In ASP.NET kan je perfect C# gebruiken).

https://fgheysels.github.io/


  • Elect
  • Registratie: Mei 2000
  • Niet online
whoami schreef op vrijdag 03 maart 2006 @ 10:11:
[...]

Wat is het nu, een windows applicatie, of een web applicatie ?
(In ASP.NET kan je perfect C# gebruiken).
Een windows applicatie.
Ik was mis, omdat je idd C# gebruikt in ASP.NET, maar ik helemaal niet aan een website bezig ben.


Het idee:
Rechtmuisknop op een .jpg > Uploaden (selecteren in het menu) > Applicatie start op, en FTP'd de foto naar een server online > Link komt op het klembord terecht

[ Voor 48% gewijzigd door Elect op 03-03-2006 10:23 ]

HelmChat.eu - Free Motorcycle Group Chats


  • whoami
  • Registratie: December 2000
  • Laatst online: 07-04 22:26
Clipboard.GetDataObject en ClipBoard.SetDataObject zal je dus eens moeten bekijken.

https://fgheysels.github.io/


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Ah, ik dacht dat je nog met de vraag zat hoe je de afbeelding van de client naar de webapplicatie ging krijgen. My bad.

Certified smart block developer op de agile darkchain stack. PM voor info.


  • Elect
  • Registratie: Mei 2000
  • Niet online
Het clipboard gedeelte werkt prima :)

Alleen ik zie nogsteeds niet in hoe ik in mijn programma de variabele uit de Shell van windows (de rechtermuisknop > Upload) kan krijgen. Ergens moet die toch een naam hebben? Iemand die een gokje wil wagen? :)
Druk bezig met zoeken, maar de meeste bouwen rechtermuisknop functies in hun applicatie zelf, wat ik juist niet moet hebben.

[ Voor 22% gewijzigd door Elect op 03-03-2006 11:06 ]

HelmChat.eu - Free Motorcycle Group Chats


Verwijderd

Wordt de bestandsnaam niet via een parameter doorgegeven aan je applicatie? Main(string[] Args)

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ik neem aan dat je een contextmenuhandler hebt gedefinieerd bij het JPG type of in
HKCR\AllFilesystemObjects\shellex\ContextMenuHandlers?

En die heb je gedefinieerd als "JOUWAPP"%1 neem ik aan?

Dan kun je door in JOUWAPP de Main te definieren als:
C#:
1
public static void  Main(string[] args)

de argument collectie uitvragen en als het goed is staat dan op args[0] de file.

  • Wmm
  • Registratie: Maart 2002
  • Laatst online: 08-04 22:48

Wmm

Verwijderd schreef op vrijdag 03 maart 2006 @ 11:22:
Wordt de bestandsnaam niet via een parameter doorgegeven aan je applicatie? Main(string[] Args)
Klopt, alleen moet je dit wel aangeven in je registry settings.
Je moet dus dit hebben in je registry als waarde:

code:
1
x:\path\myprogram.exe %1


%1 Zorgt ervoor dat dan ook het path van de file meegegeven wordt als parameter, als je dus verder geen parameters hebt is Args[0] het pad naar de file :).

Edit: traag, bigbeng was sneller :P.

[ Voor 4% gewijzigd door Wmm op 03-03-2006 11:36 ]

Pagina: 1