STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ
    Nội dung
    0
    0
    Chia sẻ

    Mở File Và Đường Dẫn Bất Kỳ Với Phương Thức ShellExcute()

    Hướng dẫn mở file trong chương trình bằng hàm ShellExcute() trong C++ Win32 API.
    15/09/2015 18/09/2020 3 phút đọc
    Mở File Và Đường Dẫn Bất Kỳ Với Phương Thức ShellExcute()

    Mở 1 file bằng 1 ứng dụng mặc định của hệ thống ví dụ như file ảnh với Windows Viewer hay file âm thanh với Windows Media Player, đặc biệt là đường dẫn web với trình duyệt mặc định là 1 trong những việc thường hay gặp trong phát triển phần mềm.

    Win32 API cung cấp 1 phương thức khá hay gọn gàng để thực hiện điều này, đó là ShellExecute().

    1 số nhu cầu cụ thể có thể sử dụng ShellExecute() là:

    • Mở trình duyệt web về trang web cần quảng bá khi cung cấp 1 ứng dụng miễn phí.
    • Mở file log cho user khi ứng dụng crash hoặc cần cung cấp thông tin thêm.
    • ...

    Sử dụng hàm ShellExecute()

    Để sử dụng ShellExecute() cần #include <Windows.h>, prototype của hàm có dạng như sau:

    ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);
    • hwnd: đại diện cho handle của cửa sổ window đang thao tác, có thể truyền NULL vào.
    • lpOperation: đại diện cho câu lện muốn thực thi dưới dạng 1 chuỗi:
      • "open": mở 1 file theo đường dẫn được cài đặt tại vế lpFile.
      • "explore": mở thư mục theo đường dẫn được cài đặt ở lpFile.
      • "edit": thử mở 1 file theo đường dẫn tại lpFile bằng 1 editor. Ví dụ với ảnh .bmp thì đó là Paint hay file text .txt thì đó là Notepad.
      • "find": mở công cụ tìm kiếm mặc định của hệ thống theo đường dẫn cài đặt tại lpDirectory.
      • "print": in file tài liệu được cài đặt tại lpFile. Nếu đường dẫn tại lpFile không phải là 1 file tài liệu (document) thì hàm này thực thi thất bại.
      • NULL: câu lệnh mặc định sẽ được sử dụng, nếu không thực thi được, câu lệnh "open" sẽ được sử dụng kế tiếp.
    • lpFile: đại diên cho đường dẫn muốn câu lệnh này thực thi, nó có thể là đường dẫn bất kỳ đến 1 file, 1 thư mục hay 1 trang web.
    • lpParameters: vế này nên được đặt là NULL.
    • lpDirectory: đường dẫn đến thư mục muốn dùng để tìm kiếm nếu câu lệnh lpOperation được gán là "find".
    • nShowCmd: 1 con số Command được định nghĩa nhằm ra lệnh cho hệ thống, các command thường dùng là:
      • SW_SHOWNORMAL: hiển thị cửa sổ ở mức bình thường.
      • SW_SHOWMAXIMIZED: hiển thị cửa sổ phóng lớn toàn màn hình.
      • SW_SHOWMINIMIZED: hiển thị cửa sổ được thu nhỏ ở dưới thanh taskbar.
      • SW_SHOW: hiển thị cửa sổ với kích thước mặc định.

    Code demo sử dụng ShellExecute()

    Giả sử có các file ở thư mục gốc của project và thư mục F:\NguyenPhan như sau:

    Mở file bằng ShellExecute()
    #include <Windows.h>
    
    int main()
    {
    	ShellExecute(NULL, "open", "image.png", NULL, NULL, SW_SHOWNORMAL);
    	ShellExecute(NULL, "edit", "image.png", NULL, NULL, SW_SHOWNORMAL);
    	ShellExecute(NULL, "edit", "F:/NguyenPhan/text.txt", NULL, NULL, SW_SHOWNORMAL);
    	ShellExecute(NULL, "open", "F:/NguyenPhan/", NULL, NULL, SW_SHOWNORMAL);
    	ShellExecute(NULL, "open", "https://www.stdio.vn/", NULL, NULL, SW_SHOWMAXIMIZED);
    
    	return 0;
    }

    Kết quả

    Mở file với ShellExecute()
    0 Bình luận
    Modern C++

    Modern C++

    STDIO Training - Đào Tạo Lập Trình C++.

    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021