Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Почему при открытии браузера Google Chrome открывается браузер без расширений (selenium)?

ИМЕЕТСЯ
Google Chrome Portable (портативный), который расположен в папке
c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe
На нём установлены расширения: Site Geo IP Locator;


При запуске ПРОЕКТ 1 на C# (с использованием selenium, WebDriver.dll, chromedriver.exe) открывается браузер Google Chrome Portable, в котором установлено только расширение "Chrome Automation Extension", которое я не устанавливал.

Сценарий проекта:
1. открыть браузер Google Chrome Portable, который находится по пути c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe;
2. открыть поисковик (google.com);
3. ввести слово для поиска;
4. осуществить поиск;

ВОПРОС.
1. Почему когда запускаем ПРОЕКТ 1 на C#, который по сценарию открывает браузер Google Chrome Portable, в браузере установлено только расширение "Chrome Automation Extension", которое я не устанавливал, а установленного расширения нет?

chrome://extensions/

КОД
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
//****//
using System.Diagnostics;
//****//
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        IWebDriver Browser;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            OpenQA.Selenium.Chrome.ChromeOptions co = new OpenQA.Selenium.Chrome.ChromeOptions();
            //****//
 
            co.BinaryLocation = @"c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe";
                        
            //****//
            Browser = new OpenQA.Selenium.Chrome.ChromeDriver(co);
            Browser.Manage().Window.Maximize();
            Browser.Navigate().GoToUrl("http://google.com");
 
            IWebElement SearchInput = Browser.FindElement(By.Id("lst-ib"));
            SearchInput.SendKeys("проект домов" + OpenQA.Selenium.Keys.Enter);
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
    }
}




ПРИЛОЖЕНИЕ.
1.GoogleChromePortable.rar -
2. ПРОЕКТ_exe.rar -
3. ПРОЕКТ_ПОЛНЫЙ.rar -


ДЛЯ ЗАПУСКА ПРОЕКТА ТРЕБУЕТСЯ ВЫПОЛНИТЬ СЛЕДУЮЩЕЕ:
1. ПРИЛОЖЕНИЕ 1 (GoogleChromePortable.rar) разархивировать и разместить на диске "C"
чтобы файлы находились по следующим путям соответственно:
1. Файл GoogleChromePortable_1.exe - находился по пути
c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe
т.е. папку "soft" просто разместить на диске c:\
Ответ: Посоветовали решение
1. Скачал файл .crx через этот сервис:
2. Скорректировал код согласно:
- как запусить с сохраненым профайлом
-

- как установить расширение


Вроде сделал по инструкции, а всё равно не запускается
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
//****//
using System.Diagnostics;
using OpenQA.Selenium.Chrome;
using System.IO;
//****//
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        IWebDriver Browser;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            OpenQA.Selenium.Chrome.ChromeOptions co = new OpenQA.Selenium.Chrome.ChromeOptions();
            co.BinaryLocation = @"c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe";
            co.AddExtensions(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile\SiteGeoIPLocator.crx");
            co.AddArguments(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile\SiteGeoIPLocator.crx");
 
            // co.AddExtension(Path.GetFullPath("c:\soft\UD\GoogleChromePortable\1_1\profil\SiteGeoIPLocator\SiteGeoIPLocator.crx"));
 
            // chrome://extensions/
            //****//
            Browser = new OpenQA.Selenium.Chrome.ChromeDriver(co);
            Browser.Manage().Window.Maximize();
            Browser.Navigate().GoToUrl("http://google.com");
 
            IWebElement SearchInput = Browser.FindElement(By.Id("lst-ib"));
            SearchInput.SendKeys("проект домов" + OpenQA.Selenium.Keys.Enter);
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
    }
}



Почему не устанавливается расширение?
Вопрос: Ассоциировать расширения с программами

Программа должна ассоциировать расширения с программами.
После запуска ассоциации остаются прежними.
Почему не работает?

Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//
using Microsoft.Win32;
using System.Runtime.InteropServices;
 
namespace FileAssotiation
{
    public class FileAssociation
    {
 
