2009-03-21 5 views
0

Новый для вас. Я готов помочь другому программисту перенести его программу с C# на Delphi. Я не могу по-настоящему прочитать C#, и он не прислал мне фактический источник в этот момент, поэтому из обсуждения я думаю, что им придется решать большую часть этого из одной функции с точки зрения времени.Delphi - Перечисление номеров портов SATA IO в Windows

Мне нужно получить номера портов ввода-вывода для всех устройств SATA (я считаю, что я имею в виду устройства), подключенных к системе. Я знаю, что WMI не сделает этого, поэтому я не уверен, с чего начать. Я знаю, что версия C# этого приложения использует класс C#, который в основном анализирует реестр. Я всегда был нехотя о прямом чтении из реестра. Я чувствую, что получение информации из окон api или связанных с ними более надежных версий окон, если это возможно.

+0

Что ваш вопрос, пожалуйста? – mghie

+0

Разве это не странно для кода порта, когда вы сначала не можете прочитать источник, а во-вторых, у вас нет источника? –

+0

вопрос mghie прямо там «Мне нужно иметь возможность получить номера портов ввода-вывода для всех устройств SATA (я считаю, что я имею в виду устройства), подключенные к системе». Если вам нужно, чтобы я уточнил ... я не уверен, что могу, но я попробую. –

ответ

1

Если оригинал читает реестр, и вы переносите функцию, чтение реестра выглядит для меня совершенно верным решением?

Кстати, у Delphi есть класс TRegistry из раздела registry.pas. Вы можете использовать это для чтения и записи реестра. По умолчанию вы запрашиваете все права (чтение/запись ..) в Vista, это может быть проблемой, поэтому обязательно прочитайте только если вы планируете только чтение.

Ключевые значения:

KEY_READ 
KEY_WRITE 
KEY_EXECUTE 
KEY_ALL_ACCESS 

Это фактически устанавливает из основных значений:

KEY_QUERY_VALUE  
KEY_SET_VALUE   
KEY_CREATE_SUB_KEY  
KEY_ENUMERATE_SUB_KEYS 
KEY_NOTIFY  
KEY_CREATE_LINK 
KEY_WOW64_32KEY 
KEY_WOW64_64KEY 
KEY_WOW64_RES 
+0

Вы спрашиваете, не странно ли его странный код порта. Мне нет, я функционально «портировал» еще одно приложение, используя свой собственный код, просто посмотрев, как он работает. Я переношу программы без источника на pascal, используя внешний отладчик. Я делаю это для старых приложений командной строки, которые мне нужны. –

+0

Я также хотел сказать, что у меня не должно быть слишком много проблем с Vista. Другие приложения, которые я пишу, обычно делают вещи низкого уровня, требующие повышения, поэтому я просто просматриваю манифест, чтобы потребовать/спросить о повышении. В то время как операторы реестра должны быть только для чтения, так или иначе, его личность vista не похожа на это приложение под UAC –