[ dava @ 18.05.2009. 08:09 ] @
Pravim neku aplikaciju koja bi preuzimala neke podatke sa serijskog porta i to sve radi dok serijski port ne dodje u nekakvo stanje mrtvila. Programski kada provjeravam port je navodno zatvoren, ali kada ga pokusam otvoriti desava se exception.

Code:
A first chance exception of type 'System.UnauthorizedAccessException' occurred in System.dll


Iz te situacije se iscupam tako sto diseblujem pa eneblujem com port kroz Device Menager. Zanima me kako bih programski mogao to da uradim (disable pa enable serijskog porta)?
[ Igor Gajic @ 18.05.2009. 12:49 ] @
Imas mali MS utility DevCon na:
http://support.microsoft.com/kb/311272

Mozes s njim preko command prompta menjati uredjaje u device manageru.

Dakle pozoves ovaj utility preko Process.Start(...) i prosledis mu parametre za koji port hoces da resetujes...
[ dava @ 19.05.2009. 10:44 ] @
Naisao sam i ja na taj alatic, ali bih vise volio da mogu to odraditi bez dodatnih alata, pa sam ovdje postovao.
U svakom slucaju hvala.
[ dava @ 19.05.2009. 18:37 ] @
Da jos malo produbljimo temu.
Da bih pomocu ovog fajla uradio disable pa enable serijskog porta u komandi moram poslati hardwareId porta, a koji je kod mene na racunaru ACPI\PNP0501\1.
Primjetio sam da je taj isti Id na jos jednom racunaru, pa me zanima da li je na svim racunarima takav id za Com1 i zanima me (ako se razlikuje od racunara do racunara) kako bih mogao pomocu istog alata (DevCon) da saznam id od com1 i da mu takav prosledim.

devcon disable ACPI\PNP0501
[ DarkMan @ 20.05.2009. 13:47 ] @
Na stranici koju ti je Igor dao imas uputstvo kako se alat koristi.
Najjednostavnije bi ti bilo da izlistas portove i isparsiras rezultat.
Code:

devcon resources =ports


Ako neces da koristis eksterni alat mozes probati sledece
http://www.codeproject.com/KB/cs/HardwareHelper.aspx


[ dava @ 20.05.2009. 20:35 ] @
Ovo je pravo rjesenje, preko API f-ja. Mnogo mi je lakse nego da moram da se brinem za externi alatic da bude tu, odnosno da dolazi sa instalacijom.
Inace, dok sam radio u VB6 intenzivno sam koristio API f-je.
Hvala vam obojici.