451 K

Сентябрь 2010

 


Покрытие кода и углубленное тестирование. Часть 2

Лайза Слэйтер Николлз (Lisa Slater Nicholls)

Читайте первую часть статьи в журнале FoxTalk за август 2010 года
 

Покрытие в VFP и профилировщик покрытия изнутри
Но постойте, это еще не все. Текущий раздел поведает вам еще кое-что о том, как работает профилировщик покрытия, и вы также узнаете о том, как механизм покрытия работает в среде VFP. Пропустите весь этот раздел целиком, если на данный момент не испытываете недостатка в таких подробностях, или продолжите чтение, чтобы узнать еще несколько способов, позволяющих манипулировать возможностями профилировщика и глубже вникнуть в протокол, формируемый механизмом покрытия.
Если остальную часть этого раздела вы пропускаете, рекомендую вернуться к ней позже и прочитать материал о рабочих файлах механизма покрытия. Чтобы с максимальной пользой использовать механизм покрытия, необходимо знать, что собой представляют эти курсоры, и в особенности понимать, что механизм покрытия способен организовывать разные наборы этих курсоров.


Каждой работе — правильный цикл

Тамар Е. Гранор, д-р философии (Tamar E. Granor, PhD)

В мир Fox я пришла из мира языка Pascal. Хотя со временем мне довелось поработать с несколькими другими языками программирования, Pascal был тем языком, который я любила, который преподавала многим студентам и использовала для подготовки двух своих диссертаций, и магистерской, и докторской.
Одной из замечательных особенностей языка Pascal было наличие в нем не одной, не двух, а трех конструкций цикла. Конструкции WHILE и REPEAT-UNTIL были похожими: цикл продолжался до тех пор, пока не выполнялось некоторое условие. Отличались эти две конструкции тем, когда выполнялась проверка условия, а также тем, когда цикл завершался: тогда, когда условие оказывалось невыполненным или когда условие выполнялось.
Конструкция FOR обеспечивала цикл с подсчетом. Мог ли программист нуждаться в чем-то большем?
Начав работать с языком FoxBASE++, я обнаружила, что в этой системе есть только один способ программирования циклов. Конструкция DO WHILE работала точно так же, как конструкция WHILE языка Pascal, но здесь не было ни конструкции для цикла с подсчетом, ни какого-либо понятия цикла с проверкой условия только после выполнения первого прохода. Разумеется, аналогичных результатов можно было добиться и с помощью конструкции DO WHILE, но я ощущала как потерю отсутствие других возможностей.
С течением времени выбор возможных вариантов организации циклов в языке FoxPro стал шире. Хотя в VFP по-прежнему отсутствует аналог конструкции REPEAT-UNTIL, сейчас в этом языке программирования имеется не менее четырех различных способов организации циклов. Так как же вам понять, какой из них надо использовать в конкретной ситуации?
Есть несколько довольно простых правил.


PE-файлы, контроль учетных записей (UAC), COM без регистрации и другие невероятные вещи. Часть 5

Крейг Бойд (Craig Boyd)

Маркеры доступа
В MSDN маркер доступа описывается следующим образом:
"An access token contains the security information for a logon session. The system creates an access token when a user logs on, and every process executed on behalf of the user has a copy of the token. The token identifies the user, the user's groups, and the user's privileges. The system uses the token to control access to securable objects and to control the ability of the user to perform various system related operations on the local computer. There are two kinds of access token, primary and impersonation."
("Маркер доступа содержит данные безопасности для сеанса входа. Операционная система создает маркер доступа, когда пользователь выполняет вход в систему, и каждый процесс, который выполняется от имени пользователя, имеет копию этого маркера. Маркер идентифицирует пользователя, группы пользователей и пользовательские привилегии. Операционная система использует маркер для того, чтобы контролировать доступ к защищаемым объектам, а также возможности пользователя выполнять различные связанные с системой операции на локальном компьютере. Есть два вида маркеров доступа: первичный (primary) и олицетворения или анонимного воплощения (impersonation)."

Итак, другими словами, если мы хотим, чтобы наши приложения были в состоянии обнаружить набор данных о разрешениях текущего процесса (которым бы и являлось наше приложение), необходимо обладать возможностью получить маркер доступа и расшифровать всю информацию, которую он содержит или предоставляет нам для доступа. Это позволяет выяснить, есть ли у нас соответствующие разрешения на то, чтобы проделать какие-то вещи, для которых могли бы потребоваться особые разрешения на право выполнения и повышение уровня выполнения. Если бы можно было легко получить эту информацию, это уже был бы гигантский шаг вперед, но только первый шаг. Реальные широкие возможности появятся, когда мы сумеем создавать маркеры и надлежащим образом их модифицировать так, что сможем повышать уровень выполнения и/или ограничивать разрешения. Пока же давайте сделаем этот первый шаг и посмотрим, что обеспечивает обработка маркера с использованием функции GetTokenInformation и пригоршни других обращений к интерфейсу API.


Стучим по клавишам

Джим Бут (Jim Booth)

В среде ОС Windows для многих задач обыкновенно используется мышь. При интенсивном, «не поднимая головы», вводе данных для пользователей часто целесообразнее не отрывать рук от клавиатуры. Чтобы добиться этого, необходимо предоставить клавиатурные эквиваленты действий, выполняемых с помощью мыши, таких как выбор пункта меню или щелчок мышью по кнопке, и даже доступ с помощью нажатий на клавиши к функциональности, которая, возможно, не обеспечивается никакими опциями меню или кнопками. При настройке клавиатурных эквивалентов необходимо учесть несколько моментов, и Visual FoxPro предоставляет несколько разных механизмов для достижения нашей цели. Задача этой статьи — рассмотреть процесс принятия решения о выборе той или иной из доступных методик. Я не буду надоедать вам подробным рассмотрением синтаксиса различных вариантов, а вместо этого сосредоточусь на постановке задачи и применении различных методик для ее решения. Доверяю вам самостоятельно прочесть справочный help-файл и разобраться в деталях синтаксиса.


Возврат на основную страницу

К архивам

© Edel Ltd. Все права защищены. 2010 г.

Hosted by uCoz