    // Associate file extension with progID, description, icon and application
        public static void Associate(string extension, string progID, string icon, string application)
        {
            Registry.ClassesRoot.CreateSubKey(extension).SetValue("", progID);
            if (progID != null && progID.Length > 0)
                using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(progID))
                {
                    
                    if (icon != null)
                        key.CreateSubKey("DefaultIcon").SetValue("", ToShortPathName(icon));
                    if (application != null)
                        key.CreateSubKey(@"Shell\Open\Command").SetValue("", 
                                    ToShortPathName(application) + " \"%1\"");
                }
        }
        public static void AssociateD(string extension, string progID, string description, string icon, string application)
        {
            Registry.ClassesRoot.CreateSubKey(extension).SetValue("", progID);
            if (progID != null && progID.Length > 0)
                using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(progID))
                {
                    if (description != null)
                        key.SetValue("", description);
                    if (icon != null)
                        key.CreateSubKey("DefaultIcon").SetValue("", ToShortPathName(icon));
                    if (application != null)
                        key.CreateSubKey(@"Shell\Open\Command").SetValue("",
                                    ToShortPathName(application) + " \"%1\"");
                }
        }
 
        // Return true if extension already associated in registry
        public static bool IsAssociated(string extension)
        {
            return (Registry.ClassesRoot.OpenSubKey(extension, false) != null);
        }
 
        [DllImport("Kernel32.dll")]
        private static extern uint GetShortPathName(string lpszLongPath, 
            [Out] StringBuilder lpszShortPath, uint cchBuffer);
 
        // Return short path format of a file name
        private static string ToShortPathName(string longName)
        {
            StringBuilder s = new StringBuilder(1000);
            uint iSize = (uint)s.Capacity;
            uint iRet = GetShortPathName(longName, s, iSize);
            return s.ToString();
        }
        
        static void Main()
        {
            //if (!FileAssociation.IsAssociated(".txt"))
            //Associate(".ext", "ClassID.ProgID", "ext File", "YourIcon.ico", "YourApplication.exe");
            
            string path_s_i = @"D:\SOFT\SOFT_INSTALLED\";
            if (!FileAssociation.IsAssociated(".jpg"))
                Associate(".jpg", "ClassID.ProgID", path_s_i + @"D:\SOFT\SOFT_INSTALLED\FastStoneImageViewer\ico\1.ico", path_s_i + @"D:\SOFT\SOFT_INSTALLED\FastStoneImageViewer\FastStoneImageViewer\FSViewer.exe");
            
 
        }
 
    }
}
Ответ:
Код C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System.Runtime.InteropServices;
using System.Text;
//using System.Windows.Forms;
using Microsoft.Win32;
using System;
 
namespace PacketViewer
{
    public class FileAssociation
    {
        private const long SHCNE_ASSOCCHANGED = 0x8000000L;
        private const uint SHCNF_IDLIST = 0x0U;
        
 
        public static void Associate(string extension, string description, string icon, string application)
        {
            Registry.ClassesRoot.CreateSubKey(extension).SetValue("", application);
 
            if (application != null && application.Length > 0)
            {
                using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(application))
                {
                    if (description != null)
                        key.SetValue("", description);
 
                    if (icon != null)
                        key.CreateSubKey("DefaultIcon").SetValue("", icon);
 
                    key.CreateSubKey(@"Shell\Open\Command").SetValue("", application + " \"%1\"");
                }
            }
 
            SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);
        }
 
        public static bool IsAssociated(string extension)
        {
            Console.WriteLine("IsAssociated");
            Console.WriteLine(Registry.ClassesRoot.OpenSubKey(extension, false));
            return (Registry.ClassesRoot.OpenSubKey(extension, false) != null);
            //get { return (Registry.ClassesRoot.OpenSubKey(extension, false) != null); };
        }
 
        public static void Remove(string extension)
        {
            Registry.ClassesRoot.DeleteSubKeyTree(extension);
            //Registry.ClassesRoot.DeleteSubKeyTree(application);
        }
 
        [DllImport("shell32.dll", SetLastError = true)]
        private static extern void SHChangeNotify(long wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);
 
        [DllImport("Kernel32.dll")]
        private static extern uint GetShortPathName(string lpszLongPath, [Out]StringBuilder lpszShortPath, uint cchBuffer);
 
        private static string ToShortPathName(string longName)
        {
            StringBuilder s = new StringBuilder(1000);
            uint iSize = (uint)s.Capacity;
            uint iRet = GetShortPathName(longName, s, iSize);
            return s.ToString();
        }
 
        static void Main()
        {
            Console.WriteLine("000"); 
 
            //string path_s_i = @"D:\SOFT\SOFT_INSTALLED\";
            string application = @"D:\SOFT\SOFT_INSTALLED\FastStoneImageViewer\FastStoneImageViewer\FSViewer.exe";
            string icon = @"D:\SOFT\SOFT_INSTALLED\FastStoneImageViewer\ico\1.ico";
 
 
            Console.WriteLine("0000");
            Associate(".jpg", "jpg", icon, application);
        
        }
    }
}
Код C#
1
    Registry.ClassesRoot.CreateSubKey(extension).SetValue("", application);
