ทำไม Microsoft Word ไม่สามารถปิดได้อย่างแน่นอนหากมีกล่องโต้ตอบเปิดอยู่


28

ฉันได้รับข้อผิดพลาดเป็นครั้งคราวที่ Word ให้เมื่อพยายามปิดเอกสารด้วยกล่องโต้ตอบอื่นที่เปิดอยู่ แต่ฉันไม่สามารถเข้าใจสาเหตุที่เกิดขึ้นได้


6
ปัญหาทั่วไปคือสิ่งต่าง ๆ ในกล่องโต้ตอบอาจใช้งานไม่ถูกต้องหรือไม่เหมาะสมขึ้นอยู่กับสิ่งที่คุณทำในหน้าต่างหลักและมักจะไม่มีวิธีที่ชัดเจนในการแก้ไขปัญหานี้กับการเปลี่ยนแปลงที่ผู้ใช้อาจทำในกล่องโต้ตอบใน ระหว่าง (ฉันเดาว่านี่เป็นเพียงการประกาศถึงหลักการทั่วไปของ "ลูปป้อนกลับอาจทำให้เกิดปัญหาในระบบ")
Mehrdad

สามารถทำได้ถ้าคุณเปิดตัวจัดการงานและบอกให้ฆ่ากระบวนการ =) แต่สิ่งนี้อาจมีผลข้างเคียงที่ไม่คาดคิด ( อาจมีบางกรณีที่ไฟล์อาจเกิดความเสียหาย แต่ฉันค่อนข้างแน่ใจว่าไฟล์เหล่านั้นจะหายากมากมันต้องได้รับการออกแบบมาสำหรับการล่มที่ไม่คาดคิดและไฟฟ้าดับอยู่แล้ว)
jpmc26

คำตอบ:


61

เพราะกล่องโต้ตอบส่วนใหญ่ถือว่าเป็น " โมดอล " ซึ่งหมายความว่าการควบคุมจะไม่ส่งกลับไปที่โปรแกรมหลักหรือการเรียกคอนเทนเนอร์จนกว่าจะปิดกล่องโต้ตอบเอง นี่คือการออกแบบและโปรแกรมเมอร์มีตัวเลือกที่จะทำให้หน้าต่างเป็นกิริยาช่วยหรือไม่เป็นกิริยาช่วย โดยปกติแล้วหน้าต่างจะถูกกำหนดให้เป็นโมดัลหากโปรแกรมหลักไม่สามารถหรือไม่ควรดำเนินการต่อไปจนกว่าไดอะล็อกที่เปิดจะได้รับการจัดการโดยผ่านการเลือก (Ok) หรือยกเลิก (ยกเลิก)


4
แต่ถ้าไดอะล็อกนั้นเป็นโมดัล OP จะสั่งให้โปรแกรมปิดอย่างไร อาจมีบางอย่างเกิดขึ้นที่นี่อีกไหม
การแข่งขัน Lightness กับ Monica

7
@LightnessRacesinOrbit มีหลายวิธีในการปิดโปรแกรมไม่ใช่ทุกอย่างที่ต้องมีการคลิกบนหน้าต่างหลัก ตัวอย่างเช่นคุณสามารถคลิกขวาที่รายการแถบงานและเลือก "ปิด" หรือดึงตัวจัดการงานขึ้นด้วย Ctrl-Shift-Esc และพยายามปิดจากที่นั่น การปิดระบบ Windows จะพยายามปิดแอปพลิเคชั่นอย่างสง่างามในขั้นต้นแม้ว่าอาจจะ "ฆ่า" พวกเขาหลังจากหมดเวลา สิ่งเหล่านี้ส่งสัญญาณไปยังโปรแกรมเพื่อปิดโดยไม่มีการโฟกัสจริงดังนั้นภาพหน้าจอของบ๊อบบอกว่า "คลิกตกลงเปลี่ยนเป็น Word" ตามลำดับ
IMSoP

@IMSoP: ฉันทราบดีว่ามีวิธี "วิศวกรรม" มากกว่าที่จะขอให้ปิดแอปพลิเคชัน แต่ฉันวาดเส้นที่ฉันคิดว่า "การใช้งานทั่วไป" สิ้นสุดลงเพราะฉันคาดหวังว่า OP จะระบุสิ่งที่แน่นอน พวกเขาทำถ้ามันเกิน "การใช้งานทั่วไป"
การแข่งขัน Lightness กับ Monica

11
@LightnessRacesinOrbit ฉันให้คุณ Task Manager เป็นวิธีที่ "ผู้เชี่ยวชาญ" มากกว่า แต่ฉันจะไม่แปลกใจเลยถ้ามีคนคิดว่าการปิดบางสิ่งจากทาสก์บาร์นั้นเป็นเรื่องปกติอย่างสมบูรณ์ อันที่จริงตอนนี้ฉันรู้แล้วว่าคุณไม่จำเป็นต้องคลิกขวามีปุ่ม [x] สีแดงอยู่ตรงนั้นถ้าคุณวางเมาส์เหนือกลุ่มหรือดูภาพย่อขนาดเล็ก สิ่งที่แตกต่างกันดูเหมือนชัดเจนสำหรับคนอื่น
IMSoP

@IMSoP: นั่นเป็นเรื่องจริง
การแข่งขัน Lightness กับ Monica

20

