الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل إغلاق الجهاز من الويندوز ممنوع ؟؟ + مشكل

بدأه Prof.Nawaf في 28 يوليو 2008 · 11 رد · 1,206 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

س: كيف أستطيع أن أعيد تشغيل الجهاز من الـسي؟

حيث أنني جربت الدالة

system

مرات عدة ... ولكن لا أدري لماذا لا تعمل :wacko:

س:من ناحية عرض الوقت والتاريخ في السي .. أنا أريد أن اعرضها كأرقام

من نوع

int

وليس كسلاسل نصية .. والسبب أنني أريد عمل عمليات حسابية عليها ..

شاكر لكم ...

نواف ,,,

#2

بالنسبة لأغلاق الجهاز أستخدم الدالة هذا كود لدالة وادرج windows.h

  1.  
  2. BOOL MySystemShutdown()
  3. {
  4. HANDLE hToken;
  5. TOKEN_PRIVILEGES tkp;
  6.  
  7. // Get a token for this process.
  8.  
  9. if (!OpenProcessToken(GetCurrentProcess(),
  10. TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
  11. return( FALSE );
  12.  
  13. // Get the LUID for the shutdown privilege.
  14.  
  15. LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
  16. &tkp.Privileges[0].Luid);
  17.  
  18. tkp.PrivilegeCount = 1; // one privilege to set
  19. tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  20.  
  21. // Get the shutdown privilege for this process.
  22.  
  23. AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
  24. (PTOKEN_PRIVILEGES)NULL, 0);
  25.  
  26. if (GetLastError() != ERROR_SUCCESS)
  27. return FALSE;
  28.  
  29. // Shut down the system and force all applications to close.
  30.  
  31. if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,
  32. SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
  33. SHTDN_REASON_MINOR_UPGRADE |
  34. SHTDN_REASON_FLAG_PLANNED))
  35. return FALSE;
  36.  
  37. return TRUE;
  38. }
  39.  
  40.  
  41.  

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 28 يوليو 2008 في 22:17

tvquran_6.gif

#3

بالنسبة للوقت اليك هذا الكود

  1.  
  2. #include <iostream>
  3. #include <time.h>
  4.  
  5. int main ()
  6. {
  7. time_t rawtime;
  8. struct tm * timeinfo;
  9. time ( &rawtime );
  10. timeinfo = localtime ( &rawtime );
  11.  
  12. std::cout << 1900+timeinfo->tm_year <<std::endl;
  13. std::cout << timeinfo->tm_mon+1 <<std::endl;
  14. std::cout << timeinfo->tm_mday <<std::endl;
  15. std::cout << timeinfo->tm_hour <<std::endl;
  16. std::cout << timeinfo->tm_min <<std::endl;
  17. std::cout << timeinfo->tm_sec <<std::endl;
  18. getchar();
  19. return 0;
  20. }
  21.  
  22.  
  23.  

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 28 يوليو 2008 في 22:17

tvquran_6.gif

#4

أشكرك أخي فهد على تفاعلك ولكني أبرمج في لغة السي ..

نواف ,,,

#5

جرب هذا بالنسبة للاغلاق

  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.  
  10. system("SHUTDOWN -s");
  11. return EXIT_SUCCESS;
  12. }
  13.  
  14.  
  15.  

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 28 يوليو 2008 في 22:19

tvquran_6.gif

#6

أخي الكريم فهد الشلوي...@

,.,.,.,.,.,.,.

بخصوص صندوق الشيفرة Gcode حاول ان تستعمل الطابع cpp مش php..لاحظ كيف صارت Namspace ذات حرف ابتدائي كبير!!! بالرغم انت مو كاتبها هيك

:happy:

يعني كالتالي:

[Gcode = cpp ]

انت عامل كالتالي:

[Gcode = php]

ولهذا السبب صارت هناك اخطاء جسيمة في الشيفرة

,,.,,.,.,,,,,,,.,.

شاكرة لك جهودك بالقسم

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#7

تم التعديل و شكرا للتنبيه.

tvquran_6.gif

#8

طيب هذا الطلب يمكن يكون معجزة ولكن انا في وضع حرج ولا أملك الوقت اللازم للبحث عن أي مترجمات أخرى

لدي miracle c و TC كمترجمات للسي في جهازي ... عندما بحثت عن أمر إخراج الـCD eject

وجدتها لا تنفذ في مترجماتي ...

فما الحل؟

نواف ,,,

#9

أولا هل عملت الاكواد السابقة معك؟

tvquran_6.gif

#10

ايه نعم ... واستفدت منها في أوامر أخرى

ولكن أنتظر أمر الإخراج ..

نواف ,,,

#11

هناك لبس بالموضوع اخي الكريم...ولكن حاول المرة الجية لو تكرمت من عدم وضع سؤالين بمشاركة وحدة..فضلاً لا امراً اخي الكريم.

,.,.,.,.,.,.,.,.,.,.,.

آسفة لإهمالي للموضوع.

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#12
Prof.Nawaf كتب:
لدي miracle c و TC كمترجمات للسي في جهازي ... عندما بحثت عن أمر إخراج الـCD eject

وجدتها لا تنفذ في مترجماتي ...

فما الحل؟

نواف ,,,

اقرا التالي

http://forums.microsoft.com/msdn/ShowPost....99&SiteID=1

و بما أنه ليس لدي الوقت اللازم كما قلت

هناك نصف حل (دمج الـ C بالـ VBS كل هذا باستعمال أمر System واحد -كنت قد عملتها من قبل من أجل إدخال و إخراج الـ CD باستعمال نافذة Run فقط-)

cmd /c echo Set p = CreateObject("WMPlayer.OCX.7") >c:\c.vbs && cmd /c echo Set s = p.cdromCollection >>c:\c.vbs && cmd /c echo s.Item(0).Eject >>c:\c.vbs && cmd /c echo s.Item(0).Eject >>c:\c.vbs &&cmd /c echo WScript.Quit >>c:\c.vbs && c:\c.vbs

أي أكتب

SYSTEM("echo Set p = CreateObject("WMPlayer.OCX.7") >c:\c.vbs && cmd /c echo Set s = p.cdromCollection >>c:\c.vbs && cmd /c echo s.Item(0).Eject >>c:\c.vbs && cmd /c echo s.Item(0).Eject >>c:\c.vbs &&cmd /c echo WScript.Quit >>c:\c.vbs && c:\c.vbs");

مواضيع مشابهة