เมื่อฉันใช้ Windows Explorer เพื่อเรียกดูไซต์ FTP ค่าเริ่มต้นคือมุมมอง Tiles ฉันต้องการมันเป็นค่าเริ่มต้นเป็นมุมมองรายการ
ฉันไม่เห็นการตั้งค่ารีจิสทรีและมาตรฐาน [เครื่องมือ -> ตัวเลือกโฟลเดอร์ ... -> ดู -> ใช้กับโฟลเดอร์] จะไม่มีผลกับไซต์ FTP
เมื่อฉันใช้ Windows Explorer เพื่อเรียกดูไซต์ FTP ค่าเริ่มต้นคือมุมมอง Tiles ฉันต้องการมันเป็นค่าเริ่มต้นเป็นมุมมองรายการ
ฉันไม่เห็นการตั้งค่ารีจิสทรีและมาตรฐาน [เครื่องมือ -> ตัวเลือกโฟลเดอร์ ... -> ดู -> ใช้กับโฟลเดอร์] จะไม่มีผลกับไซต์ FTP
คำตอบ:
สำหรับบันทึกนี่คือวิธีแก้ไขบางส่วนที่ทดสอบกับ W7 SP1 และ W10 v1511
Windows Registry Editor เวอร์ชัน 5.00 ;คอมพิวเตอร์ของฉัน [HKEY_CURRENT_USER \ Software \ Classes \ CLSID \ {20D04FE0-3AEA-1069-A2D8-08002B30309D} \ ShellFolder] "FolderType" = "" ; โฟลเดอร์ Microsoft FTP [HKEY_CURRENT_USER \ Software \ Classes \ CLSID \ {63da6ec0-2e98-11cf-8d82-444553540000} \ ShellFolder] "FolderType" = "" [HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ Shell \ กระเป๋า \ AllFolders \ Shell \ {00000000-0000-0000-0000-0000-000000000000}] "LogicalViewMode" = DWORD: 00000001 "โหมด" = DWORD: 00000000
3a เรียกใช้explorer shell:mycomputerfolder
และคุณจะเห็นMy Computer
เปิดในมุมมองรายละเอียด
3b เรียกใช้explorer ftp://your.site.com
และควรจะอยู่ในมุมมองรายละเอียดตราบใดที่คุณไม่กดไอคอนไซต์ในบานหน้าต่างนำทาง (ถ้ามีAdd Network Location
)
คุณสามารถสร้างทางลัดพร้อมตำแหน่งexplorer ftp://your.site.com
เพื่อความสะดวก
การอ้างอิง:
ไอคอนเดสก์ท็อป Windows 8 ในมุมมองไทล์ (กำหนดค่าLogicalViewMode
สำหรับโหมดมุมมองอื่น ๆ )
กำหนดค่ามุมมองโฟลเดอร์เริ่มต้นสำหรับที่เก็บข้อมูลที่เชื่อมต่อผ่าน MTP (เป็นการตั้งค่ามุมมองโฟลเดอร์ทั้งหมดเป็นโหมดเดียวกัน)
ฉันเขียนสิ่งนี้เพื่อทำกับ Autoit: เพียงแค่เรียกใช้สคริปต์และ windows ftp explorer ของคุณควรอยู่ในมุมมองรายการเมื่อดูครั้งแรก มันยังไม่สมบูรณ์แบบ แต่มันมีฟังก์ชั่นพื้นฐานที่คุณต้องการ ฉันต้องการห้องสมุดที่ฉันพบที่นี่ด้วย
ทดสอบกับ Windows 7 64-bit
#include "Automating Windows Explorer\Includes\AutomatingWindowsExplorer.au3" ;UDF
#include <Array.au3>
Local $str = "Address: ftp" ;part of visible text in explorer control, unique to ftp, I think...
Local $CheckedWindows[5] ;Keep track of activated windows because I don't have a shell hook for window.created
Local $hExplorer
while 1
Sleep(2000)
$hExplorer = WinWaitActive("[CLASS:CabinetWClass]", $str)
If not ContainsElement($CheckedWindows,$hExplorer) then ;Only trigger on a *new* window
setFTPview($str,$hExplorer)
_ArrayAdd($CheckedWindows,$hExplorer)
EndIf
;delete unused handles to prevent aliases or large array, but I don't know the shell hook for window.closed
;alternative is to periodically loop through existing windows and delete non-existing handles (todo)
WEnd
func ContainsElement($arr,$el)
Local $Bound = UBound($arr)
For $i=0 to ($Bound -1)
If $arr[$i] == $el then return True
Next
return False
Endfunc
func setFTPview($str,$hExplorer)
GetIShellBrowser( $hExplorer )
If Not IsObj( $oIShellBrowser ) Then
MsgBox( 0, "Automating Windows Explorer", "Could not get an IShellBrowser interface. Terminating." )
Return
EndIf
GetShellInterfaces() ; Get other interfaces, might not be needed
SetIconView($FVM_LIST)
Sleep(1000)
endfunc
ภาคผนวก: คุณอาจต้องเปลี่ยนบรรทัด 257 จาก "AutomatingWindowsExplorer.au3" จากIf @OSVersion "WIN_XP" Then
เป็นIf @OSVersion <> "WIN_XP" Then
วิธีการตั้งค่ามุมมองรายการเป็นมุมมอง FTP เริ่มต้นใน Windows Explorer
ฉันพบวิธีแก้ปัญหาง่ายๆโดยใช้วิธีใดวิธีหนึ่งจากสองวิธีด้านล่างนี้ซึ่งคุณอาจพบว่ามีประโยชน์สำหรับคำถามของคุณด้วยเทคโนโลยี Windows ในตัว
ฉันไม่แน่ใจว่านี่จะเป็นทางออกที่แท้จริงที่คุณกำลังมองหาเพื่อแก้ไขปัญหานี้หรือไม่ แต่อาจเป็นวิธีแก้ปัญหาที่ยอมรับได้อย่างน้อยที่สุดซึ่งคุณอาจพบว่ามีประโยชน์โดยไม่จำเป็นต้องเปลี่ยนการตั้งค่ารีจิสตรีใช้โซลูชันของบุคคลที่สามเป็นต้น
โดยพื้นฐานแล้วสิ่งนี้ใช้sendkeysเพื่อส่งCtrl+ Shift+6คีย์ลัดเพื่อเปลี่ยนมุมมองเป็นรายละเอียดทันทีหลังจากเปิดมุมมองโฟลเดอร์ FTP - - แต่ไม่สามารถใช้ซ้ำได้ดังนั้นอาจเป็นการสร้างความแตกต่างสำหรับความต้องการเฉพาะของคุณ
นี่คือวิธีการที่จะประกอบด้วย(1)การสร้างชุดสคริปต์ด้วยตรรกะด้านล่างและ(2)จากนั้นสร้างสั้นที่ชี้ไปที่สคริปต์ชุดและจากนั้นก็มีข้อโต้แย้งมันจะผ่านในรายละเอียดการเชื่อมต่อ FTP ที่ใช้บังคับสำหรับเซิร์ฟเวอร์ FTP คุณจะเชื่อมต่อกับ
แบทช์สคริปต์หนึ่งชุดที่คุณสร้างขึ้นสำหรับวิธีนี้สามารถใช้เป็นทางลัดได้มากเท่าที่คุณต้องการใช้กับวิธีนี้ดังนั้นจึงเป็นโซลูชันที่ปรับขนาดได้หากความต้องการของคุณเพิ่มขึ้นสำหรับการเชื่อมต่อ FTP มากกว่าหนึ่งครั้งในอนาคต
สร้างสคริปต์ชุด
สร้างแบตช์สคริปต์ซึ่งเป็นเพียงไฟล์เอกสารข้อความที่บันทึกด้วย.cmd
หรือ.bat
ส่วนขยายที่มีลอจิกด้านล่างในนั้นจากนั้นบันทึกไปยังเส้นทางบางอย่างที่คุณจะอ้างอิงในทางลัดที่คุณสร้างในส่วนสร้างทางลัด
@ECHO OFF %~1 :VBSDynamicBuild SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%" ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%" ECHO Wscript.Sleep 900 >>"%TempVBSFile%" ECHO WshShell.SendKeys "^+6" >>"%TempVBSFile% ECHO Wscript.Sleep 900 >>"%TempVBSFile%" CSCRIPT //nologo "%TempVBSFile%" EXIT /B
สร้างทางลัด
บนเดสก์ทอปของคุณคลิกขวาแล้วเลือกใหม่ -> ทางลัดและเสียบด้านล่างค่าที่คุณบันทึกสคริปต์ชุดที่คุณเพิ่งสร้าง (ด้านบน) และได้รับการตั้งแน่ใจว่า<username>
, <password>
, <FTP server URL or IP address>
ค่าสำหรับความต้องการของคุณตามเลือกถัดไปและจากนั้นให้ FTP ที่ทางลัดชื่อมีความหมายเพื่อให้คุณรู้ว่ามันคืออะไรในภายหลังแล้วเลือกบันทึก (ดูภาพหน้าจอด้านล่าง)
D:\BatchScripts\OpenFTPDetailView.cmd "%windir%\explorer.exe ftp://<Username>:<password>@<FTP server URL or IP address>/"
สำคัญ:มันเป็นสิ่งสำคัญที่มีเครื่องหมายคำพูดคู่ล้อมรอบ%windir%\explorer.exe ftp://<Username>:<password>@<FTP server URL or IP address>/"
ค่า" ในส่วนคุณสมบัติทางลัดด้านบน
ใช้มัน
ตอนนี้สิ่งที่คุณต้องทำคือคลิกสองครั้งที่ทางลัดที่คุณสร้างขึ้นเพื่อเปิดโฟลเดอร์ FTP ที่มีมุมมองDetailsแล้วมันก็ง่ายเหมือนการย้ายไปข้างหน้า คุณสามารถเปลี่ยนไอคอนบนทางลัดนี้หากคุณต้องการเช่นกัน
วิธีการนี้จะคล้ายกับวิธีที่ 1ข้างต้น แต่คุณจะไม่จำเป็นที่จะต้องสร้างทางลัดให้มันทำงาน แต่คุณยังจะต้องตั้งค่า<username>
, <password>
, <FTP server URL or IP address>
ค่าสำหรับความต้องการของคุณตามสำหรับเซิร์ฟเวอร์ FTP ที่คุณจะเชื่อมต่อไปยัง
สร้างสคริปต์ชุด
สร้างแบตช์สคริปต์ซึ่งเป็นเพียงไฟล์เอกสารข้อความที่บันทึกด้วย.cmd
หรือ.bat
ส่วนขยายที่มีลอจิกด้านล่างแล้วบันทึกลงในพา ธ ที่คุณจะใช้เพื่อดับเบิลคลิกเพื่อเรียกใช้งาน
@ECHO OFF %windir%\explorer.exe ftp://<username>:<password>@<FTP server URL or IP address>/ :VBSDynamicBuild SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%" ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%" ECHO Wscript.Sleep 900 >>"%TempVBSFile%" ECHO WshShell.SendKeys "^+6" >>"%TempVBSFile% ECHO Wscript.Sleep 900 >>"%TempVBSFile%" CSCRIPT //nologo "%TempVBSFile%" EXIT /B
ใช้มัน
ตอนนี้สิ่งที่คุณต้องทำคือดับเบิลคลิกที่สคริปต์แบทช์ที่คุณสร้างขึ้นเพื่อเปิดโฟลเดอร์ FTP ที่มีมุมมองDetailsและง่ายเหมือนเลื่อนไปข้างหน้า