დიდი ვერაფერი,დროის გაყვანის მიზნით გავაკეთე:
ქმნის ახალ პროცესს. გამოაქვს ახალი პროცესის PID,პროცესის და სრედის handle და TID(Thread id)
გამოვიყენე მარტივი WinAPI ფუნქცია: CreateProcess();
ცოტა C++ და Qt.

» სპოილერის ნახვისთვის დააწკაპუნეთ აქ «
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowTitle("Process Creator");
setWindowIcon(QIcon(":/mainicon.ico"));
ui->pushButton_createprocess->setDisabled(true);
ui->pushButton_Clear->setDisabled(true);
connect(ui->pushButton_createprocess,SIGNAL(clicked()),this,SLOT(createprocess()));
connect(ui->lineEdit,SIGNAL(textChanged(QString)),this,SLOT(lineEditChanged()));
connect(ui->pushButton_Clear,SIGNAL(clicked()),ui->lineEdit,SLOT(clear()));
setFixedSize(size());
}
Widget::~Widget()
{
delete ui;
}
void Widget::createprocess()
{
QString ImageToExecute = ui->lineEdit->text();
std::wstring imagetoexecute = ImageToExecute.toStdWString();
const wchar_t *name = imagetoexecute.c_str();
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
BOOL success = CreateProcess(name,0,nullptr,nullptr,FALSE,0,nullptr,nullptr,&si,&pi);
if(success){
DWORD processId = pi.dwProcessId;
unsigned long PID = processId;
unsigned long TID = pi.dwThreadId;
HANDLE processh = pi.hProcess;
HANDLE threadh = pi.hThread;
ui->label_processid->setText(QString::number(PID));
ui->label_processhandle->setText( QString("0x") + QString("%1").arg(((int)processh),0,16));
ui->label_threadhandle->setText(( QString("0x") + QString("%1").arg(((int)threadh),0,16)));
ui->label_threadid->setText(QString::number(TID));
}else
QMessageBox::warning(this,"Error",tr("Can't create process: %1").arg(ImageToExecute));
}
void Widget::lineEditChanged()
{
if(ui->lineEdit->text().isEmpty()){
ui->pushButton_createprocess->setDisabled(true);
ui->pushButton_Clear->setDisabled(true);
}else{
ui->pushButton_createprocess->setEnabled(true);
ui->pushButton_Clear->setEnabled(true);
}
}
https://www.dropbox.com/s/5tn6i1ls3d4zwjz/P...master.zip?dl=0 This post has been edited by Shredinger on 25 Sep 2014, 03:46