سلام دوستان
کسی کدی داره که بوسیله اون بشه کامپیوتر رو خاموش کنه
درضمن میخوام این کار توی ویندوز 7 باشه نه تو xp
ممنون:46:
Printable View
سلام دوستان
کسی کدی داره که بوسیله اون بشه کامپیوتر رو خاموش کنه
درضمن میخوام این کار توی ویندوز 7 باشه نه تو xp
ممنون:46:
چرا اینجا خبری از فرترن نیست؟
فرترن دیگه چیه ؟!!! خوردنیه یا پوشیدنی؟!!!:blink:نقل قول:
دوست عزیز خواهشا نه اسپم کن و نه الکی مبحث رو کش بده :41:
اگه بلدی جواب بده
ثانیه شمار واسه شات رو میگی؟نقل قول:
يعني چي...؟؟؟ چه ربطي داشت...؟؟؟!!! :18:نقل قول:
عجب اسپمر هايي پيدا ميشن ها...!؟! هيچ كس هم نيست جمشون كنه...!؟! :13:
اگه مجبوريد فرترن رو ياد بگيريد... (مثلاً معلمي استادي كسي مجبورتون كرده...) كه هيچي...نقل قول:
چرا اینجا خبری از فرترن نیست؟
وگرنه...!؟! :31: (آخه فرترن هم شد زبان برنامه نويسي...؟؟؟!!! :2:)
سلام دوست عزيزم...!؟! :10:نقل قول:
سلام دوستان
کسی کدی داره که بوسیله اون بشه کامپیوتر رو خاموش کنه
درضمن میخوام این کار توی ویندوز 7 باشه نه تو xp
ممنون
ببين واسه اين كار چند تا راه وجود داره...!؟! :27:
يه راهش اينه كه خط فرمان رو باز كني... و دستور زير رو توش بنويسي...!؟! :
خب... حالا يه سري اطلاعات مياد كه ميتوني سويچ مورد نظرت رو (مثلاً سويچ shutdown) انتخاب كني... و فرمان مورد نظرت رو بنويسي...!؟! :20:کد:shutdown /?
مثلاً :
بعد هم كه فرمان رو نوشتي... اونو به صورت يه آرگومان به تابع Shell بفرستي تا اجرا بشه...!؟! :20:کد:براي خاموش كردن كامپيوتر :
shutdown / s
براي راه اندازي مجدد كامپيوتر :
shutdown / r
و براي خروج از حساب كاربر جاري :
shutdown / l
و...
البته اين راه... زياد حرفه اي نيست...!؟! :31:
راه درست اينه كه از توابع سيستمي استفاده كني...!؟! :27:
من خودم ويندوز 7 ندارم... و تست نكردم كه ببينم كار ميكنه يا نه...!؟! ولي اميدوارم كار كنه...!؟! :31: (تو يه سايت كه اينجوري نوشته بود...!؟! :13:)
تو XP واسه خاموش كردن كامپيوتر از تابع InitiateSystemShutdown از advapi32.dll ه... استفاده ميشه..!؟! :
بازم نميدونم تو سون هم كار ميكنه با نه...!؟! :13:کد:فراخواني ش به اين صورته...!؟! :
Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long
اينم يه سري اطلاعات راجع بهش...!؟! :
· lpMachineName
Points to the null-terminated string that specifies the network name of the computer to shut down. If lpMachineName is NULL or points to an empty string, the function shuts down the local computer.
· lpMessage
Points to a null-terminated string that specifies a message to display in the shutdown dialog box. This parameter can be NULL if no message is required.
· dwTimeout
Specifies the time (in seconds) that the dialog box should be displayed. While this dialog box is displayed, the shutdown can be stopped by the AbortSystemShutdown function.
If dwTimeout is not zero, InitiateSystemShutdown displays a dialog box on the specified computer. The dialog box displays the name of the user who called the function, displays the message specified by the lpMessage parameter, and prompts the user to log off. The dialog box beeps when it is created and remains on top of other windows in the system. The dialog box can be moved but not closed. A timer counts down the remaining time before a forced shutdown. If the user logs off, the system shuts down immediately. Otherwise, the computer is shut down when the timer expires.
If dwTimeout is zero, the computer shuts down without displaying the dialog box, and the shutdown cannot be stopped by AbortSystemShutdown.
· bForceAppsClosed
Specifies whether applications with unsaved changes are to be forcibly closed. If this parameter is TRUE, such applications are closed. If this parameter is FALSE, a dialog box is displayed prompting the user to close the applications.
· bRebootAfterShutdown
Specifies whether the computer is to restart immediately after shutting down. If this parameter is TRUE, the computer is to restart. If this parameter is FALSE, the system flushes all caches to disk, clears the screen, and displays a message indicating that it is safe to power down.
اينم يه سري اطلاعات اضافي از مرجع توابع سيستمي ماكروسافت...!؟! :
The InitiateSystemShutdown function initiates a shutdown and optional restart of the specified computer.
BOOL InitiateSystemShutdown(
LPTSTR lpMachineName, // address of name of computer to shut down
LPTSTR lpMessage, // address of message to display in dialog box
DWORD dwTimeout, // time to display dialog box
BOOL bForceAppsClosed, // force applications with unsaved changes flag
BOOL bRebootAfterShutdown // reboot flag
);
Parameters
lpMachineName
Points to the null-terminated string that specifies the network name of the computer to shut down. If lpMachineName is NULL or points to an empty string, the function shuts down the local computer.
lpMessage
Points to a null-terminated string that specifies a message to display in the shutdown dialog box. This parameter can be NULL if no message is required.
dwTimeout
Specifies the time (in seconds) that the dialog box should be displayed. While this dialog box is displayed, the shutdown can be stopped by the AbortSystemShutdown function.
If dwTimeout is not zero, InitiateSystemShutdown displays a dialog box on the specified computer. The dialog box displays the name of the user who called the function, displays the message specified by the lpMessage parameter, and prompts the user to log off. The dialog box beeps when it is created and remains on top of other windows in the system. The dialog box can be moved but not closed. A timer counts down the remaining time before a forced shutdown. If the user logs off, the system shuts down immediately. Otherwise, the computer is shut down when the timer expires.
If dwTimeout is zero, the computer shuts down without displaying the dialog box, and the shutdown cannot be stopped by AbortSystemShutdown.
bForceAppsClosed
Specifies whether applications with unsaved changes are to be forcibly closed. If this parameter is TRUE, such applications are closed. If this parameter is FALSE, a dialog box is displayed prompting the user to close the applications.
bRebootAfterShutdown
Specifies whether the computer is to restart immediately after shutting down. If this parameter is TRUE, the computer is to restart. If this parameter is FALSE, the system flushes all caches to disk, clears the screen, and displays a message indicating that it is safe to power down.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
To shut down the local computer, the calling process must have the SE_SHUTDOWN_NAME privilege. To shut down a remote computer, the calling process must have the SE_REMOTE_SHUTDOWN_NAME privilege on the remote computer. By default, users can enable the SE_SHUTDOWN_NAME privilege on the computer they are logged onto, and administrators can enable the SE_REMOTE_SHUTDOWN_NAME privilege on remote computers.
Common failures include an invalid or inaccessible computer name or insufficient privilege.
اگه مثال هم خواستي بگو تا برات بذارم...!؟!
ولي اميدوارم مشكلت حل شده باشه...!؟! :11:
موفق باشي...!؟! :46:
plus جان راه اول رو من به این صورت متوجه شدم:
Shell shutdown / s
که جواب نداد و گیر میده
راه دوم هم نفهمیدم
اگه بتونی مثال بذاری خیلی ازت ممنون میشم:40:
من که خیلی وقته راه اول رو تو ویندوز7 کار میکنم و جواب میده.
فکر کنم دستور رو بد نوشتی.برای ممثال این دستور سیستم رو بعد از 3 ثانیه خاموش میکنه:
shutdown -s -t 3
امیدوارم جواب بده:46:
دستور بالا رو بايد به اين صورت بازنويسي كني...!؟! :نقل قول:
و به جاي Command بايدفرمان مورد نظرت رو بنويسي...!؟! مثلاً :کد:Call Shell("Command")
البته اين فرمان واسه خاموش كردن ويندوز XP استفاده ميشه... واسه ويندوز سون رو نمي دونم.... بايد از دوستاني سون دارن بپرسي...!؟!کد:shutdown -s -f -t 0
وقتي دستور بالا بازنويسي كني... يه چيزي به اين صورت ميشه...!؟! :
كه وقتي اجرا ميشه... يه پنجره كنسول نمايش داده ميشه... و بعد كامپيوتر خاموش ميشه...!؟! اگه ميخواي اون پنجره مخفي باشه... مي توني دستور رو به اين شكل بنويسي...!؟! :کد:Call Shell("shutdown -s -f -t 0")
اگه بازم اطلاعاتي راجع به اين دستور خواستي... بگو تا بهت بگم...!؟! :20:کد:Call Shell("shutdown -s -f -t 0",vbHide)
روش دوم هم فكر نمي كنم تو سون كار كنه...!؟! (ولي شايد هم كار كنه... نمي دونم...!؟! :13:)
اين روش خيلي بهتره... ولي خب... مشكل تره...!؟! :20:
اين يه مثال از روش دوم...!؟! اگه كار كرد... بگو تا كامل برات توضيح بدم...!؟! :
موفق باشي...!؟! :46:کد:
' Shutdown Flags
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Const SE_PRIVILEGE_ENABLED = &H2
Const TokenPrivileges = 3
Const TOKEN_ASSIGN_PRIMARY = &H1
Const TOKEN_DUPLICATE = &H2
Const TOKEN_IMPERSONATE = &H4
Const TOKEN_QUERY = &H8
Const TOKEN_QUERY_SOURCE = &H10
Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_ADJUST_GROUPS = &H40
Const TOKEN_ADJUST_DEFAULT = &H80
Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"
Const ANYSIZE_ARRAY = 1
Private Type LARGE_INTEGER
lowpart As Long
highpart As Long
End Type
Private Type Luid
lowpart As Long
highpart As Long
End Type
Private Type LUID_AND_ATTRIBUTES
'pLuid As Luid
pLuid As LARGE_INTEGER
Attributes As Long
End Type
Private Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type
Private Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long
Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
Public Function InitiateShutdownMachine(ByVal Machine As String, Optional Force As Variant, Optional Restart As Variant, Optional AllowLocalShutdown As Variant, Optional Delay As Variant, Optional Message As Variant) As Boolean
Dim hProc As Long
Dim OldTokenStuff As TOKEN_PRIVILEGES
Dim OldTokenStuffLen As Long
Dim NewTokenStuff As TOKEN_PRIVILEGES
Dim NewTokenStuffLen As Long
Dim pSize As Long
If IsMissing(Force) Then Force = False
If IsMissing(Restart) Then Restart = True
If IsMissing(AllowLocalShutdown) Then AllowLocalShutdown = False
If IsMissing(Delay) Then Delay = 0
If IsMissing(Message) Then Message = ""
'Make sure the Machine-name doesn't start with '\\'
If InStr(Machine, "\\") = 1 Then
Machine = Right(Machine, Len(Machine) - 2)
End If
'check if it's the local machine that's going to be shutdown
If (LCase(GetMyMachineName) = LCase(Machine)) Then
'may we shut this computer down?
If AllowLocalShutdown = False Then Exit Function
'open access token
If OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hProc) = 0 Then
MsgBox "OpenProcessToken Error: " & GetLastError()
Exit Function
End If
'retrieve the locally unique identifier to represent the Shutdown-privilege name
If LookupPrivilegeValue(vbNullString, SE_SHUTDOWN_NAME, OldTokenStuff.Privileges(0).pLuid) = 0 Then
MsgBox "LookupPrivilegeValue Error: " & GetLastError()
Exit Function
End If
NewTokenStuff = OldTokenStuff
NewTokenStuff.PrivilegeCount = 1
NewTokenStuff.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
NewTokenStuffLen = Len(NewTokenStuff)
pSize = Len(NewTokenStuff)
'Enable shutdown-privilege
If AdjustTokenPrivileges(hProc, False, NewTokenStuff, NewTokenStuffLen, OldTokenStuff, OldTokenStuffLen) = 0 Then
MsgBox "AdjustTokenPrivileges Error: " & GetLastError()
Exit Function
End If
'initiate the system shutdown
If InitiateSystemShutdown("\\" & Machine, Message, Delay, Force, Restart) = 0 Then
Exit Function
End If
NewTokenStuff.Privileges(0).Attributes = 0
'Disable shutdown-privilege
If AdjustTokenPrivileges(hProc, False, NewTokenStuff, Len(NewTokenStuff), OldTokenStuff, Len(OldTokenStuff)) = 0 Then
Exit Function
End If
Else
'initiate the system shutdown
If InitiateSystemShutdown("\\" & Machine, Message, Delay, Force, Restart) = 0 Then
Exit Function
End If
End If
InitiateShutdownMachine = True
End Function
Function GetMyMachineName() As String
Dim sLen As Long
'create a buffer
GetMyMachineName = Space(100)
sLen = 100
'retrieve the computer name
If GetComputerName(GetMyMachineName, sLen) Then
GetMyMachineName = Left(GetMyMachineName, sLen)
End If
End Function
Private Sub Form_Load()
InitiateShutdownMachine GetMyMachineName, True, True, True, 60, "You initiated a system shutdown..."
End Sub
'منبع : API-Guide'
ببخشید من چه اسپمی دادم آقای plus??????????????????
الان اون کدی گه گفتین ثانیه شمار برای شات داون یا رستارت یا لوگ آف نیست؟
حالا بستگی داره -s واسه شات داون -r برای رستارت
ممنون که پستای همرو اسپم فرض میکنی.
موفق باشی.
ببخشيد... من منظور شما رو درست متوجه نشده بودم...!؟! :41:نقل قول:
حالا از شما عذرخواهي مي كنم... اميدوارم كه منو ببخشيد...!؟! :11: