نوشته شده توسط
vertionality
سلام
یک فایل exe دارم ، 2 ورودی دارد . چه جوری می تونم یک کد ++c بنویسم که هر وقت خواستم فایل exe را با ورودی های دلخواه
از طریق کد اجرا کنم بعد خروجی هایش را برگردونم ؟
اگر ورودی خروجی هم نبود اشکال ندارد فقط چه جوری باید از طریق کد ، دستور اجرای فایل exe را بدیم به صورت hidden .
ممنون
#include <windows.h>
using namespace std;
int main()
{
system ("start C:\\Users\\Folder\\chrome.exe https://www.google.com"); ..
return 0;
}
البته فقط در ویندوز و ویژوال استودیو قابل استفاده است.
البته استفاده از این روش از نظر امنیت بسیار ضعیف هست! به راحتی می تونه برنامه شما را قابل هک کردن کنه ویا حتی آنتی ویروس ها هم میتونن به عنوان یک فایل مخرب شناسایی کنن!
روش دیگه خیلی امنتر و بهتر است...
#include <windows.h>
VOID startup(LPCTSTR lpApplicationName)
{
// additional information
STARTUPINFO si;
PROCESS_INFORMATION pi;
// set the size of the structures
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// start the program up
CreateProcess( lpApplicationName, // the path
argv[1], // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi // Pointer to PROCESS_INFORMATION structure (removed extra parentheses)
);
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
البته این روش هم باز در ویندوز و ویژوال استودیو قابل استفاده است.
در این روش هم سعی کنید برای امنیت بیشتر مقدار پارامتر lpApplicationName را null ست نکنید اگر هم خواستید که null ست کنید حتما در رشته ای که در پارامتر دوم به عنوان آرگومان خط فرمان برای نام برنامه وارد میکنید حتما نام فایل را در دابل کوتیشن قرار بدید.
و این روش هم هست...
#include <iostream>
#include <windows.h>
int main() {
ShellExecute(NULL, "open", "path\\to\\file.exe", NULL, NULL, SW_SHOWDEFAULT);
}