Function FileExist(FileName As String)
On Error Goto 1
Open FileName For Input As 1
Close 1
FileExist = 1
Exit Function
1
FileExist = 0
Close 1
End Function
Выключение компьютера
И ещё, раз уж начал задавать вопросы, то как проверить, есть ли такой файл по его адресу?
Код:
Возвращает 1 если файл существует.
Выключение\перезагрузка компа:
Код:
Dim strComputer 'As String
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, (Shutdown)}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery( _
"Select * from Win32_OperatingSystem")
For Each ObjOperatingSystem In colOperatingSystems
'ObjOperatingSystem.Reboot ' Для перезагрузки
ObjOperatingSystem.ShutDown 'Для выключения
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, (Shutdown)}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery( _
"Select * from Win32_OperatingSystem")
For Each ObjOperatingSystem In colOperatingSystems
'ObjOperatingSystem.Reboot ' Для перезагрузки
ObjOperatingSystem.ShutDown 'Для выключения
Next
Спасибо большое :)
' пытается получить исключительный доступ к существующему файлу
' если неполучается или файл не существует - выдает FALSE
' использовать можно свободно
' Алексей Ширяев, [email]lombard@mail.ru[/email], http://lombard.narod.ru, 2003
' ************************************************************************************
Public Const OPEN_EXISTING = 3
Public Const FILE_ATTRIBUTE_NORMAL = &H80&
Private Declare Function CreateFile Lib "kernel32" _
Alias "CreateFileA" _
(ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long
Public Function IsFreeFile(ByVal sLongFileName As String) As Boolean
Dim hfile As Long
IsFreeFile = False
hfile = CreateFile(sLongFileName, 0, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
If hfile <> -1 Then
IsFreeFile = True
End If
CloseHandle hfile
End Function
ace lighting, вариант Bard'а проще, тем более, что оттуда можно половину убрать, ведь мне нужно выполнить действие, если файла нет. Другое дело, какой код будет работать быстрее после компиляции...
Есть такая прграмма, называется PowerMan, которая может включать, выключать и перезагружать комп и еще много чего умеет!!!:)
ну я просто предложил:)
А Shell комманда типа Shutduwn не подходит?
Она, вроде, в XP не работает
Почему? Очень даже работает.
Но, правда, есть еще и API для этих целей, тока я его не помню, ибо встречал когда ненужно было.
Список ключей смотреть в сеансе DOS'а по команде shutdown.exe /?
До остального додумаешься сам.
[QUOTE=RSI]В XP можно: Shell Environ("windir") \ system32 \ shutdown.exe[/QUOTE]
:]|||||[:
открыть for append и проверить длину (LOF).
но это правда для read-only устройств не подойдёт
Так ведь for append создаёт файл, а мне это не надо было.