Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2009, 13:37   #1
komar73
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 66
По умолчанию Помогите вывести серийник процессора

Подскажите пожалуйста, существует ли команнда которая в яцейку EXCEL может выводить серийный номер процессора, или операционной сичтемы, компа на котором открыт файл EXCEL.
komar73 вне форума Ответить с цитированием
Старый 06.02.2009, 13:43   #2
Alex19789
Пользователь
 
Регистрация: 15.12.2008
Сообщений: 31
По умолчанию

Попробуйте вот эту функцию:

ИНФОРМ

Безопасность. Пользуйтесь данным средством с осторожностью. Важная или конфиденциальная информация может быть доступна другим пользователям.


Возвращает информацию о текущей операционной среде.

Синтаксис

ИНФОРМ(тип_информации)

Тип_информации — это текст, задающий тип возвращаемой информации.

Тип_информации Возвращаемое значение

"версия" Версия Microsoft Excel в виде текстовой строки.
"версияос" Текущая версия операционной системы в виде текстовой строки.
"доступнаяпамять" Количество свободной памяти в байтах.
"используемаяпамять" Количество памяти, используемой для данных.
"источник" Абсолютная ссылка в стиле A1 в виде текста, с префиксом «$A:» для совместимости с пакетом Lotus 1-2-3 версий 3.x. Возвращается ссылка на самую левую верхнюю видимую в окне ячейку с учетом текущего состояния прокрутки.
"каталог" Путь текущего каталога.
"памятьвсего" Общее количество доступной памяти в байтах, включая уже используемую.
"перевычислить" Текущий режим повторного вычисления; возвращается «Автоматически» или «Вручную».
"система" Название операционной среды:
Macintosh = "mac"
Windows = "pcdos"
"числофайлов" Количество активных рабочих листов в открытых книгах.

Пример
Чтобы этот пример проще было понять, скопируйте его на пустой лист.

Инструкции

Создайте пустую книгу или лист.
Выделите пример в разделе справки. Не выделяйте заголовок строки или столбца.


Выделение примера в справке.
Нажмите сочетание клавиш CTRL+C
На листе выделите ячейку A1 и нажмите сочетание клавиш CTRL+V.
Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих эти результаты, нажмите сочетание клавиш CTRL+` (апостроф) или в меню Сервис укажите на пункт Зависимости формул и выберите режим Режим проверки формул.

1
2
A B
Формула Описание (результат)
=ИНФОРМ("числофайлов") Количество активных рабочих листов (переменная величина)
=ИНФОРМ("перевычислить") Режим повторного вычисления для книги (Автоматически или Вручную)

Информация получена из справки Excel.
Alex19789 вне форума Ответить с цитированием
Старый 06.02.2009, 13:48   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

На пустом рабочем листе запустите следующий код, позволяющий получить некоторую системную информацию.
Код:
Sub Info()

    Dim i As Integer
    On Error Resume Next
    For i = 1 To 20
        Cells(i, "A") = Environ(i)
    Next

End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 06.02.2009, 13:53   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Может, имеет смысл привязываться к номеру жесткого диска?

Цитата:
существует ли команнда которая в яцейку EXCEL может выводить серийный номер процессора, или операционной сичтемы, компа на котором открыт файл EXCEL
Подобную информацию можно получить, используя WinAPI.
Если очень надо, можно попробовать написать пример кода.

Сомневаюсь насчёт уникальности "номера" операционной системы (учитывая степень распространения пиратских дисков с Windows)

Не каждый процессор выдаёт свой серийный номер (в старых процессорах даже не было такой инструкции)
Цитата:
серийный номер процессора поддерживается только в Pentium III. Раньше такой фичи вообще не было, а после PIII ее отменили (якобы из соображений конфиденциальности)
А для чего Вам всё это нужно?

Последний раз редактировалось EducatedFool; 06.02.2009 в 13:56.
EducatedFool вне форума Ответить с цитированием
Старый 06.02.2009, 13:53   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Запустив макрос в файле во вложении, можно получить информацию о памяти компьютера.
Вложения
Тип файла: rar SysInfo.rar (10.0 Кб, 48 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 06.02.2009, 13:57   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Не каждый процессор выдаёт свой серийный номер
Абсолютно точно.

А вот, например, серийный номер диска - пожалуйста:
Код:
Sub NumDrive()

    Set objDrive = CreateObject("Scripting.FileSystemObject").GetDrive("c:")
    MsgBox "SN: " & objDrive.SerialNumber

End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 06.02.2009, 14:12   #7
komar73
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 66
По умолчанию

Номер винта это действительно лучший вариант. Я конечно дико извиняюсь но я чайник, как мне запустить этот код в книге EXCEL
komar73 вне форума Ответить с цитированием
Старый 06.02.2009, 14:18   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Я же привел ссылку на образец кода...

При открытии книги срабатывает макрос Workbook_Open, который проверяет, на том ли компе запускается файл.
И если комп другой (серийник диска не совпадает), файл очищается:

Код:
Private Sub Workbook_Open()
    Const My_Drive_C_SerialNumber = "12345678" ' сюда пишем серийный номер своего диска
    If Drive_C_SerialNumber <> My_Drive_C_SerialNumber Then
        MsgBox "Вы пытаетесь открыть файл на другом компьютере", vbCritical, "Нет доступа"
        Application.DisplayAlerts = False
        newsh = ThisWorkbook.Worksheets.Add.Name    ' создаём пустой лист
        For Each sh In ThisWorkbook.Worksheets
            If sh.Name <> newsh Then sh.Delete    ' удаляем все листы этого файла, кроме пустого
        Next
        ThisWorkbook.Save
        ThisWorkbook.Close False
    End If
End Sub

Function Drive_C_SerialNumber() As String
    Drive_C_SerialNumber = CreateObject("scripting.filesystemobject").GetDrive("c:\").SerialNumber
End Function

Вставить макрос в файл можно примерно так:

1) Щелкаем правой кнопкой на ярлычке книги (значок Excel слева от главного меню), и выбираем пункт Исходный текст.
Откроется окно редактора VBA

2) Вставляем предварительно скопированный код макроса туда, где мигает курсор
(просто нажимаем Ctrl + V)

3) Изменяем в макросе 12345678 на номер Вашего HDD.

4)Не забываем сохранить документ.

Последний раз редактировалось EducatedFool; 06.02.2009 в 14:31.
EducatedFool вне форума Ответить с цитированием
Старый 06.02.2009, 17:52   #9
komar73
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 66
По умолчанию

Потребовалось немного времени чтобы разчехлиться в EXCEL 2007
Через програму EVEREST узнал серийный номер АТА устройства вставил его вместо 12345678 и при запуске пишит что я пытаюсь открыть... ну и дальше все как по програме. Может нужен какойто другой серицник и как его выцарапать не снимая винта?, машина на гарантии
komar73 вне форума Ответить с цитированием
Старый 06.02.2009, 18:17   #10
komar73
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 66
По умолчанию

Большое спасиба все работает нормально, серийник узнал при помощи процедуры которую написал SAS888
komar73 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Серийник и ключ авторизации на BDS 2006 Квэнди Свободное общение 10 26.02.2012 15:54
как узнать серийник винта Prisian Win Api 7 26.04.2009 21:21
Серийник 3d MAX 8 SKS Софт 1 05.01.2009 22:08
Помогите непутевой вывести массив? sandras PHP 5 09.12.2008 03:07
Где найти кряк или серийник? Sabber Свободное общение 1 26.10.2008 16:22