Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Hỏi về Hàm API trong C#

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    66

    Wink Hỏi về Hàm API trong C#

    Mình đang viết một chương trình View Image đơn giản. Việc xem ảnh đã hoàn thành, nay mình muốn khi người dùng click_RightMouse thì hiện ra ContextMenuStrip và cho tùy chọn:
    - Set as Background.
    (Chức này mình đã dùng hàm API systemParameterInfo để set background nhưng ngoài file bmp thì toàn thấy màn hình màu xanh thôi.)
    - Mở file ảnh bằng Paint.
    (Chỉ biết cách mở chương trình Pain nhưng không biết mở Paint + File)
    Tuy nhiên mình không biết dùng hàm API nào. Bạn nào biết xin chỉ giùm (ghi rõ ý nghĩa tham số nếu có nhé)
    Cám ơn nhiều.

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Trích dẫn Nguyên bản được gửi bởi thuchobiet Xem bài viết
    Mình đang viết một chương trình View Image đơn giản. Việc xem ảnh đã hoàn thành, nay mình muốn khi người dùng click_RightMouse thì hiện ra ContextMenuStrip và cho tùy chọn:
    - Set as Background.
    (Chức này mình đã dùng hàm API systemParameterInfo để set background nhưng ngoài file bmp thì toàn thấy màn hình màu xanh thôi.)
    - Mở file ảnh bằng Paint.
    (Chỉ biết cách mở chương trình Pain nhưng không biết mở Paint + File)
    Tuy nhiên mình không biết dùng hàm API nào. Bạn nào biết xin chỉ giùm (ghi rõ ý nghĩa tham số nếu có nhé)
    Cám ơn nhiều.
    Mở Paint + File : thì dùng ShellExecute đi :
    C++ Code:
    1. #include <windows.h>
    2.  
    3. int main ()
    4. {
    5.     ShellExecute(NULL,"Open","mspaint.exe","C:\\0000.jpg",NULL,SW_SHOWNORMAL);
    6.     return 0;
    7. }

    Change Wallpaper thì dùng IActiveDesktop đi .

  3. #3
    Ngày gia nhập
    10 2007
    Bài viết
    66

    Để mình thử xem sao
    Thank trước.

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    66

    Sao khi tui về thử thì thấy như sao:
    - IActiveDesktop : tui không thể tìm thấy trong MSDN (đang dùng Visual Studio 2005 c#)
    => nếu có dùng COM thì xin chỉ dùm là COM nào. Thank.

    - ShellExecute : đã sử dụng nhưng chỉ mở được với đường dẫn file không có ký tự trắng '[space]'. Với đường dẫn có khoảng trắng thì phần sau khoảng trắng bị bỏ đi -> sai đường dẫn.
    => xin chỉ cách khắc phục. Thank.

  5. #5
    Ngày gia nhập
    10 2007
    Bài viết
    66

    Giờ mình đã khắc phục được việc Set as Background.
    Cảm ơn đã góp ý.

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Mặc định Hỏi về Hàm API trong C#

    Trích dẫn Nguyên bản được gửi bởi thuchobiet Xem bài viết
    - ShellExecute : đã sử dụng nhưng chỉ mở được với đường dẫn file không có ký tự trắng '[space]'. Với đường dẫn có khoảng trắng thì phần sau khoảng trắng bị bỏ đi -> sai đường dẫn.
    => xin chỉ cách khắc phục. Thank.
    Bọc lại đường dẫn tới file bằng quote : "\"file_path\""
    Ví dụ :
    C++ Code:
    1. #include <windows.h>
    2.  
    3. int main ()
    4. {
    5.     char szFileName[_MAX_PATH + 1] = "\"F:\\App Workspace\\IMG_3098.jpg\"";
    6.     ShellExecuteA(NULL,"Open","mspaint.exe",szFileName,NULL,SW_SHOWNORMAL);
    7.     return 0;
    8. }
    Đã được chỉnh sửa lần cuối bởi Tab : 22-07-2008 lúc 06:07 AM.

  7. #7
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Để mở file thì trong C# cậu dùng cái này: ProcessStartInfo
    Ví dụ nhé:
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = @"filename";
    startInfo.UseShellExecute = false;
    Process process = new Process();
    process.StartInfo = startInfo;
    process.start();

    Tớ nhớ thế cậu coi lại thử. Học C# thì cũng ko quá phụ thuộc vào API đâu.

  8. #8
    Ngày gia nhập
    10 2007
    Bài viết
    66

    Hiện giờ mình đã hoàn thành xong 2 chức năng trên.
    Cảm ơn đã nhiệt tình giúp đỡ. Thank all

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn