Поиск вирусов.NET API

Благодаря принятому ответу мне удалось реализовать плавную «прокрутку наверх». Прокрутка к вершине на самом деле даже проще, чем прокрутка к определенному целевому элементу, поскольку мы прокручиваем до 0-позиции всегда. Вот код:

scrollTo(yPoint: number, duration: number) {
    setTimeout(() => {
        window.scrollTo(0, yPoint)
    }, duration);
    return;
}

smoothScrollToTop() {
    let startY = this.currentYPosition();
    let stopY = 0; // window top
    let distance = stopY > startY ? stopY - startY : startY - stopY;
    if (distance < 100) {
        window.scrollTo(0, stopY);
        return;
    }
    let speed = Math.round(distance / 100);
    let step = speed;
    speed = Math.max(9, speed); //min 9 otherwise it won't look smooth
    let leapY = stopY > startY ? startY + step : startY - step;
    let timer = 0;
    if (stopY > startY) {
        for (let i = startY; i < stopY; i += step) {
            // since setTimeout is asynchronous, the for-loop will will fire all scrolls
            // nearly simoultaniously. Therefore, we need to multiply the speed with
            // a counter which lets the scrolls start with a growing offset which lets the
            // setTimeout wait for a growing time till it scrolls there
            // that way, we prevent the window to scroll instantly to the target Yposition
            this.scrollTo(leapY, timer * speed);
            leapY += step; if (leapY > stopY) leapY = stopY; timer++;
        }
        return;
    } else {
        for (let i = startY; i > stopY; i -= step) {
            this.scrollTo(leapY, timer * speed);
            leapY -= step; if (leapY < stopY) leapY = stopY; timer++;
        }
    }
}

currentYPosition() {
    // Firefox, Chrome, Opera, Safari
    if (self.pageYOffset) return self.pageYOffset;
    // Internet Explorer 6 - standards mode
    if (document.documentElement && document.documentElement.scrollTop)
        return document.documentElement.scrollTop;
    // Internet Explorer 6, 7 and 8
    if (document.body.scrollTop) return document.body.scrollTop;
    return 0;
}

Если вы хотите, вы можете позволить вашей кнопке «Прокрутка вверх» динамически появляться при прокрутке пользователя:

@HostListener('window:scroll', ['$event'])
onWindowScroll(event) {
    this.onScrollFadeInOutScrollToTopButton();
}

shouldShowScrollToTop: boolean = false;

onScrollFadeInOutScrollToTopButton() {
    this.shouldShowScrollToTop = (window.pageYOffset >= window.screen.height/2);
}

И HTML для Кнопка прокрутки вверх:

<div class="back-to-top">
<button *ngIf="shouldShowScrollToTop" [@fadeInOutTrigger]="animateButtonEntryState" class="mat-primary" md-fab (click)="smoothScrollToTop()">^</button>

Как видите, у этой кнопки также есть анимационный триггер. Вы можете подумать об использовании иконки для кнопки, и в идеале ваша кнопка должна иметь стиль position:fixed;.

38
задан Jørgen R 19 December 2014 в 22:48
поделиться

4 ответа

Я бы, вероятно, просто сделал системный вызов, чтобы запустить независимый процесс для сканирования. Существует ряд AV-движков командной строки от различных поставщиков.

8
ответ дан 27 November 2019 в 03:50
поделиться

Взгляните на Microsoft Antivirus API . Он использует COM, который должен быть достаточно простым для взаимодействия с .NET. Это относится конкретно к Internet Explorer и Microsoft Office, но я не понимаю, почему вы не сможете использовать его для сканирования любого файла по требованию.

Все современные сканеры, работающие в Windows, должны понимать этот API.

7
ответ дан 27 November 2019 в 03:50
поделиться

Разное У антивирусных сканеров есть API. Я интегрировался с Sophos. Я почти уверен, что у Norton есть API, а у McAfee - нет (раньше). Какое вирусное программное обеспечение вы хотите использовать? Вы можете попробовать Metascan , так как он позволит интегрироваться со многими различными сканерами, но за него взимается годовая лицензия. :-P

4
ответ дан 27 November 2019 в 03:50
поделиться

По моему опыту, вы можете использовать COM для взаимодействия с некоторыми антивирусными программами. Но то, что я предлагаю, немного проще, просто проанализируйте результаты сканирования после сканирования. Все, что вам нужно сделать, это запустить процесс сканирования и указать его на файл / папку, которые вы хотите просканировать, сохранить результаты сканирования в файл или перенаправить стандартный вывод в ваше приложение и проанализировать результаты.

-1
ответ дан 27 November 2019 в 03:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: