powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Траблы с отключением компа
10 сообщений из 10, страница 1 из 1
Траблы с отключением компа
    #34340001
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, подскажите пожалуйта, программа выполняет копирование папки с одного компьютера на другой, а потом отключает комп:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub ShutDown()
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.ShutDown Next
End Sub
пути "откуда-куда копировать" прописываются в реестре, иногда всё проходит нормально, а иногда компьютер не отключается, посмотрел в журнале событий там:

Реестр пользователя HOST\USER был сохранен в то время, как приложение или служба продолжали использовать его во время выхода из системы. Используемая реестром пользователя память не была освобождена. Реестр будет выгружен, когда он не будет использоваться.
Возможная причина - службы, выполняемые от имени пользователя. Попробуйте изменить настройку служб и задать их выполнение с учетными записями LocalService или NetworkService.

или

Реестр пользователя HOST\USER был сохранен в то время, как приложение или служба продолжали использовать его во время выхода из системы. Используемая реестром пользователя память не была освобождена. Реестр будет выгружен, когда он не будет использоваться.

Возможная причина - службы, выполняемые от имени пользователя. Попробуйте изменить настройку служб и задать их выполнение с учетными записями LocalService или NetworkService.

Это типа код проверки вся ля папка скопировалась
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub TimerOFF_Timer()
Dim fso As New FileSystemObject
path_out = getstring(HKEY_CURRENT_USER, "SOFTWARE\Base_copy", "path_out")
path_in = getstring(HKEY_CURRENT_USER, "SOFTWARE\Base_copy", "path_in")
out = fso.GetFolder(path_out).Size
dopstr = StrReverse(extractelementR(path_out,  2 , "\")) & "\"
If Len(dopstr) =  1  Then dopstr = ""
inn = fso.GetFolder(path_in & "\" & dopstr).Size
If out = inn Then
TimerOFF.Enabled = False
ShutDown
Else
Exit Sub
End If
End Sub
подскажите как быть
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34340018
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, это поможет .
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34340535
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После проверки реестра может быть поставить несколько DoEvents'ов или что-то вроде этого
или getstring эта что за функция из API? WMI? или...?
Попробуйте другими средствами делать запись-чтение реестра
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34340596
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Public Function getstring(Hkey As Long, strPath As String, strValue As String)
Dim keyhand As Long
Dim datatype As Long
Dim lResult As Long
Dim strBuf As String
Dim lDataBufSize As Long
Dim intZeroPos As Integer
r = RegOpenKey(Hkey, strPath, keyhand)
lResult = RegQueryValueEx(keyhand, strValue,  0 &, lValueType, ByVal  0 &, lDataBufSize)
If lValueType = REG_SZ Then
    strBuf = String(lDataBufSize, " ")
    lResult = RegQueryValueEx(keyhand, strValue,  0 &,  0 &, ByVal strBuf, lDataBufSize)
    If lResult = ERROR_SUCCESS Then
        intZeroPos = InStr(strBuf, Chr$( 0 ))
        If intZeroPos >  0  Then
            getstring = Left$(strBuf, intZeroPos -  1 )
        Else
            getstring = strBuf
        End If
    End If
End If
RegCloseKey keyhand
End Function
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34340784
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim
Код: plaintext
1.
RegCloseKey keyhand

Попробуйте после этой строки сделать паузу или DoEvents
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34340835
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, спасибо
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34342666
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось?
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34342792
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет не получилось, заплатку поставил, DoEvents прописал везде, но результат тот же т.е. комп не отключился и в журнале событьй ничего нет.
Подскажите, пожалуйста, есть ли ещё какой либо способ отключения компьютера.
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34343127
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А доступ к реестру через WMI не пробовал?
...
Рейтинг: 0 / 0
Траблы с отключением компа
    #34343577
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное проще всего будет сохранять настройки в ini файле
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Траблы с отключением компа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]