30/09/2018, 19:40

Mở chương trình Calculator hoặc Paint bằng ngôn ngữ C/C++!

Hiện tại mình có 1 bài tập bắt phải viết code để chạy được ứng dụng Calculator hoặc Paint bằng C hoặc C++ ! Nhưng mình không biết phải làm thế nào lên mạng thì kiếm không thấy ! Vì kiến thức program của mình khá kém nên không thể tự viết được ! Mong mọi người giúp đỡ và hướng dẫn giùm mình ! Thanks nhiều @@!

yoyo viết 21:51 ngày 30/09/2018

Nếu trên windows, dùng hàm system() để run chương trình, việc còn lại là bạn tự tìm xem chương trình paint hay cal nằm ở đâu để gọi.

Quốc Hùng viết 21:46 ngày 30/09/2018

chương trình paint và calculator được đặt mặc định trong thư mục C:\Windows\System32\ với tên lần lượt là mspaint.exe và calc.exe (dùng run test thử) sau đó dùng hàm system() để run như bạn @yoyo đã nói :))

Nguyễn Hoàng Trung viết 21:50 ngày 30/09/2018
stackoverflow.com
S.Y

How do I open an .exe from another C++ .exe?

c++, exe
asked by S.Y on 03:19PM - 15 Mar 13

Theo như em biết thì không nên dùng mấy hàm system() , còn lý do vì sao thì link dưới có giải thích :
http://www.cplusplus.com/forum/articles/11153/

yoyo viết 21:43 ngày 30/09/2018

Cám ơn bạn @hoangtrung1999 đóng góp, cá nhân mình nghĩ hàm gì cũng có ưu nhược điểm của nó, hiểu rõ chức năng của hàm và bản thân mình cần gì thì sẽ dùng đúng, chứ nếu một hàm hệ thống mà không nên dùng thì đã bị khai tử từ lâu.

Kent Vn viết 21:45 ngày 30/09/2018

Cảm ơn mọi người ! Nhưng kiến thức viết code của mình khá kém ! Bài của mình là yêu cầu viết code khi chạy nó tự động mở 3 lần calculator + 3 lần paint ! Nhưng mình mở thì chỉ chạy x3 calcu hoặc x3 paint thôi ! ko chạy 1 lần 2 cái đc ! các bạn có thể sửa giúp mình đc ko ?

Kent Vn viết 21:49 ngày 30/09/2018

// Open Paint or Calculator !.cpp : Defines the entry point for the console application.
//

#include “stdafx.h”
#include <windows.h>
#include

using namespace std;
int main(int argc, char* argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
char* path = new char;
path = “c:/windows/system32/calc.exe”;
char* path2 = new char;
path2 = “c:/windows/system32/mspaint.exe”;

//c:/windows/system32/calc.exe 
int k = 0; 
int command;
do 
{ 
	
	
	LPCSTR char_ = path;

	LPWSTR res; 
	DWORD res_len = MultiByteToWideChar(1251, 0, char_, -1, NULL, 0); 
	res = (LPWSTR)GlobalAlloc(GPTR, (res_len + 1) * sizeof(WCHAR)); 
	MultiByteToWideChar(1251, 0, char_, -1, res, res_len); 
	for (int i = 0;i < 3;i++) {
		if (!CreateProcess(NULL, res, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
			cout << "Directory haven't found: " << path << endl << endl;
		else {
			cout << "Process is running: " << path << endl << endl;
			
			k = 1;
		}
		// Close process and thread handles. 
		CloseHandle(pi.hProcess);
		CloseHandle(pi.hThread);

	}
}
while(k!=1); 

}

Kent Vn viết 21:48 ngày 30/09/2018

đây là code của mình ! các bạn xem rồi chỉnh sửa giúp mình với nhé @@!

Bài liên quan
0