กล่องโต้ตอบอาจพูดบางสิ่งเช่น:

คุณทำการเปลี่ยนแปลงเอกสารของคุณคุณต้องการบันทึกหรือไม่ (ใช่ไม่ใช่)

ไม่มีคำตอบที่ถูกต้องชัดเจนที่นี่ คุณอาจเสียหายเอกสารของคุณโดยไม่ตั้งใจ (เช่นแมวเดินผ่านแป้นพิมพ์) ซึ่งในกรณีนี้คำตอบคือ "ไม่" หรือคุณอาจใช้เวลาหลายชั่วโมงในการพิมพ์การเปลี่ยนแปลงซึ่งในกรณีนี้คำตอบคือ "ใช่"

สิ่งที่ปลอดภัยที่สุดสำหรับ Word ที่ต้องทำคือปฏิเสธที่จะปิดจนกว่าคุณจะตอบคำถาม


8
ฉันค่อนข้างแน่ใจว่าคำถามเกี่ยวกับข้อผิดพลาดนี้โดยเฉพาะ
Bob

12
ตกลง แต่คำถามไม่ได้พูดถึงกล่องโต้ตอบใด ๆ ฉันเป็นโปรแกรมเมอร์ฉันเข้าใจว่ากล่องโต้ตอบเป็นกิริยาช่วยอย่างไร แต่ฉันพยายามตอบคำถามว่าทำไมมันถึงเกิดขึ้น
Nick Gammon

IMHO จำไว้ว่าคนที่ไม่ใช่โปรแกรมเมอร์ใช้โปรแกรม
LawrenceC

1

เนื่องจากโปรแกรมได้รับการออกแบบในลักษณะนี้เพื่อหลีกเลี่ยงการดำเนินการที่ผู้ใช้อาจไม่ต้องการ

โดยปกติแล้วกล่องโต้ตอบจะปรากฏขึ้นเมื่อโปรแกรมต้องการให้ผู้ใช้เป็นแนวทางในการดำเนินการบางอย่าง การปิดเอกสารที่ไม่ได้บันทึกเป็นตัวอย่างที่ดีเยี่ยม: กล่องโต้ตอบจะบันทึกการเปลี่ยนแปลงยกเลิกการเปลี่ยนแปลงหรือยกเลิกการปิดและกลับสู่การแก้ไข โปรแกรมตั้งใจปฏิเสธที่จะปิดโดยไม่ตอบคำถามนี้เพราะการปิดจะบังคับให้มีการดำเนินการบางอย่าง โปรแกรมไม่สามารถตัดสินใจด้วยตนเองเช่น ยกเลิกการแก้ไขล่าสุดหรือในทางตรงข้ามเขียนทับเวอร์ชันที่ถูกต้องด้วยการพิมพ์ cat-on-the-keyboard

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

นอกจากนี้ยังลดความซับซ้อนของการออกแบบโปรแกรมเนื่องจากผู้สร้างไม่จำเป็นต้องสร้าง "ทางออกที่ปลอดภัย" ของทุกฟังก์ชั่น

วันนี้บทสนทนาส่วนใหญ่ไม่ได้เป็นกิริยาช่วยในแง่เทคนิค (โปรแกรมยังคงมีความรับผิดชอบ) แต่ก็ยังง่ายกว่าที่จะทำให้พวกเขาเป็นกิริยาช่วยในแง่ที่กว้างขึ้นของการไหลของตรรกะของโปรแกรม


0

ฉันอาจเข้าใจผิด แต่ฉันคิดว่าสิ่งนี้จะกลับไปสู่พฤติกรรมการควบคุมการโต้ตอบทั่วไปแบบเก่า

หลายคนหากถูกฆ่าอย่างกระทันหันโดยไม่กลับมามีผลข้างเคียงที่ไม่พึงประสงค์บางครั้งแม้จะอยู่นอกโปรแกรมที่ตายแล้วและไม่มีทางที่จะหนีจากพวกเขาได้อย่างสุภาพในทุกกรณีหากพวกเขาทำบางสิ่งบางอย่างในระดับระบบ

สำหรับสาเหตุที่ยังเป็นเช่นนั้นผู้คนเริ่มชินกับมันมากขึ้นนักพัฒนาโปรแกรมที่ตั้งสมมติฐานมานานหลายทศวรรษและที่สำคัญกว่านั้นไม่ใช่โปรแกรมเมอร์ที่ใช้กล่องโต้ตอบเหล่านั้นในสคริปต์ระบบอัตโนมัติในสำนักงานของพวกเขาและ Microsoft ก็ไม่เป็นเช่นนั้น .


0

ด้านหลังม่านโปรแกรม (ในกรณีของเราคือ MS Word) สร้าง "ตัวจัดการเหตุการณ์คลิกปุ่ม X" เมื่อสร้างหน้าต่าง เมื่อมีหน้าต่างข้อความ Word จะบันทึกสิ่งนั้น จากนั้นในตัวจัดการปุ่ม X เมื่อคลิกปุ่ม X มันจะตรวจสอบหน้าต่างข้อความที่เปิดอยู่ หากมีบางตัวจัดการยกเลิกการดำเนินการปิด หากไม่มีจะเป็นการยกเลิกโปรแกรมและระบบปฏิบัติการจะล้างหน่วยความจำที่โปรแกรมใช้ นี่คือวิธีการทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.