顯然這應該是可能的。例如在使用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. 如何使文本文件「打開」我的Win Api文本編輯器?
- 3. 使用文本編輯器編輯服務器中的文件
- 4. 使用XMLHttpRequest和javascript打開,編輯和保存文本文件
- 5. 在Mac上的文本編輯器在Linux機器上打開文件
- 6. QFile - 不能在文本編輯器中重新打開
- 7. Perl的打開文件+哈希+編輯
- 8. 編輯一個打開的csv文件
- 9. 如何在shell中的文本編輯器中打開文件的批處理?
- 10. Sequoyah android本地化文件編輯器無法打開xml文件
- 11. 如何打開文本文件進行編輯,ASP.NET?
- 12. C#WPF打開文件並編輯某些文本
- 13. Aptana Studio php文件不能在PHP編輯器中打開
- 14. 在線開源的文本編輯器
- 15. Python - 在文本編輯器中以最小的輸入打開文件
- 16. 在Mac的文本中打開HTML文件從網絡瀏覽器中編輯
- 17. 在文本編輯器中打開jupyter筆記本
- 18. Powershell打開和編輯HTML文件
- 19. 打開並編輯.mmdb文件
- 20. 打開並編輯.PLM文件PowerLoom
- 21. 打開文件說明Locks confusion(編輯)
- 22. 問題,同時使用開放WysiWyg編輯器重新編輯文本
- 23. 咕嚕構建打開grunt.js的文本編輯器
- 24. 打開文件對話框並打開不同的文件
- 25. 使用十六進制編輯器打開.dat文件
- 26. 使終端用默認編輯器打開文件
- 27. 使用Eclipse可視化編輯器打開文件對話框
- 28. 用python在編輯器中打開一個txt文件
- 29. 在intellij編輯器中用命令行打開文件
- 30. 默認情況下讓Eclipse在文本編輯器中打開.html文件?
文件本身不能嵌入編輯器應在第一次/下一次編輯時使用哪個編輯器的規範,除非它可以給定與特定編輯器關聯的文件擴展名。 – 2011-04-14 05:23:26