Własny program w menu kontekstowym plików - "Wyślij do…"   strona główna:
A po co ten Excel ;-)
 
     Dość często wysyłam jakiś plik na swojego maila prywatnego  
ze służbowego komputera. Ciągłe logowanie się wcześniej na swoją  
skrzynkę żeby wysłać maila do siebie załączając plik który chciałbym  
przesłać zaczęło mnie irytować. :-)  
     Okazuje się że dość prostym sposobem można do menu  
kontekstowego plików, do części Wyślij do, dołożyć własny program.  
 
Trochu informacji z sieci:  
               "Wyślij do - personalizacja menu kontekstowego (Win 7)  
      Wielu użytkowników korzysta z polecenia Wyślij do dostępnego w menu  
         kontekstowym plików. To polecenie umożliwia szybkie przeniesienie  
       zaznaczonego elementu do określonych lokalizacji czy wysłanie pocztą   
          elektroniczną. Wbrew pozorom ich lista nie jest sztywnie ustalona  
                 i możesz ją z łatwością dostosować do swoich potrzeb."  
http://www.localize.fr.pl/  
 
Okazuje się ze zawartość menu kontekstowego / Wyślij do znajduje się w folderze:  
%APPDATA%\Microsoft\Windows\SendTo
 
naszym zadaniem jest dołożyć tu własny program wysyłający  
kliknięty myszą plik na wskazanego maila :-)  
 
Programem realizującym zadanie będzie niewielki skrypt vbs.  
Jak do takiego skryptu przekazać ścieżkę klikniętego pliku??  
Okazuje się że to zupełnie proste :-)  
 
     "Jeżeli przeciągniecie jakiś plik lub folder na plik .VBS, to całkowita   
       ścieżka zostanie automatycznie dodana jako argument wiersza  
        plecenia dla tego skryptu (pliku .VBS). Tak samo dzieje się w   
        przypadku polecenia SendTo. Jeżeli użyjecie polecenia SendTo  
     w celu wysłania pliku lub folderu do skryptu, to całkowita ścieżka  
       zostanie dodatkowo poszerzona o argument wiersza polecenia.  
                 Innymi słowy – kliknijcie prawym klawiszem na plik:\Scripts\Test.txt, a następnie wybierzcie opcję SendTo. Jeżeli „wyślecie” ten plik  
                           do skryptu w folderze SendTo, to jaki będzie pierwszy element kolekcji Arguments? Zgadza się - C:\Scripts\Test.txt."  
http://technet.microsoft.com  
 
Do wysyłko maila z załącznikiem wykorzystam CDO. Technologia ta nie wykorzystuje jakiegokolwiek programu pocztowego zainstalowanego   Sending mail from Excel with CDO
http://www.rondebruin.nl/
na komputerze typu: OutLook. Toteż nie wykorzystam rozwiązań firmowych, mało tego żaden program pocztowy nie musi być nawet   
zainstalowany. :-)  
Prawie całe rozwiązanie można znaleźć na stronie Ron de Bruin'a  
Należy jedynie dostosować kod do: 1.) faktu że moja pocztą jest Gmail. 2.) ma to być skrypt.   Send email with CDO e Gmail
http://www.a1vbcode.com/
 
Skrypt może wyglądać tak:  
 
    On Error Resume Next      
 
    Dim iMsg 'As Object ' CDO.Message   
    Dim iConf 'As Object ' CDO.Configuration   
    Dim Flds 'As Variant   
    Dim strFilePath: strFilePath = Wscript.Arguments(0)  
 
    Set iMsg = CreateObject("CDO.Message")   
    Set iConf = CreateObject("CDO.Configuration")   
 
    iConf.Load -1   
    Set Flds = iConf.Fields   
    With Flds   
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True   
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1   
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "tkuchta1@gmail.com"   
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "hasło123"   
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"   
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2   
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465  
        .Update   
    End With   
 
    With iMsg   
        Set .Configuration = iConf   
        .To = "tkuchta1@gmail.com"   
        .CC = ""   
        .BCC = ""   
        .From = """Tomek ""<tkuchta1@gmail.com>"  
 
        .Subject = "Plik: " & strFilePath & " wersja z: " & Now()  
        .TextBody = ""   
 
        .AddAttachment (strFilePath)  
 
        .Send   
    End With   
      
    MsgBox "Przesłano: " & strFilePath & vbNewLine & _  
           "Na: tkuchta1@gmail.com"  
 
    Set Flds = Nothing   
    Set iMsg = Nothing 
 
    Set iConf = Nothing   
 
 
W efekcie działania skryptu otrzymamy…  
 
 
 
 
 
A po zalogowaniu się na skrzynkę…  
 
 
 
 
 
 
 
 
 
 
Fajne?? :-) Mi się podoba! ;-)  
 
 
inne ciekawe pomysły z menu kontekstowym różnym miejsc..  
http://faq.pcformat.pl/index.php/Dodanie_skr%C3%B3t%C3%B3w_do_menu_kontekstowego  
http://greszata.pl/soisk/klasa_1/4_konfiguracja_i_zarzadzanie_systemem_windows/60_menu_kontekstowe_rozszerzanie_powloki.html  
http://hack.pl/forum/windows/5134-edytujemy-menu-kontekstowe-windows.html