Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > C# и Файрфокс - ПРОБЛЕМА! Кто может - плиз, хэлп


Автор: verhovtsev 11.3.2008, 20:49
ХЭЛП! СРОЧНО НАДО!

Пишу тут одну програмку.. Открываю в сишарпе с помощью «start.process» несколько файлов в фаерфоксе (это всё в цикле). Если просишь открыть один файл - то всё ок, если несколько - то открывает или только 1-й или случайным образом любой, или сразу несколько. Если дебаггинг делаешь – то всё нормально. На одном компе попробовал через паузу (300 мс после запуска процесса) – идёт. 

Можно ли как-то решить проблему без паузы??  (т.к. она устанавливается под каждый комп индивидуально)
 
Этот же код – в эксплорер и опере работает нормально.


Заранее спасибо



Автор: Retro 11.3.2008, 23:13
verhovtsev, а код у программы есть?
В Лисе не включены всякие блокираторы?

Автор: verhovtsev 11.3.2008, 23:25

                               
Код

//для всех выбранных файлов
                foreach (ListViewItem datei in listView1.SelectedItems)
                {
                    string path = treeView1.SelectedNode.FullPath.Replace("\\\\", "\\");
                    //path = path + "\\" + datei.Text;
                    path = getFullPath(path) + "\\" + datei.Text;
               // для всех выбранных Броузеров
                        foreach (int i in checkedListBox1.CheckedIndices)
                        {
                            ListViewItem program = (ListViewItem)checkedListBox1.Items[i];
                            try
                            {
                                //startInfo.CreateNoWindow = false;
                                Process p = new Process();
                                //p.StartInfo.CreateNoWindow = false;
                                //p.StartInfo.UseShellExecute = true;
                                p.StartInfo.FileName = program.Tag.ToString();
                                p.StartInfo.Arguments = '"' + path.ToString() + '"';
                                p.Start();
                                p.WaitForInputIdle();
                           
                            }
                            catch ( Exception ex )
                            { MessageBox.Show(ex.Message,"DateienÖffner Meldung",
                                                         MessageBoxButtons.OK); }
                        }
                }
            }


Лису только скачал. Ничего в настройках не менял. Если несколько файлов в проводнике Windows открываю - все работает.. А где можно Блокираторы проверить?

Автор: Retro 11.3.2008, 23:38
Цитата(verhovtsev @  11.3.2008,  22:25 Найти цитируемый пост)
А где можно Блокираторы проверить? 

Инструменты-Настройки-Содержимое-Блокировать всплывающие окна. Там по умолчанию галка стоит.


Автор: verhovtsev 12.3.2008, 19:43
Отключил - не помогло...

Автор: Retro 12.3.2008, 20:50
Цитата(verhovtsev @  12.3.2008,  18:43 Найти цитируемый пост)
Отключил - не помогло... 

Попробуй еще переключить Вкладки, поставь открывать в новом окне. Если не поможет будем код копать.
Но если работает в ИЕ и в Опере, то проблема скорее в настройка Лисы. Попробуй поотключать их поочереди.

Автор: verhovtsev 12.3.2008, 21:40
К сожалению не работает. Интересно, что если Лиса уже открыта - все открывается нормально. Прбовал открывать Лису (без файла) из программы, а потом файлы в цикле - не работает... 
Я думаю что проблема в том, как Лиса открывается - при открытия идет проверка на существующий процесс, а потом на вкладки или окна - или что то в этом роде... Например Опера работает тоже с вкладками - и из моего кода открывает несколько файлов только если после старта ждать до "готовности процесса"
Код

p.Start();
[color=red]p.WaitForInputIdle();[/color]


Для Лисы - как я уже писал - помогает только спец. подобранная пауза - на моем компе 300ms

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)