顯然這應該是可能的。例如在使用NOTEPAD或HxD的文件上打開和操作。但是,它們不都是文本文件嗎?如何指定使用WINDOWS API打開文件和使用文件進行操作的文本編輯器。這當然不是在「CreateFile」中。用不同的文本編輯器打開文件
0
A
回答
0
希望我能理解你的問題...最簡單的方法是啓動所需的編輯器並將文件名作爲參數傳遞,而不是「調用」該文件(該文件將啓動與文件類型)。例如,notepad.exe mytextfile.txt
或gvim.exe mytextfile.txt
。
如果編輯器不在%PATH%
上,則需要使用完整路徑文件名。
0
你準備怎麼做?你可以:
- 維護,您希望安裝的編輯列表,並有條目在系統的PATH(壞主意)
- 有一個編輯器/要使用編輯器,查詢Windows註冊表找到編輯器的安裝路徑(使用
RegGetValue
),然後啓動編輯器CreateProcess
)(一個更好的主意) - 查詢註冊表以獲取給定文件類型的默認編輯器,然後使用
CreateProcess
啓動該編輯器。 (最好主意)
但這一切都取決於你的目標是什麼。基於需求
所以,只是讓我們在同一頁上,從C++
編輯,你想:
- 以一個命令行參數的C++應用程序(文件名)
- 打開,在任意編輯文件
- 發現當用戶已經改變了一個文件
- 操作上的文件內容
這是正確的嗎?
如果是這樣,你可以:
- 使用Boost libs to compute a CRC在文件中的當前數據
- 啓動使用我最初在緊湊循環和
sleep
如此描述 - 棒的方法之一編輯你不會咀嚼資源,而最初計算的CRC匹配循環中每次迭代計算的一次。
當然,有各種(這只是描述我可能使用的算法的一種超級簡單的方式),例如:
- 如果用戶沒有更改文件,會發生什麼情況?
- 如果找不到文件,會發生什麼情況?
我確定有很多不同的方法可以做到這一點,但這是目前我能想到的最簡單的方法(雖然仍然能夠相當確定所做的更改)。
免責聲明:我還沒有實現這樣的事情,所以我可能會完全關閉基地;)
+0
我明白了,我希望。 – Jake 2011-04-14 05:14:19
0
您是否正在尋找Windows上的ShellExecute()
或ShellExecuteEx()
的API?他們將啓動爲文件註冊的任何程序(通常基於文件名擴展)。
相關問題
- 1. Eclipse會打開與可編輯文件不同的源文件
- 2. 用文本編輯器打開加密文件是否安全
- 3. C++(Unix):用默認編輯器打開一個文本文件
- 4. 從java打開文件編輯器
- 5. 在文本編輯器中打開時Vim文件未對齊
- 6. 文本編輯器打開網絡文件?
- 7. 大日誌文件打開文本編輯器
- 8. 的bash腳本不打開文本編輯器
- 9. 腳本,將打開一個文件,編輯和使用相同的文件名
- 10. 編輯.bat文件,打開文件夾
- 11. JPG文件編輯後不會打開
- 12. 分佈式文本編輯器:多個用戶同時編輯文本文件
- 13. 如何使文本文件「打開」我的Win Api文本編輯器?
- 14. 在Rstudio編輯器中使用代碼而不是「文件/打開」來打開腳本文件
- 15. 使用文本編輯器編輯服務器中的文件
- 16. 使用XMLHttpRequest和javascript打開,編輯和保存文本文件
- 17. 用php打開並編輯.js文件
- 18. 如何在同一個編輯器中始終打開文件?
- 19. 無法在wxpython中使用我的文本編輯器打開文件?
- 20. 在Mac上的文本編輯器在Linux機器上打開文件
- 21. Eclipse如何使xml文件總是在文本編輯器中打開而不是xml編輯器
- 22. .net開發環境中的不同文本編輯器
- 23. QFile - 不能在文本編輯器中重新打開
- 24. 編輯一個打開的csv文件
- 25. Perl的打開文件+哈希+編輯
- 26. 用find命令在文本編輯器中打開多個文件
- 27. 如何在shell中的文本編輯器中打開文件的批處理?
- 28. 腳本編輯器/文件
- 29. 如何打開大(10GB +),文本文件和編輯
- 30. C#WPF打開文件並編輯某些文本
文件本身不能嵌入編輯器應在第一次/下一次編輯時使用哪個編輯器的規範,除非它可以給定與特定編輯器關聯的文件擴展名。 – 2011-04-14 05:23:26