Mencari Aplikasi Lalai untuk Jenis Fail dalam Windows
Pembangun selalunya perlu mencari aplikasi lalai yang dikaitkan dengan jenis fail tertentu. Ini penting untuk tugasan seperti menggunakan editor lalai untuk sambungan fail tertentu.
Untuk mencapainya, seseorang mungkin mempertimbangkan untuk menggunakan System.Diagnostics.Process.Start untuk membuka fail dalam aplikasi lalainya. Walau bagaimanapun, pendekatan ini terhad dan tidak membenarkan pembukaan fail dengan sambungan bukan standard.
Penyelesaian yang boleh dipercayai melibatkan penggunaan fungsi API Win32 AssocQueryString. Fungsi ini membolehkan pertanyaan sistem pengendalian untuk aplikasi lalai yang dikaitkan dengan jenis fail.
Begini cara anda boleh memanfaatkan AssocQueryString dalam C#:
using System.Runtime.InteropServices; [DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)] public static extern uint AssocQueryString( AssocF flags, AssocStr str, string pszAssoc, string pszExtra, [Out] StringBuilder pszOut, ref uint pcchOut ); [Flags] public enum AssocF { // ... } public enum AssocStr { // ... } public static string AssocQueryString(AssocStr association, string extension) { const int S_OK = 0; const int S_FALSE = 1; uint length = 0; uint ret = AssocQueryString(AssocF.None, association, extension, null, null, ref length); if (ret != S_FALSE) { throw new InvalidOperationException("Could not determine associated string"); } var sb = new StringBuilder((int)length); ret = AssocQueryString(AssocF.None, association, extension, null, sb, ref length); if (ret != S_OK) { throw new InvalidOperationException("Could not determine associated string"); } return sb.ToString(); }
Dengan memanggil AssocQueryString dan menentukan perkaitan yang diingini, anda boleh mendapatkan semula laluan penuh ke aplikasi lalai. Ini membolehkan anda berinteraksi secara langsung dengan editor lalai atau pemproses untuk jenis fail tertentu, walaupun fail itu tidak mempunyai sambungan standard.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Aplikasi Lalai Secara Pengaturcaraan untuk Jenis Fail Tertentu dalam Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!