ในการเขียนโปรแกรม บางครั้งเพื่อประหยัดความพยายามหรือเพื่อวัตถุประสงค์อื่น เรามักจะต้องการยืมกล่องโต้ตอบของระบบ แล้วเราจะเรียกกล่องโต้ตอบของระบบได้อย่างไร? เพื่อนเรียกกล่องโต้ตอบ "เปิดด้วย" ใน VB ดังนี้:
winexec(PChar('rundll32shell32,OpenAs_RunDLL'+FilePath),SW_SHOWDEFAULT);
รหัสนี้ถูกนำมาใช้โดยการเรียกใช้ rundll32.exe และปล่อยให้เรียกทรัพยากรใน shell32.dll วิธีนี้เป็นไปได้ แต่มีมือใหม่หลายคนเช่นฉันที่ไม่เข้าใจวิธีเรียกทรัพยากรอันมีค่าใน shell32.dll เราควรทำอย่างไร
ฉันเรียกมันว่า:
1. เรียกระบบกล่องโต้ตอบ “เกี่ยวกับ”:
ขั้นแรกให้เพิ่ม SHellApi เพื่อใช้
จากนั้นเขียนโค้ดต่อไปนี้:
PROcedureTForm1.Button1Click (ผู้ส่ง: TObject);
var
shellapp: ตัวแปร;
เริ่ม
ShellAboutW(0,'Timerv1.03','kedyCopyright',1);
จบ;
ฉันจะไม่ลงรายละเอียดเกี่ยวกับขั้นตอนอื่นๆ หลังจากรันแล้ว ให้คลิกปุ่ม จากนั้นกล่องโต้ตอบเกี่ยวกับ WINDOWS About มาตรฐานจะปรากฏขึ้น กล่องโต้ตอบชื่อ "เกี่ยวกับ Timerv1.03" อย่างที่คุณเห็นฉันใช้ฟังก์ชัน ShellAboutW ในโปรแกรม ฟังก์ชั่นนี้อธิบายไว้ใน MSDN2003 ดังนี้:
เชลล์เกี่ยวกับฟังก์ชัน
DisplaysaShellเกี่ยวกับกล่องโต้ตอบ
ไวยากรณ์
intShellเกี่ยวกับ(HWNDhWnd,
LPCTSTRszApp,
LPCTSTRszอื่นๆ,
HICONhไอคอน
-
พารามิเตอร์
wx
[ใน] Windowhandletoaparentwindow.ThisparametercanbeNULL.
szApp
[ใน]Pointertoaสตริงที่สิ้นสุดด้วยค่า null ที่มีข้อความที่จะแสดงใน
แถบชื่อเรื่องของเชลล์เกี่ยวกับกล่องโต้ตอบและบรรทัดแรกของกล่องโต้ตอบหลังจากนั้น
ข้อความ "Microsoft" ถ้าข้อความมีตัวคั่น (#) แบ่งเป็นสองส่วน
ฟังก์ชั่นแสดงส่วนแรกในแถบชื่อเรื่องและส่วนที่สองในบรรทัดแรก
ภายหลังข้อความ"Microsoft"
szOtherStuff
[ใน]Pointertoaสตริงที่สิ้นสุดด้วยค่า null ที่มีข้อความที่จะแสดงใน
กล่องโต้ตอบหลังเวอร์ชันและลิขสิทธิ์ข้อมูล
สวัสดีไอคอน
[ใน] ไอคอนที่ฟังก์ชั่นแสดงกล่องโต้ตอบหากพารามิเตอร์นี้เป็น NULL การ
ฟังก์ชั่นแสดงไอคอน Microsoft®Windows®หรือ Microsoft WindowsNT®
ฉันไม่คิดว่าคุณต้องการให้ฉันแปลความหมาย เป็นการดีที่สุดที่จะเห็นสิ่งเหล่านี้ด้วยตัวเอง
2. เรียกกล่องโต้ตอบการปิดระบบ
เราจำเป็นต้องเปลี่ยนส่วนเริ่มต้นของโค้ดเป็นเท่านั้น
เริ่ม
shellapp:=CreateOleObject('Shell.application');
shellapp.ShutDownWindows;
จบ;
ส่วนอื่นๆยังคงไม่เปลี่ยนแปลง เรียกใช้และคลิกปุ่มแล้วเราจะเห็นกล่องโต้ตอบการปิดระบบมาตรฐาน
ในความเป็นจริงนี้ยังคงเป็นฟังก์ชั่นปิดหน้าต่าง WindowsAPI ที่เรียกว่า
ส่วนนี้ใช้สองฟังก์ชันในวิธีการของ Windows Shellapplication ฟังก์ชั่นอื่น ๆ ของวิธีการ ได้แก่ :
BrowserForFolder, CascadeWindows, ControlPanelItem, EjectPC, Explore, FileRun, FindComputer, FindFiles, Help, MinimizeAll, NameSpace, Open, RefreshMenu, SetTime, TileHorizontally, TileVertical, TrayProperties, UndoMinimizeALL ฉันได้เรียนรู้การใช้ฟังก์ชันเหล่านี้เพียงไม่กี่อย่างเท่านั้น สำหรับรายละเอียด โปรดตรวจสอบเนื้อหาเกี่ยวกับเชลล์อ็อบเจ็กต์ใน MSDN
สิ่งที่ฉันอยากจะพูดมากที่สุดคือคุณต้องใช้ MSDN เพื่อเรียนรู้โปรแกรมภายใต้ windows ฉันประหลาดใจมากกับแหล่งข้อมูลในห้องสมุดนี้ คุณสามารถดูและฉันคิดว่าคุณก็จะคิดเช่นกัน