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

Đề tài: Kiểm tra 1 process có dang được chạy hay không

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    328

    Mặc định Kiểm tra 1 process có dang được chạy hay không

    Visual C++ Code:
    1. #include<stdafx.h>
    2. #include<windows.h>
    3. #include<iostream>
    4. #include <tlhelp32.h>
    5. char *laytenprocess(char *duongdan)
    6. {
    7.     char odia[10],thumuc[20],tenfile[10],loaifile[10];
    8.     _splitpath(duongdan,odia,thumuc,tenfile,loaifile);
    9.     lstrcat(tenfile,loaifile);
    10.     return tenfile;
    11. }
    12. char hoa(char q)
    13. {
    14.     if (q >= 'a' && q<= 'z')
    15.     {
    16.         return q - 32;
    17.     }
    18.     else
    19.     {
    20.         return q;
    21.     }
    22. } //hoa
    23. LPSTR chuyenhoa(LPSTR chuoi)
    24. {
    25.     int n= lstrlenW(chuoi);
    26.     int i;
    27.     for(i=0;i<n;i++)
    28.     {
    29.          chuoi[i] = hoa(chuoi[i]); 
    30.     }
    31.     return chuoi;
    32. }
    33. DWORD FindProcess(LPSTR procname)
    34. {
    35.     HANDLE hProcessSnap;
    36.     PROCESSENTRY32 pe32;
    37.     LPSTR ps, pCurChar;
    38.     LPSTR fname;
    39.     // chuyê?n tên file tha?nh ch?? hoa
    40.     lstrcpy(fname,procname);
    41.     fname = chuyenhoa(fname);
    42.     // Chu?p snapshot ch??a tâ?t ca? process hiê?n ha?nh.
    43.     hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    44.     if (hProcessSnap == (HANDLE)-1) return 0;
    45.     // Duyê?t danh sa?ch va? ti?m process mong muô?n.
    46.     pe32.dwSize = sizeof(PROCESSENTRY32);
    47.     if (Process32First(hProcessSnap, &pe32)) do {
    48.        // ta?ch tên file ra kho?i pathname
    49.      lstrcpyw(pCurChar,laytenprocess(pe32.szExeFile))
    50.   // chuyê?n tha?nh ch?? hoa tên file
    51.   for (ps = ++pCurChar; *ps != 0; ps++)
    52.         *ps = toupper(*ps);
    53.   // so sa?nh tên file
    54.   if (strcmp(fname,pCurChar)==0) {
    55.       CloseHandle (hProcessSnap);
    56.       return pe32.th32ProcessID;
    57.       }
    58.     } while (Process32Next(hProcessSnap, &pe32));
    59.     // ?o?ng handle miêu ta? danh sa?ch process
    60.     CloseHandle (hProcessSnap);
    61.     return 0;
    62. }
    63. int _tmain(int argc, _TCHAR* argv[])
    64. {
    65.     LPSTR ten;
    66.     std::cin.getline(ten,100);
    67.     FindProcess(ten);
    68.     return 0;
    69. }


    tôi đang làm 1 bài tập kiểm tra xem 1 process có đang được chạy hay không,nhưng có bug,mọi người giúp đỡ nhé,ý tưởng trên tôi đã ghi rỗ,tôi dịch bằng VC++2008
    không hiểu sao với VC++6 tôi không thể địch dược nó báo sai cái PROCESSENTRY32 pe32;


    đây là báo lỗi

    Output Code:
    1. 1>------ Build started: Project: dfh, Configuration: Debug Win32 ------
    2. 1>Compiling...
    3. 1>dfh.cpp
    4. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(9) : warning C4996: '_splitpath': This function or variable may be unsafe. Consider using _splitpath_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    5. 1>        c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(786) : see declaration of '_splitpath'
    6. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(10) : error C2664: 'lstrcatW' : cannot convert parameter 1 from 'char [10]' to 'LPWSTR'
    7. 1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    8. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(11) : warning C4172: returning address of local variable or temporary
    9. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(26) : error C2664: 'lstrlenW' : cannot convert parameter 1 from 'LPSTR' to 'LPCWSTR'
    10. 1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    11. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(41) : error C2664: 'lstrcpyW' : cannot convert parameter 1 from 'LPSTR' to 'LPWSTR'
    12. 1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    13. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(50) : error C2664: 'laytenprocess' : cannot convert parameter 1 from 'WCHAR [260]' to 'char *'
    14. 1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    15. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(52) : error C2143: syntax error : missing ';' before 'for'
    16. 1>c:\documents and settings\sontuyen\my documents\visual studio 2008\projects\dfh\dfh\dfh.cpp(50) : error C3861: 'lstrcpyw': identifier not found
    17. 1>Build log was saved at "file://c:\Documents and Settings\sontuyen\My Documents\Visual Studio 2008\Projects\dfh\dfh\Debug\BuildLog.htm"
    18. 1>dfh - 6 error(s), 2 warning(s)
    19. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    tôi không hiểu tại sao nó lại báo lỗi các hàm lstrcpy hay lstrcat....đây là những hàm hợp lệ mà
    Đã được chỉnh sửa lần cuối bởi trần trân : 04-11-2008 lúc 10:49 AM.

  2. #2
    Ngày gia nhập
    09 2008
    Bài viết
    328

    còn đây là project tôi đã up lên diễn đàn,mong được sự giúp đỡ
    Attached Files Attached Files

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình đã sửa rồi đây, bạn paste code này đè lên code trong file meomeo.cpp nha.

    C++ Code:
    1. #include "stdafx.h"
    2.  
    3. #include<windows.h>
    4. #include<iostream>
    5. #include <tlhelp32.h>
    6.  
    7. TCHAR hoa(TCHAR q)
    8. {
    9.     if (q >= 'a' && q<= 'z')
    10.     {
    11.         return (q - ' ');
    12.     }
    13.     else
    14.     {
    15.         return q;
    16.     }
    17. } //hoa
    18. TCHAR *chuyenhoa(TCHAR *chuoi)
    19. {
    20.     int n= lstrlenW(chuoi);
    21.     int i;
    22.     for(i=0;i<n;i++)
    23.     {
    24.          chuoi[i] = hoa(chuoi[i]); 
    25.     }
    26.     return chuoi;
    27. }
    28. DWORD FindProcess(TCHAR *procname)
    29. {
    30.     HANDLE hProcessSnap;
    31.     PROCESSENTRY32 pe32;
    32.     TCHAR fname[100];
    33.  
    34.     lstrcpy(fname,procname);
    35.     chuyenhoa(fname);
    36.  
    37.     hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    38.     if (hProcessSnap == (HANDLE)-1)
    39.         return 0;
    40.    
    41.     pe32.dwSize = sizeof(PROCESSENTRY32);
    42.     if (Process32First(hProcessSnap, &pe32))
    43.     {
    44.         do
    45.         {
    46.             chuyenhoa(pe32.szExeFile);
    47.             if (lstrcmp(fname,pe32.szExeFile) == 0 )
    48.             {
    49.                 CloseHandle (hProcessSnap);
    50.                 return pe32.th32ProcessID;
    51.             }
    52.         }
    53.         while (Process32Next(hProcessSnap, &pe32));
    54.     }
    55.  
    56.     CloseHandle (hProcessSnap);
    57.     return 0;
    58. }
    59.  
    60.  
    61. int _tmain(int argc, _TCHAR* argv[])
    62. {
    63.     char ten[100];
    64.     TCHAR tten[100];
    65.  
    66.     std::cin.getline(ten,100);
    67.     for (int i=0;i<100;i++)
    68.         tten[i] = ten[i];
    69.  
    70.     DWORD pid = FindProcess(tten);
    71.     return 0;
    72. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. Kiểm tra một Ứng dụng, Chương trình nào đó có Chạy hay không (Không dùng Process Name)
    Gửi bởi hoanganhcuong87 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 20-03-2012, 09:51 PM
  2. Chặn thông điệp đến process khác?
    Gửi bởi zeroplus trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 13-07-2011, 07:43 AM
  3. Mắc lỗi với process, khi chạy chương trình
    Gửi bởi tuanvu199x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 05-12-2010, 08:36 AM
  4. Kiểm tra Process đang chạy là win32 hay 64 ?
    Gửi bởi bkavPro trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 1
    Bài viết cuối: 16-11-2010, 03:25 PM
  5. Chạy một process
    Gửi bởi daivuongtiep trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 05-05-2008, 03:20 PM

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