หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  ฉันอยากเจอเธอ
ฉันอยู่ใ...

2024-04-27 18:30:02
  ฉันอยากเจอเธอ
ฉันอยู่ใ...

2024-04-26 23:45:32
  สวัสดี คุณต้องการหาเงินจ...
2024-04-26 22:13:52
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
เขียนโปรแกรมให้ Run ตอน Startup Windows (อ่าน 53,108)
ศุภกิจ ทองดี (9'M) บทความโดย: นาย ศุภกิจ ทองดี (9'M)
e-mail: webmaster@sourcecode.in.th
mobile: 09-5009-5351
Line: suppakit.thongdee
Youtube: 9Mcode
Fanpage: Sourcecode.in.th
   

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 
 
Freelanceรับพัฒนาโปรแกรม และเว็บ โดย 9'M 

สำหรับวิธีการในการสร้างการ run โปรแกรมตอน startup windows นั้น สามารถทำได้หลายวิธี ขึ้นอยู่กับการเลือกนำมาใช้ ของ programmer แต่ละท่าน แต่วิธีที่นิยมใช้กันโดยทั่วไป จะมีอยู่ 2 วิธีคือ

  • การสร้าง Shortcut ไว้ใน startup เมนู (ดังแสดงในรูปที่ 1)
  • การแก้ไข Registry (ดังแสดงในรูปที่ 2)

startup menu
รูปที่ 1 หน้าต่างแสดง Startup เมนู

Registry Editor windows
รูปที่ 2 แสดงหน้าต่างของโปรแกรม Registry Editorู

และสำหรับอีกวิธีที่อยากจะบอกก็คือ การเขียน Service ให้ไปเรียก run โปรแกรมที่ต้องการ ซึ่งก็คงเป็นเรื่องที่ยุ่งยากเกินไป (ประมาณว่าทำง่ายๆไม่เป็น หรือว่า ต้องการบาง funtion ที่วิธีอื่นทำไม่ได้เช่น มีเงื่อนไขในการ run โปรแกรม เป็นต้น) สำหรับการเขียน Service สามารถหาอ่านได้ที่ การเขียน Service Application เพื่อใช้งานบน Windows NT/2000/XP

เอาละครับต่อไป เราจะมาพูดถึง วิธีการในการแก้ไข Registry กัน แต่ก่อนอื่น ก็คงต้อง ทำความเข้าใจ สำหรับบางท่าน ที่ยังไม่เข้าใจ เรื่อง Registry มาก่อน

Registry คือ.....?

Registry เป็นส่วนที่เก็บของ config และ ข้อมูลต่างๆของ windows รวมทั้งค่าการทำงานต่างๆ ของ windows และโปรแกรมต่างๆ

ซึ่งเราก็สามารถที่จะเขียนโปรแกรม ไปจัดการกับ Registry ได้เช่นกัน แต่ต้องระวังให้ดี เพราะอาจจะทำให้ windows ของคุณ ิboot ไม่ขึ้นเลยก็เป็นได้

การเรียกแก้ไข Registry

ในการที่เราจะแก้ไขหรือ จัดการกับ Registry จะต้องใช้โปรแกรม Registry Editor ซึ่ง windows ให้มาใช้ในการจัดการ registry โดยคุณ สามารถเรียกโปรแกรมนี้ ผ่านทาง run เมนู โดยมีขั้นตอนดังนี้

  • เลือกที่เมนู Start->Run
  • พิมพ์ข้อความ regedit แล้วกด Enter

จะปรากฏหน้าต่างของโปรแกรม Registry Editor ดังรูปด้านล่าง

Run windows
รูปที่ 3 แสดงหน้าต่าง Run

Registry Editor windows
รูปที่ 4 แสดงหน้าต่างของโปรแกรม Registry Editor

การสร้างส่วนที่กำหนดการ Run โปรแกรม

สำหรับส่วนที่ใช้ในการเรียก run โปรแกรม ในขณะที่ windows กำลัง startup ขึ้นมามานั้นจะอยู่ในส่วนของ

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
และ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

ดังรูปที่ 5 ด้านล่างนี้

Registry Editor windows
รูปที่ 5 แสดงผลตำแหน่ง path ที่กำหนดการ run โปรแกรมใน Registry

String Value
รูปที่ 6 แสดง รายชื่อ (String Value)ที่จะถูก run ตอน startup

ดังรูปที่ 6 จะแสดง String Value ของ โปรแกรม Norton Antivirus ที่จะrun ไฟล์ navapw32.exe ตอนที่เรา Startup windows

ข้อแตกต่างระหว่าง RunOnce และ Run

  • RunOnce จะเป็นส่วนที่ใช้ในการเก็บรายชื่อโปรแกรม ที่ต้องการ run เพียงครั้งเดียว แล้วรายชื่อนั้น ก็จะถูกลบหายไป เช่นเมื่อเรากำหนดโปรแกรมให้ run ในส่วนของ RunOnce แล้วทำการ reboot เครื่อง เมื่อเครื่องเรา boot ขึ้นมา windows ก็จะไป run ไฟล์ ที่เรากำหนดไว้ และลบรายชื่อนั้นออกไปจาก Registry ที่อยู่ในส่วนของ RunOnce
  • Run จะต่างกับ RunOnce ตรงที่ Run จะไม่มีการลบ รายชื่อของโปรแกรม ออกจาก Registry แต่อย่างใด

