Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не срабатывает проверка на Null , помогите! / 6 сообщений из 6, страница 1 из 1
18.11.2003, 13:42
    #32327418
Nrisimha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает проверка на Null , помогите!
Не срабатывает проверка на Null:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Process [] processes=Process.GetProcesses( "Fractal" );
foreach(Process proc in processes)
{
 if (proc.MainModule.ToString()==null)
  Console.WriteLine ( "Null" );
 else
  Console.WriteLine (proc.MainModule.ToString());
}	
...
Рейтинг: 0 / 0
18.11.2003, 13:44
    #32327422
Nrisimha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает проверка на Null , помогите!
вместо Fractal поставьте имя своего компутера!
...
Рейтинг: 0 / 0
18.11.2003, 14:20
    #32327496
Г@Д
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает проверка на Null , помогите!
Не срабатывает проверка на Null
не смеши народ. это не проверка на null

такое ощущение, что все ответы, которые дают тебе, исчезают как в песок. ведь явно было же написано, что на null надо проверять объект, а не строку.
тем более если proc.MainModule равен null, то методами пользоваться нельзя. и иметь ты будешь то, что имел и имеешь.
...
Рейтинг: 0 / 0
18.11.2003, 15:21
    #32327604
Nrisimha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает проверка на Null , помогите!
Оказывается проверка на Null происходит, вот более умный код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
string s;
s=Environment.MachineName;
Console.WriteLine( "Имя компьютера: {0 }.", s);
Process [] processes=Process.GetProcesses(s);
foreach(Process proc in processes)
{
 if (proc.MainModule ==null)
  Console.WriteLine ( "Null" );
 else
  Console.WriteLine (proc.MainModule.FileName.ToString());
}	

Но оказывается когда подходит к процессу Idle, то программа вылетает, с ошибкой : доступ к этому процессу запрещен, вот как!
Как же узнать, как выловить процессы запрещенные?
вот дословно что пишет VS:

C:\WINNT\explorer.exe
C:\WINNT\system32\lsass.exe
D:\Program Files\Microsoft Visual Studio\VB98\vb6.exe
D:\Program Files\Winamp\winamp.exe
d:\program files\microsoft enterprise instrumentation\bin\trace service\tracesessionmanager.exe
c:\Program Files\Common Files\Microsoft Shared\VS7Debug\mdm.exe
D:\MyProjects.NET\Programs\Process\procees001\bin\Debug\procees001.exe
D:\ICHAT\ICHAT.EXE
C:\WINNT\system32\services.exe
\??\C:\WINNT\system32\csrss.exe
D:\soft_vadim\miranda\miranda32.exe
C:\WINNT\system32\internat.exe
C:\WINNT\system32\regsvc.exe
C:\WINNT\system32\svchost.exe
D:\Program Files\MS Visual Studio.NET\Common7\IDE\devenv.exe
C:\WINNT\system32\svchost.exe
C:\Program Files\Tray it !\trayit!.exe
C:\WINNT\SOUNDMAN.EXE
C:\WINNT\System32\msdtc.exe
C:\WINNT\system32\dllhost.exe
D:\Program Files\Avant Browser\avant.exe
D:\Program Files\Arsenal Company\Socrat 97\SCPERS32.EXE
C:\WINNT\system32\spoolsv.exe
C:\WINNT\System32\svchost.exe
Null
\??\C:\WINNT\system32\winlogon.exe
C:\WINNT\system32\MSTask.exe
C:\WINNT\System32\WBEM\WinMgmt.exe
\SystemRoot\System32\smss.exe
d:\Program Files\DrWeb for Windows\spidernt.exe
C:\WINNT\System32\svchost.exe
An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in system.dll

Additional information: Отказано в доступе

The program '[1276] procees001.exe' has exited with code 0 (0x0).

' и тут программа вылетает!!
...
Рейтинг: 0 / 0
18.11.2003, 16:20
    #32327684
Nrisimha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает проверка на Null , помогите!
а вот как оно заработало
УРА!!!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
			string s;
			s=Environment.MachineName;
			Console.WriteLine( "Имя компьютера: {0 }.", s);
			this.listBox1.ResetText() ;

			Process [] processes=Process.GetProcesses(s);
			foreach(Process proc in processes)
			{
				try
				{
					Console.WriteLine (proc.MainModule.FileName.ToString());	
				}
				catch (Exception e)
				{
					Console.WriteLine (proc.ProcessName +  ": "  +  "Can not get process module information." );
				}

			}	
	
		}
...
Рейтинг: 0 / 0
19.11.2003, 13:32
    #32328649
Dronopotamus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не срабатывает проверка на Null , помогите!
лучше вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
foreach(Process proc in processes)
{
 if (proc.MainModule ==null)
  Console.WriteLine ( "Null" );
 else
 {
   try 
   {
      Console.WriteLine (proc.MainModule.FileName.ToString());
   } 
   catch (System.ComponentModel.Win32Exception)
   {
       Console.WriteLine (proc.ProcessName +  ": "  +  "Can not get process module information." );   
   }
 }
}


не перехватывай Exception если не можешь обработать все ошибки :)
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не срабатывает проверка на Null , помогите! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]