Необработанное исключение типа "System.UnauthorizedAccessException" в mscorlib.dll

Дополнительные сведения: Отказано в доступе к разделу реестра "HKEY_CLASSES_ROOT\.jpg".
Вопрос: Почему строка кода подчёркнута красной линией?

Почему строка кода подчёркнута красной линией?

Подчёркнута нижеприведённая строка:
co.AddExtensions(new File(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile\SiteGeoIPLocator.crx"));

Привожу код целиком
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
//****//
using System.Diagnostics;
using OpenQA.Selenium.Chrome;
using System.IO;
//****//
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        IWebDriver Browser;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            OpenQA.Selenium.Chrome.ChromeOptions co = new OpenQA.Selenium.Chrome.ChromeOptions();
            co.BinaryLocation = @"c:\soft\UD\GoogleChromePortable\1_1\GoogleChromePortable_1.exe";
            co.AddExtensions(new File(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile\SiteGeoIPLocator.crx"));
            co.AddArguments(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile\SiteGeoIPLocator.crx");
 
            // co.AddExtension(Path.GetFullPath("c:\soft\UD\GoogleChromePortable\1_1\profil\SiteGeoIPLocator\SiteGeoIPLocator.crx"));
 
            // chrome://extensions/
            //****//
            Browser = new OpenQA.Selenium.Chrome.ChromeDriver(co);
            Browser.Manage().Window.Maximize();
            Browser.Navigate().GoToUrl("http://google.com");
 
            IWebElement SearchInput = Browser.FindElement(By.Id("lst-ib"));
            SearchInput.SendKeys("проект домов" + OpenQA.Selenium.Keys.Enter);
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
    }
}
Ответ: zakaz_77, попробуй так:
C#
1
co.AddExtension(@"c:\soft\UD\GoogleChromePortable\1_1\Data\profile\SiteGeoIPLocator.crx");
Вопрос: Ошибка при работе парсера

Всем хаюшки!

вот собсвенно код:

Код Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# _*_ coding: utf-8 _*_
from bs4 import BeautifulSoup
from get_html import get_html
from mach_re import mach_re
import time
import os
 
BASE_URL = 'http://soft.softodrom.ru/Новинки/?status=&type=&page=1'
PATTERN = '[0-9]+'
html_doc = get_html(BASE_URL)
 
 
def get_pages_count(html_doc):
    
    soup = BeautifulSoup(html_doc, 'lxml')
    pagination = soup.find('div', class_='pagination')
    temp = str(pagination.find_all('a')[-1])
    return int(mach_re(PATTERN, temp))
 
counter = get_pages_count(html_doc)
tic = time.time()
 
for iter_page in range(1, counter + 1):
    print(iter_page)
    url_page = 'http://soft.softodrom.ru/Новинки/?status=&type=&page=' + str(iter_page)
    soup = BeautifulSoup(get_html(url_page), 'lxml')
 
    with open('soft.txt', 'a') as f:
        for link in soup.find_all('div', class_='prgentry')[2:]:
            print(link.text, end='', file=f)
 
 
toc = time.time()
 
print(tic - toc)
print()
os.system('Pause')
при проходе 34 страницы сайта вылетает ошибка:

Код HTML5
1
2
3
4
5
6
Traceback (most recent call last):
  File "D:/Lab/main.py", line 30, in <module>
    print(link.text, end='', file=f)
  File "C:\Python34\lib\encodings\cp1251.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 135-136: character maps to <undefin
ed>

Я так понимаю не может записать в файл из за кодировки? если да то как поправить ?
Ответ: Блин всю голову сломал
Не могу получить список из списка

есть:
Код HTML5
1
[['Snapdragon BatteryGuru (Android) 3.0  '], [''], ['\tПозволяет устройствам на базе мобильных процессоров Snapdragon дольше и эффективнее работать от батареи'], ['\t» Загрузок: 1539', '27.08.2015 03:58', 'Android', 'Система', '9.54 МБ', 'Android', 'Бесплатная', 'http://soft.softodrom.ru/ap/Snapdragon-BatteryGuru-Android-p23222'], ['']]
Нужно:
Код HTML5
1
['Snapdragon BatteryGuru (Android) 3.0  ', '', '\tПозволяет устройствам на базе мобильных процессоров Snapdragon дольше и эффективнее работать от батареи', '\t» Загрузок: 1539', '27.08.2015 03:58', 'Android', 'Система', '9.54 МБ', 'Android', 'Бесплатная', 'http://soft.softodrom.ru/ap/Snapdragon-BatteryGuru-Android-p23222', '']
Хелп ми плиз.....

Добавлено через 18 минут
Точто туплю забыл про extend
вопрос снят

Добавлено через 22 минуты
Сообщение от alex925
куда проще и удобней сохранять в html или xml. И jinja2 есть и lxml.
Наверное так оно и есть (это следующий шаг обязательно попробую и еще наверное выгрузку бд )
просто питон на стадии изучение, нужно ведь все пробовать и использование openpyxl думаю ни как не навредит
спасибо...
Вопрос: C1xx: fatal error C1083 из-за пробелов в пути (при сборке Qt для MS VS)

Собираю Qt 4.8 для Visual Studio 2015 по , на этапе configure появляются многочисленные c1xx : fatal error C1083: Cannot open source file из-за пробелов в пути к MS VS:
Код
Files
c1xx: fatal error C1083: Не удается открыть файл источник: Files: No such file or directory
Microsoft
c1xx: fatal error C1083: Не удается открыть файл источник: (x86)\Microsoft: No such file or directory
Visual
c1xx: fatal error C1083: Не удается открыть файл источник: Visual: No such file or directory
Studio
c1xx: fatal error C1083: Не удается открыть файл источник: Studio: No such file or directory
include
c1xx: fatal error C1083: Не удается открыть файл источник: 14.0\VC\include: No such file or directory
Files
c1xx: fatal error C1083: Не удается открыть файл источник: Files: No such file or directory
Microsoft
c1xx: fatal error C1083: Не удается открыть файл источник: (x86)\Microsoft: No such file or directory
Visual
c1xx: fatal error C1083: Не удается открыть файл источник: Visual: No such file or directory
Studio
c1xx: fatal error C1083: Не удается открыть файл источник: Studio: No such file or directory
QtCore
c1xx: fatal error C1083: Не удается открыть файл источник: 14.0\VC\include\QtCore: No such file or directory
Files
c1xx: fatal error C1083: Не удается открыть файл источник: Files: No such file or directory
Microsoft
c1xx: fatal error C1083: Не удается открыть файл источник: (x86)\Microsoft: No such file or directory
Visual
c1xx: fatal error C1083: Не удается открыть файл источник: Visual: No such file or directory
Studio
c1xx: fatal error C1083: Не удается открыть файл источник: Studio: No such file or directory
global
c1xx: fatal error C1083: Не удается открыть файл источник: 14.0\VC\src\corelib\global: No such file or directory
Files
c1xx: fatal error C1083: Не удается открыть файл источник: Files: No such file or directory
Microsoft
c1xx: fatal error C1083: Не удается открыть файл источник: (x86)\Microsoft: No such file or directory
Visual
c1xx: fatal error C1083: Не удается открыть файл источник: Visual: No such file or directory
Studio
c1xx: fatal error C1083: Не удается открыть файл источник: Studio: No such file or directory
xml
c1xx: fatal error C1083: Не удается открыть файл источник: 14.0\VC\src\corelib\xml: No such file or directory
Судя по всему, проблема относится к студии (хотя пробелы в пути при работе с Qt - притча во языцех).

Команда configure выглядит так:
Код
D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>D:\Soft\Qt\4.8\msvc2015\qt-everywhere-opensource-src-4.8.6\configure -make nmake -platform win32-msvc2015 -prefix D:\Soft\Qt\4.8\msvc2015 -opensource -confirm-license -opengl desktop -nomake examples -nomake tests
Ответ: Проблему решил перейдя в командной строке в папку с configure, т.е. вместо
Код
D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>D:\Soft\Qt\4.8\msvc2015\qt-everywhere-opensource-src-4.8.6\configure [options]
или
Код
D:>Soft\Qt\4.8\msvc2015\qt-everywhere-opensource-src-4.8.6\configure [options]
должно быть
Код
D:\Soft\Qt\4.8\msvc2015\qt-everywhere-opensource-src-4.8.6>configure [options]
Вопрос: Из нулей и единиц выстроить слово

Доброго времени суток! Такой вот вопрос: есть к примеру рандомные числа 0 и 1. Как сделать, чтобы компьютер выложил по очереди их в таком порядке чтобы видно было скажем слово Soft, то есть всё в нулях а там где буквы все в единичках. Пример цифры 1
Только вместо 1 надо слово Soft
0001000
0011000
0101000
1101000
0001000
0001000
1111111
Ответ: 1. Возьмите бумагу в клетку.
2. Напишите на ней слово "Soft", зачеркивая нужные квадраты, как считаете нужным.
3. Очертите полученное слово прямоугольной рамкой, границы которой совпадают с внешними краями клеток букв.
4. Посчитайте количество клеток в получившемся прямоугольнике по высоте и ширине.
5. Создайте двухмерный целочисленный массив полученного разрешения.
6. Установите значение "1" в элементы массива, соответствующие закрашенным клеткам на листе, учитывая то, что индексация в массивах идёт с 0.
Вопрос: Как запустить Google Chrome Portable из определённой папки?

Как используя selenium создать тест по открытию Google Chrome Portable из определённой папки?

Создал проект в Visual studio 2015
Подключил библиотеку - WebDriver.dll
Подключил (установил) Google Chrome Driver - chromedriver.exe

На #C написал код для следующего сценария:
- запуск браузера;
- открываем Гугл;
- вбиваем текст запроса;
- нажимаем "ввод";

Как сделать, чтобы открывался(запускался) браузер находящийся именно по пути c:\soft\УД\GoogleChromePortable\1\GoogleChromePortable.exe ?

Привожу код
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        IWebDriver Browser;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Browser = new OpenQA.Selenium.Chrome.ChromeDriver();
            Browser.Manage().Window.Maximize();
            Browser.Navigate().GoToUrl("http://google.com");
 
            IWebElement SearchInput = Browser.FindElement(By.Id("lst-ib"));
            SearchInput.SendKeys("проект домов" + OpenQA.Selenium.Keys.Enter);
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
        }
    }
}
Ответ: Работает без ошибок.
Но открывается браузер, который установлен как основной (C:\Program Files (x86)\Google\Chrome\Application\chrome.exe), а не "Portable", который расположен по пути "c:\soft\УД\GoogleChromePortable\1\GoogleChromePortable.exe"..

Если я правильно понял. Могу ошибаться..
В "Portable" установлено несколько расширений, а в том, который открывается, установлено только расширение "Chrome Automation Extension". И причём я это расширение не ставил...
В общем, наверное не понимаю, даже какой Google Chrome открывает код.

P.S. Модератора прошу извинить. Обязательно учту. Тема с #C для меня новая. Вся оперативная память головы занята, поэтому "туплю".
Спасибо за оперативный ответ
Вопрос: Подключение к БД в сетевой папке

Скажите, можно ли подключится к БД, которая лежит в сетевом хранилище?
Делаю так, но данные в комбобокс не загружаются
C#
1
2
3
4
5
string baseName = @"\\192.168.0.111\shara\Soft\print txt\Printers.db3";
            using (var connection = new SQLiteConnection())
            {
                connection.ConnectionString = "Data Source = " + baseName;
                connection.Open();
Ответ: Попробуйте так:
C#
1
2
3
4
5
6
string baseName = @"\\192.168.0.111\shara\Soft\print txt\Printers.db3";
            using (var connection = new SQLiteConnection())
            {
                connection.ConnectionString = "Data Source = " + baseName;
                SqlCommand sqlCommand = connection.CreateCommand();
                connection.Open();
Добавлено через 7 минут
Хотя я сделал бы проще через SqlConnection:
C#
1
2
3
SqlConnection connection = new SqlConnection("Data Source = @\\192.168.0.111\\shara\Soft\\print txt\\Printers.db3");
SqlCommand sqlCommand = connection.CreateCommand();
connection.Open();
Вопрос: Иконка в запросе UAC

Здравствуйте.
Необходимо, чтобы оторажалась иконка в запросе UAC. Подскажите пожалуйста как это сделать?
Написал приложение, сформировал файл ресурсов res.rc, но при запросе UAC иконка не отображается.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#define MANIFEST 24
#define IDR_XPMANIFEST 1
500 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "icon.ico"
IDR_XPMANIFEST MANIFEST "regadmin.xml"
 
#define IDR_VERSION1 1
IDR_VERSION1 VERSIONINFO
FILEVERSION 16,01
PRODUCTVERSION 16,01
FILEOS 0x00000004
FILETYPE 0x00000000
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "FFFF0000"
    BEGIN
      VALUE "FileVersion", "16.01\0"
      VALUE "ProductVersion", "16.01\0"
      VALUE "CompanyName", "Soft Lab\0"
      VALUE "FileDescription", "Soft tracer\0"
      VALUE "InternalName", "Soft-tracer.exe\0"
      VALUE "LegalCopyright", "© Soft Lab Corporation. All rights reserved.\0"
      VALUE "OriginalFilename", "Soft-tracer.exe\0"
      VALUE "ProductName", "Soft® Lab® Corporation\0"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0xFFFF, 0x0000
  END
END
Ответ: Большое спасибо за ответы! ) Установил сертификат в "Доверенные корневые". Иконка отобразилась.
Вопрос: Ошибка: Невозможно создать экземпляр абстрактного класса

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
class Program
    {
        static void Main(string[] args)
        {
 
            List<Prog> listSoft = new List<Prog>(); //массив программ
 
            Console.Clear();        //Очистка экрана
            //Задаем название окна консоли
            Console.Title = "Контрольная работа 2. Вариант 0. Классы.";
 
            //заполняем:
            // 1
            listSoft.Add( new Prog()); //добавляем без параметров
            // 2
            FreeProg freeSoft = new FreeProg();
            freeSoft.SoftName = "Графический редактор";
            freeSoft.SoftVendor = "ООО Скорпион";
            freeSoft.InstallDate = new DateTime(2016, 2, 10); //10-го февраля
            listSoft.Add(freeSoft);
            // 3
            ShareProg shareSoft = new ShareProg();
            shareSoft.SoftName = "Текстовый редактор";
            shareSoft.SoftVendor = "ООО Скорпион";
            shareSoft.InstallDate = new DateTime(2016, 2, 10); //10-го февраля
            shareSoft.ShareDays = 50;
            listSoft.Add(shareSoft);
            // 4
            PropProg propSoft = new PropProg();
            propSoft.SoftName = "САПР";
            propSoft.SoftVendor = "ООО Скорпион";
            propSoft.InstallDate = new DateTime(2016, 2, 10); //10-го февраля
            propSoft.Price = 300;
            propSoft.ExpireDate = new DateTime(2016, 4, 1); //1-го апреля
            listSoft.Add(propSoft);
 
 
            //выводим общий список:
            Console.WriteLine("---------------------------------------------------------");
            foreach (Prog soft in listSoft)
            {
                soft.PrintInfo();
            }
            //выводим с те, что можно использовать:
            Console.WriteLine("Можно использовать следующие программы:");
            foreach (Prog soft in listSoft)
            {
                if (soft.isWorking())
                    soft.PrintInfo();
            }
            Console.WriteLine("Нажмите любую клавишу...");
            Console.ReadKey();          //ожидание нажатия клавиши
 
        }
    }
 
    enum eSoftType
    {
        Unknown,
        Freeware,
        Shareware,
        Propware
    }
 
    abstract class Prog  //БАЗОВЫЙ КЛАСС
    {
        protected string m_SoftName;          //название программы, 
        protected string m_SoftVendor;          //производитель программы, 
        protected eSoftType m_SoftType;          //тип программы, 
        protected DateTime m_InstallDate;     //дата установки, 
        //конструктор без параметров
        public Prog()
        {
            m_SoftName = "Неизвествная программа";
            m_SoftVendor = "Неизвестный производитель";
            m_SoftType = eSoftType.Unknown;
            m_InstallDate = DateTime.Now;
        }
        //конструктор c параметррами
        public Prog(string softName, string softVendor, eSoftType softType, DateTime installDate)
        {
            m_SoftName = softName;
            m_SoftVendor = softVendor;
            m_SoftType = softType;
            m_InstallDate = installDate;
        }
        //===========   СВОЙСТВА ============
        public string SoftName
        {
            get { return m_SoftName; }
            set { m_SoftName = value; }
        }
 
        public string SoftVendor
        {
            get { return m_SoftVendor; }
            set { m_SoftVendor = value; }
        }
 
        public eSoftType SoftType
        {
            get { return m_SoftType; }
            set { m_SoftType = value; }
        }
 
        public DateTime InstallDate
        {
            get { return m_InstallDate; }
            set { m_InstallDate = value; }
        }
 
        //вывод информации на экран:
        public virtual void PrintInfo()
        {
            Console.WriteLine("Программа: '{0}', производитель: '{1}', тип: '{2}', дата установки: {3}'",
                               m_SoftName, m_SoftVendor, m_SoftType, m_InstallDate);
        }
        public virtual bool isWorking() //возможность использования
        {
            return true;
        }
 
    }
 
    
    class FreeProg : Prog   //Свободное 
    {
        public new eSoftType SoftType
        {
            get { return eSoftType.Freeware; }
        }
 
        //вывод информации на экран:
        public override void PrintInfo()
        {
            Console.WriteLine("Программа: '{0}', производитель: '{1}', тип: 'Бесплатная', дата установки: {2}'",
                               m_SoftName, m_SoftVendor, m_InstallDate);
        }
 
        public override bool isWorking() //возможность использования
        {
            return true;
        }
    }
   
    class ShareProg : Prog  // Условно-беспладное
    {
        private int m_ShareDays; //срок условного использования (дни)
 
        public new eSoftType SoftType
        {
            get { return eSoftType.Shareware; }
        }
        public int ShareDays
        {
            get { return m_ShareDays; }
            set { m_ShareDays = value; }
        }
        //вывод информации на экран:
        public override void PrintInfo()
        {
            Console.WriteLine("Программа: '{0}', производитель: '{1}', тип: 'Усл-Бесплатная', дата установки: {2}'",
                               m_SoftName, m_SoftVendor, m_InstallDate);
        }
 
        public override bool isWorking() //возможность использования
        {
            return (m_InstallDate.AddDays(m_ShareDays) >= DateTime.Now);
        }
 
    }
    
 
    class PropProg : Prog      // Коммерческое
    {
        private int m_Price;           //цена
        private DateTime m_ExpireDate; //дата использования по лицензии
 
        public new eSoftType SoftType
        {
            get { return eSoftType.Propware; }
        }
        public int Price
        {
            get { return m_Price; }
            set { m_Price = value; }
        }
        public DateTime ExpireDate
        {
            get { return m_ExpireDate; }
            set { m_ExpireDate = value; }
        }
        //вывод информации на экран:
        public override void PrintInfo()
        {
            Console.WriteLine("Программа: '{0}', производитель: '{1}', тип: 'Коммерческая' (цена: ${2}), дата установки: {3}'",
                               m_SoftName, m_SoftVendor, m_Price, m_InstallDate);
        }
 
        public override bool isWorking() //возможность использования
        {
            return (m_ExpireDate >= DateTime.Now);
        }
 
    }
}
Ругается вот на эту часть кода:
C#
1
listSoft.Add( new Prog());
Пишет ошибку: Невозможно создать экземпляр абстрактного класса 1.Prog
Помогите,пожалуйста,ее исправить...
Ответ: Zvuk9, ну замените автоматическое создание экземпляров
C#
1
2
3
4
FreeProg freeSoft = new FreeProg();
            freeSoft.SoftName = "Графический редактор";
            freeSoft.SoftVendor = "ООО Скорпион";
            freeSoft.InstallDate = new DateTime(2016, 2, 10); //10-го февраля
на ручное создание пользователем. И сделайте ограничения по диапазону для даты и еще чего то например и выбрасывайте исключеения если что некорректно. Ну и обрабатывайте это в try/catch