การใส่รายชื่อโปรแกรม

หากคุณต้องการใส่รายชื่อโปรแกรม ที่ต้องการให้ run ตอน startup windows เข้าไปใน Registry จะมีขั้นตอนในการทำดังนี้

  • คลิกขวา ด้านที่แสดงรายชื่อ จะปรากฏ pop up windows ขึ้นมา ให้เลือก New->String Value
  • ทำการกำหนดชื่อโปรแกรมของคุณ
  • ทำการดับเบิ้ลคลิก ที่ชื่อที่เรากำหนดขึ้น แล้ป้อน path ของไฟล์ ที่เราต้องให้ run ตอน startup

การเขียนโปรแกรม

คราวนี้ก็จะเป็น code ในการแก้ไข Registry ครับ โดยมีขั้นตอนดังนี้

  • เปิดโปรแกรม Delphi เลือก สร้าง Project ใหม่
  • วางปุ่มลงบน Form 2 ปุ่มด้วยกัน
  • กำหนด Property caption ของ Button1 เป็น "Create"
  • กำหนด Property caption ของ Button2 เป็น "Delete"

จากขั้นตอนข้างต้นเราได้ Form1 มีหน้าตาดังรูปที่ 7

Form1
รูปที่ 7 แสดง ผลการออกแบบ โปรแกรม

  • ทำการประกาศเรียกใช้ Unit Registry ,ดับเบิ้ลคลิกที่ Button1, Button2 แล้วป้อนโค้ด ผลของโค้ดแสดง ดังตาราง
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses Registry;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var RegIniFile :TRegIniFile;
begin
  RegIniFile :=TRegIniFile.Create;
  RegIniFile.RootKey :=HKEY_LOCAL_MACHINE;
  RegIniFile.WriteString('SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
                          ,'NotePad','C:\Windows\NOTEPAD.EXE');
end;

procedure TForm1.Button2Click(Sender: TObject);
var RegIniFile :TRegIniFile;
begin
  RegIniFile :=TRegIniFile.Create;
  RegIniFile.RootKey :=HKEY_LOCAL_MACHINE;
  RegIniFile.DeleteKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run','NotePad');
end;

end.

ตามตัวอย่างจะเป็นการ สร้างการเรียกเปิดโปรแกรม notepad จาก Registry และ ส่วนของการลบการทำงาน ออกจาก Registry ด้วย

หลังจากนั้นก็ลอง run โปรแกรม แล้วคลิกปุ่ม Create และทำการ reboot เครื่อง เพื่อดูการทำงานว่า สามารถทำได้ได้ถูกต้องหรือไม่ ส่วนปุ่ม Delete จะใช้สำหรับการลบ String value ที่เราได้สร้างขึ้นมา จาก Registry

อย่าลืม Save โปรเจ็คก่อน reboot ด้วยนะครับ จะได้ไม่ได้เขียนใหม่

ทิ้งท้าย
หวังว่าเทคนิค เล็กๆน้อยๆ นี้จะเป็นประโยชน์บ้างสำหรับ เพื่อนๆพี่ๆน้อง ทุกท่าน ขอขอบคุณที่ให้ความสนใจ และติดตามเว็บเรา ด้วยดี เสมอมา แล้วพบกันใหม่กับ 9'M

 

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -


122.154.71.26 ความคิดเห็น #29 (จาก IP: 122.154.71.26)
พอดีทำโปรแกรมสอบเทียบครับ ช่วยสอนเกี่ยวกับการใส่วันที่(date)+ความถี่(3,6 MOUTH)= (เก็บค่าใหม่ในตอนคลิก เพิ่มในอีกฟิลล์หน่อยครับ)
และตั้งวันที่(สอบเทียบ)พอถึงวันที่กำหนดก็ให้เด้งแจ้งเตือนหน่อยจิครับ

(เด็กน้อยฝึกเดิน)
จากคุณ : โบ / ิboingbest@hotmail.com [2015-07-01 17:06:53]
สอบถาม
  • ห้ามการโฆษณา หากต้องการติดต่อหาลูกค้า ติดต่อโฆษณาโดยตรงได้ที่ webmaster@sourcecode.in.th
  • ห้ามใช้คำหยาบและคำพูดที่ไม่เหมาะสม
  • ขอสงวนสิทธิหากตรวจพบ ข้อความที่ไม่เหมาะสม ข้อความนั้นจะถูกลบทันที
ชื่อ
อีเมล์
รายละเอียด

 
 
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
บทความที่เกี่ยวข้อง

Zoom หน้าจอด้วย Delphi

What?s new in Delphi 2005 #1 ( for ?in loop statement)

Dynamic Cast ใน Delphi

สร้าง LED Control

การเขียน ActiveForm(ActiveX Control) เบื้องต้น

โปรแกรม Post ข้อมูล ไปยังไฟล์ ASP

แสดงหมายเลข IP Address ของเครื่องบน NetWork

การแสดงรายชื่อ Email Contact ของ Microsoft Outlook

การหาตำแหน่งของ Caret ใน Memo

การเขียน Service Application เพื่อใช้งานบน Windows NT/2000/XP
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th