ฉันใช้รหัสด้านบนเป็นระยะเวลาพอสมควรและขอขอบคุณผู้มีส่วนร่วมก่อนหน้านี้ทุกคนสำหรับการแบ่งปันผลงาน / การปรับปรุง / ข้อเสนอแนะของพวกเขา อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันพบปัญหาสองอย่างที่ไม่พึงประสงค์และน่ารำคาญเมื่อใช้ร่วมกับ Windows 10 (64 บิต) และ Outlook 2016 (64 บิต) สิ่งเหล่านี้คือ:
ไอคอน Outlook ใน System Tray แสดงการซ้อนทับ 'cog' พร้อมข้อความ "โปรแกรมอื่นกำลังใช้ Outlook ในการยกเลิกการเชื่อมต่อโปรแกรมและออกจาก Outlook ให้คลิกที่ไอคอน Outlook จากนั้นคลิก Exit Now"
ความพยายามในการเปิด Outlook จากรายการบริบท 'เปิด Outlook' (คลิกขวาที่ไอคอน Outlook ในถาด) ทำให้กล่องโต้ตอบปรากฏขึ้นเพื่อรายงานว่า "ไม่พบวัตถุ explorer ที่ใช้งานอยู่" การคลิกตัวเลือก "ตกลง" ในการตอบกลับจะเป็นการเปิดใช้งาน Outlook (แม้ว่าปัญหา 1 - การซ้อนทับฟันเฟือง) ยังคงอยู่
เพื่อแก้ไขปัญหาข้างต้นฉันตั้งค่าเกี่ยวกับการค้นหารหัสที่คล้ายกันซึ่งฉันสามารถรวบรวมเพื่อตอบสนองวัตถุประสงค์ที่ต้องการของโปสเตอร์ต้นฉบับ (ซึ่งสะท้อนความต้องการของฉันเอง)
รหัสด้านล่างนี้มีให้ "ตามที่เป็น" เพื่อประโยชน์ที่มากขึ้นของ SuperUsers อื่น ๆ เป็นสิ่งสำคัญที่จะต้องทราบว่าในขณะที่ฉันได้ทดสอบโค้ดบนระบบ W10 64 บิตสองระบบ (ทั้งที่ติดตั้ง Office 64 บิต) ฉันยังคงแก้ไข RunTime ปัญหาของหนึ่งระบบ ฟังก์ชั่นอื่น ๆ ไม่มีที่ติ รายละเอียดทั้งหมดสามารถดูได้ที่นี่หากต้องการ: /programming/45533261/start-outlook-2016-64-bit-automatically-minimised-to-windows-10-64-bit-syste
ฉันจะให้คุณประเมินการพัฒนาใด ๆ ในขณะที่การทดสอบยังคง .......
** อัพเดทด่วน ** ผ่านการทดสอบบน HP Elitebook 8440P แล็ปท็อป - Windows 10 Pro 64 บิตพร้อม Office 64 บิต + 12 Addons Outlook เดียวกัน - ฟังก์ชั่นไม่มีที่ติตามข้อกำหนดที่ระบุไว้ในโพสต์ต้นฉบับด้านบน .....
** การอัปเดตเพิ่มเติม ** ทดสอบในแล็ปท็อป HP Elitebook 8440P ตัวที่สอง - Windows 10 Pro 64 บิตพร้อม Office 64 บิต + 12 Addons Outlook เดียวกัน - พบข้อผิดพลาด RunTime อีกครั้ง :(
OPTION EXPLICIT
Dim WshShell
Dim OLObj
Set WshShell = WScript. CreateObject ( "Wscript.Shell" )
'Open Outlook: Note that inspite of the launch options, it will open the program in a normal window.
'The file location path is not necessary as Windows 10 correctly identifies Outlook's location.
WshShell.Run "OUTLOOK.EXE" , 3, false
'This will mimimise it to the system tray after a 10 second pause to allow for mail collection on Outlook launch.
WScript.Sleep (10000)
Set OLObj = GetObject("","Outlook.Application")
'Activates the window
OLObj.ActiveExplorer.Activate
'Sends the command to minimise
OLObj.ActiveExplorer.WindowState = 1
'Outlook does not immediately minimise to the system tray so that 'Send/Receive' can initiate mail collection.