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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2008, 10:52   #1
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
Вопрос Id компа и его отправка

Здравствуйте.Как можно сделать так чтобы при нажатии на кнопку,узнавался id компьютера,а потом открывался почтовый клиент,и чтобы в тексте на первой строке было к примеру "Id вашего компьютера=" и после равно соответственно узнаный ранее id компа.Я гуглил на тему id,тока там появлялось как менять имя компа и т.д но никак не узнать id!Помогите пожалуйста
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 08.01.2008, 14:21   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну что же, придется и мне расписаться в полной профнепригодности...
Впервые встречаю такое - "id компьютера".
Может, просветите нас, сирых, что есть сие?
Ежели только это не айпишник...
Вторая-то часть вопроса рассматривалась неоднократно:
Код:
var tmp: array[0..255] of Char;
begin
StrPCopy(tmp,'mailto:vasya_pupkin@mail.ru?Subject="Поздравления"&body="Вася, с Новым Годом!"');
ShellExecute(Application.Handle,'open',tmp,nil,nil,0);
end;

Последний раз редактировалось mihali4; 08.01.2008 в 17:20.
mihali4 вне форума Ответить с цитированием
Старый 08.01.2008, 22:08   #3
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Прошу прощения, что вклиниваюсь. Не подскажете, как таким способом передать в тело письма несколько строк?
Jeni вне форума Ответить с цитированием
Старый 08.01.2008, 23:45   #4
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

Вот-вот Джени мне тоже надо на тело письма сунуть строку,а не в название темы.Михалыч никогда не поверю что Вы!!! не знаете что такое id компьютера . Id компьютера-это идентификатор компа,у каждого он разный! Типа как у мобильных imei. Ввобще-то он мне нужен для защиты паролем: типа смотрит id к нему прибавляем стокото,отнимаем стокото и получится пароль.И считай хорошая защита!Если тока какой нить плохой человек не угадает формулу вычисления пароля. А что еще есть уникальное у компьютера чтобы можно было использовать вместо id?
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 09.01.2008, 02:41   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Jeni Посмотреть сообщение
Не подскажете, как таким способом передать в тело письма несколько строк?
Аналогично приведенному примеру, но в качестве "разделителя строк" используется сочетание символов %0A. Например:
...body="Вася, с Новым Годом!%0AЭто Федя поздравляет."

Цитата:
Id компьютера-это идентификатор компа,у каждого он разный! Типа как у мобильных imei.
Да, у моего ноута есть "зашитый" идентификатор. А вот какой ID у десктопа, собранного мной на коленке???

Последний раз редактировалось mihali4; 09.01.2008 в 02:44.
mihali4 вне форума Ответить с цитированием
Старый 09.01.2008, 16:35   #6
Marsik
Форумчанин
 
Аватар для Marsik
 
Регистрация: 23.10.2007
Сообщений: 275
По умолчанию

Ну хороо. А что тогда можно использовать вместо id?Что еще есть у компа уникальное,которое есть у всех,и которое можно передать по мылу?
PS: хотя помоему id есть у всех компов.Ведь даже такие крутые проги как sony vegas используют id.Принцип действия кейгенов,насколько мне известно тоже зависит от id.
http://otlishnik.com/ чудесный портал для всех кто учится. Рефераты, каталоГ вузов, решебники, справочники, ЕГЭ! Welcome
Marsik вне форума Ответить с цитированием
Старый 09.01.2008, 16:57   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Что еще есть у компа уникальное,которое есть у всех,и которое можно передать по мылу?
Самое тривиальное, всегда используемое - серийник винта. Меняется не слишком часто. В случае замены винта конечным пользователем вами генерится новый серийный номер программы на основе присланного нового серийника винта.
Другой вариант - сам адрес мыла. Тоже уникальная вещь...
mihali4 вне форума Ответить с цитированием
Старый 09.01.2008, 17:05   #8
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Обычно берут серийники нескольких устроист.
В таком случае замена одной платы неприводит к новой регистрации, а просто программо запоминает изменение.

Кстати если вы меняете практически весь комп и у вас есть прога которая сверяется по такому принципу то надо после замены одной платы перезагрузиться... затем поставить вторую и опять перезагрузиться... Тогда программа будет постоянно обновлять свой список и региться ненадо будет по новой...
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 09.01.2008, 21:41   #9
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от Marsik Посмотреть сообщение
А что тогда можно использовать вместо id? Что еще есть у компа уникальное,которое есть у всех...?
Теоретически, у каждого процессора (по крайней мере фирмы Intel) есть "зашитый" уникальный идентификатор. Это повелось начиная с PIII. Проблема (для вас) в том, что этот идентификатор по умолчанию всегда отключен, т.к. в свое время по этому поводу поднялась нешуточная волна протестов - для некоторых материнок в биосе отсутствует даже возможность его включить.
Можно использовать MAC-адрес сетевой карты - уникальный для каждой карты (но пользователь его можно и изменить). Или номер материнской платы + информация о процессоре. Или номер винчестера, вот только я не знаю, как его получить - то что удается узнать, это лишь некий "логический номер", связанный не с самим винтом, а с разделом диска и он зависит от версии Винды.
Jeni вне форума Ответить с цитированием
Старый 09.01.2008, 22:51   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Заводской номер первого по счету винта (а не логического диска C, D и т.д.) можно получить таким вот "зверским" способом:
Код:
function GetIdeDiskSerialNumber : String; 
type 
  TSrbIoControl = packed record 
    HeaderLength : ULONG; 
    Signature : Array[0..7] of Char; 
    Timeout : ULONG; 
    ControlCode : ULONG; 
    ReturnCode : ULONG; 
    Length : ULONG; 
  end; 
  SRB_IO_CONTROL = TSrbIoControl; 
  PSrbIoControl = ^TSrbIoControl; 

  TIDERegs = packed record 
    bFeaturesReg : Byte; // Used for specifying SMART "commands". 
    bSectorCountReg : Byte; // IDE sector count register 
    bSectorNumberReg : Byte; // IDE sector number register 
    bCylLowReg : Byte; // IDE low order cylinder value 
    bCylHighReg : Byte; // IDE high order cylinder value 
    bDriveHeadReg : Byte; // IDE drive/head register 
    bCommandReg : Byte; // Actual IDE command. 
    bReserved : Byte; // reserved for future use. Must be zero. 
  end; 
  IDEREGS = TIDERegs; 
  PIDERegs = ^TIDERegs; 

  TSendCmdInParams = packed record 
    cBufferSize : DWORD; // Buffer size in bytes 
    irDriveRegs : TIDERegs; // Structure with drive register values. 
    bDriveNumber : Byte; // Physical drive number to send command to (0,1,2,3). 
    bReserved : Array[0..2] of Byte; // Reserved for future expansion. 
    dwReserved : Array[0..3] of DWORD; // For future use. 
    bBuffer : Array[0..0] of Byte; // Input buffer. 
  end; 
  SENDCMDINPARAMS = TSendCmdInParams; 
  PSendCmdInParams = ^TSendCmdInParams; 

  TIdSector = packed record 
    wGenConfig : Word; 
    wNumCyls : Word; 
    wReserved : Word; 
    wNumHeads : Word; 
    wBytesPerTrack : Word; 
    wBytesPerSector : Word; 
    wSectorsPerTrack : Word; 
    wVendorUnique : Array[0..2] of Word; 
    sSerialNumber : Array[0..19] of Char; 
    wBufferType : Word; 
    wBufferSize : Word; 
    wECCSize : Word; 
    sFirmwareRev : Array[0..7] of Char; 
    sModelNumber : Array[0..39] of Char; 
    wMoreVendorUnique : Word; 
    wDoubleWordIO : Word; 
    wCapabilities : Word; 
    wReserved1 : Word; 
    wPIOTiming : Word; 
    wDMATiming : Word; 
    wBS : Word; 
    wNumCurrentCyls : Word; 
    wNumCurrentHeads : Word; 
    wNumCurrentSectorsPerTrack : Word; 
    ulCurrentSectorCapacity : ULONG; 
    wMultSectorStuff : Word; 
    ulTotalAddressableSectors : ULONG; 
    wSingleWordDMA : Word; 
    wMultiWordDMA : Word; 
    bReserved : Array[0..127] of Byte; 
  end; 
  PIdSector = ^TIdSector; 

const 
  IDE_ID_FUNCTION = $EC; 
  IDENTIFY_BUFFER_SIZE = 512; 
  DFP_RECEIVE_DRIVE_DATA = $0007c088; 
  IOCTL_SCSI_MINIPORT = $0004d008; 
  IOCTL_SCSI_MINIPORT_IDENTIFY = $001b0501; 
  DataSize = sizeof(TSendCmdInParams)-1+IDENTIFY_BUFFER_SIZE; 
  BufferSize = SizeOf(SRB_IO_CONTROL)+DataSize; 
  W9xBufferSize = IDENTIFY_BUFFER_SIZE+16; 
var 
  hDevice : THandle; 
  cbBytesReturned : DWORD; 
  pInData : PSendCmdInParams; 
  pOutData : Pointer; // PSendCmdInParams; 
  Buffer : Array[0..BufferSize-1] of Byte; 
  srbControl : TSrbIoControl absolute Buffer; 

  procedure ChangeByteOrder( var Data; Size : Integer ); 
  var ptr : PChar; 
      i : Integer; 
      c : Char; 
  begin 
    ptr := @Data; 
    for i := 0 to (Size shr 1)-1 do 
    begin 
      c := ptr^; 
      ptr^ := (ptr+1)^; 
      (ptr+1)^ := c; 
      Inc(ptr,2); 
    end; 
  end;
См. продолжение!!!

Последний раз редактировалось mihali4; 09.01.2008 в 23:16.
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вкл. компа begemotikdin Компьютерное железо 6 09.09.2008 20:26
Имя компа JRcoker Win Api 14 25.07.2008 15:42
ускорение компа Dark Energy Компьютерное железо 4 14.07.2008 20:15
Перезагрузка компа Pusher Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 19.02.2008 20:54
Вырубление компа Andr Общие вопросы Delphi 5 15.05.2007 22:13