Čteni IP s adapteru (Delphi)
Dobry den.
Potřebují v mem programu vypsat IP adresu,masku,branu a DNS připojeneho adapteru.
Pohrála jsem si tady s tímto zdrojakem a obrátila ho.
http://delphi.cjcsoft.net/viewthread.php?tid=43310
Pokud je IP necvakaná ručně tak mi to funguje.
Pokud je adapter nastaven pro získání IP s DHCP tak to IP nenačte.
Mužů mít v mem zdrojaku něco špatně nebo to fakt neumí vyčíst IP získanou s DHCP.
Popřipadě poradite nějaky jiny zpusob jak tu IP ziskat.
Tak jsem přečetla to co psal Snoop a jsem si jista že to určitě nedám.
Teda jsem se rozhodla pro tu 2 variantu
Zavolat IPConfig a vyčíst z něj informace.
To bych mohla zvladnout.
Neproradí někdo jak přidat do delphi komponentu doscommand.
Máme ve škole ve třidách vice verzi Delphi ale nejraději bych to rozchodila na XE2.
Prý v 2 ročníku pojedeme jen na nich , a ja budu o krok dopředu.
Už se těším .
K tomu nepotrebujes zadnou komponentu
Spust si:
Samozrejme ciste je zjistit systemovy adresar pomoci napr. SHGetSpecialFolderLocation(), ale pro skolni priklad by to melo stacit
Tu 31 jsem pochopila s: String a ne AnsiString takže 31 a 35 vyřešen,zbyvji 2 chyby na řadku 32
Jinak bych chtěla i vám poděkovat za pomoc a trapení se mnou.
Jsem vděčna každemu kdo pomuže a poradí.
A nevypisuje to nahodou ten adapter, ktery je pravě aktivi.
Prozrad prosim jak tu komponentu dostat do Delphi.
Tu komponentu nemusis dostavat do Delphi. Muzes si ji za behu vytvorit.
Pokud ji chces nainstalovat do Delphi, tak v menu Component / Install Component si vyber unitu, vysledny balicek (uzivatelsky) a nech Delphi kompoenntu nainstalovat.
Pokud to v D XE zmenili a tato moznost tam neni, pak musis editovat uzivatelsky balicek, pripadne vytvorit novy Package, do nej pridat unitu DosCommand, balicek oznacit jako runtime i designtime a prekompilovat.
No tak jsem se až včera k tomu dostala a nějak nevím jak na to.
Component - Install Component a v prvním okně unit file name vyberu DosCommand.pas a nechám Instal existing package.
Next a jsem v ????
Našla jsem na netu tohle compinstall.html
V kolonce Search Patch mam
$(BDSLIB)\$(Platform)\release;$(BDSUSERDIR)\Import s;$(BDS)\Imports;$(BDSCOMMONDIR)\Dcp;$(BDS)\includ e;C:\Program Files\FastReports\LibD16;$(BDS)\RaveReports\Lib;C: \Program Files\Raize\CS5\Lib\RS-XE2\Win32
Kde najdu baličky (Package name) do kterych to mohu strčit.
Ja hledala ten baliček co je použit v tom navodu a mam ho c:\Program Files\Embarcadero\RAD Studio\9.0\lib\win32\release\dclusr.dpk
Zajimalo by mně i jak vytvořit tu komponentu za běhu.
Mame ve škole užasneho učitele, ktery na každou otazku, ktera je mimo probiranou osnovu da jasnou odpověd.
Kdo si počka,ten se dočka
I s instalovaním te komponenty mně poslal do haje.
DosCommand neudela nic jineho nez spusteni IPCOnfig a odchyceni vyberu.
Nebudes mit jednodussi, kdyz to udelas tak, ze vysledek ulozis do souboru a ten zpracujes, jak jsem popisoval vys?
Pokud chces komponentu vytvaret za behu, vydrz, vecer to vyzkousim a napisu. Krome vytvoreni bude treba napsat i obsluhu udalosti prave pro odchyceni vystupu a z hlavy nevim, jake udalosti DosCommand ma
Nenajde se tu nějaky profik, ktery vysvětli ubohe blondyně, jak přidat tu komponentu do XE2
"Úbohá blondýno"... Netráp sa ťažkými API funkciami alebo zachytávaním výstupu príkazového riadku a pozri sa sem: www.magsys.co.uk
Stačí stiahnuť: magiphlp25.zip rozbaliť a nakopírovať do adresára, kde máš projekt iba 2 unity:
IPHelper.pas, IPHLPAPI.pas.
Vytvor si projekt, na form si pridaj napr. TMemo, TButton, použi funkciu: IpHlpAdaptersInfo(var AdpTot: integer;var AdpRows: TAdaptorRows): integer; z knižnice IPHelper.
príklad:
Testované "narýchlo" v XE2 a funguje...
A tohle mela jako odpoved uz nahore, i vcetne tech knihoven
Jen to nebylo takto takto zabalene stuzkou.
Děkují moc chrabrý zachránče
Vyzkoušeno a funguje.
Stejnak by mně však zajímalo jak přidat tu komponentu do XE2.
Pokud se nenaučím v Delphi přidávat komponenty, tak se moc daleko nedostanu a čekat na toho vola ve škole se mi nechce.
Kdyby jste měl někdy v budoucnu chvilku času a kouk na to.
Budu pravidelně tento topik sledovat.
Ještě jednou moooc dik.
Dobry den.
Pan Jan Fiala tu dal zdrojaček.
Marně se to snažim rozchodit v XE2.
Rad bych to použil ne pro IPConfig ale tracert.
Pujde to nějak.
A kde ti to konkretne hlasi problem?
To same co psala nahoře Marcelka.
[DCC Warning] Unit1.pas(32): W1044 Suspicious typecast of string to PAnsiChar
[DCC Error] Unit1.pas(32): E2010 Incompatible types: 'PWideChar' and 'PAnsiChar'
[DCC Error] Unit1.pas(32): E2010 Incompatible types: 'PWideChar' and 'Integer'
řadek 32 je
PAnsiChar() nahrad za PWideChar()
Ještě posledni
[DCC Error] Unit1.pas(32): E2010 Incompatible types: 'PWideChar' and 'Integer'
Zkontroluj si parametry funkce podle napovedy s tim, co tam posilas.
Zkus to takto:
Dobrý den.
Nějak nemohu pohnout s tým co tu dal pan Jan Fiala.
Ve stringu s mi to vrací cestu k souboru .LOG
Pokud jsem to pochopil tak si to uloží do toho souboru LOG výpis s IPConfig a pak načte do s.
Je to to same, když použijí toto?
ShellExecute( handle, 'open', 'cmd.exe', '/q /c ipconfig -all > C:\logs1.txt', nil ,SW_SHOWNORMAL );