- Okosóra és okoskiegészítő topik
- One mobilszolgáltatások
- Samsung Galaxy S25 - végre van kicsi!
- Samsung Galaxy Watch7 - kötelező kör
- Milyen okostelefont vegyek?
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Leesett a kamionról több millió eurónyi Z Fold7
- Garmin Venu X1 - vékony, virtuóz, váltságíjas
- Bemutatkozott a Poco X7 és X7 Pro
- Poco F6 5G - Turbó Rudi
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
Mobilarena
Új hozzászólás Aktív témák
-
Feladat:
egy webes időpontfoglalóra kellene írnom olyat ami autómatán kattint szabad időpontra amikor az elérhető.Jelenleg kész van az alábbi:
Chrome autosavewebpage pluginnal lementi percenként az oldalt (ez kevés, le kellene vinnem 10-20sec-re)
Majd egy vb.net progi a lementett oldalon megkeresi hogy van-e submit gomb aztán jelez hanggal.A gond az hogy legrosszabb esetben 1 perc 10 másodperc alatt jutok információhoz az időponttal kapcsolatban és még rá is kell kattintanom szóval olyan 10-70s az átfutási idő. Ezt kellene lerövidítenem.
Arra gondoltam hogy keresek másik refresh progit az oldalra. Na de hogyan kattintok egy elemre a weboldalon? Chrome plugin nem tudom van-e ilyenre. vb.net beépített böngészőjén gondolkodom de az nem biztos hogy működik az időpontfoglalóval. (közlekedésfelügyelet, ügyfélkapus bejelentkezés)
-
Cégnél van pár program ami néha frissítést kér. Ezt egy exe file és silent kapcsolóval szoktam csinálni egy parancsikonról hálózatról. (több ilyen is van)
Szeretném ezt automatizálni.
Így hát írtam rá egy egyszerű programot vb.nettel ami az alábbit csinálja:
megnézi hogy hálózaton a frissítések mappában milyen exéket raktam be
megnézi hogy adott szoftver van-e a gépen ami szerepel a frissítendők között
elindítja az adott frissítést waitforexit majd indítja a következőt persze mind silent kapcsolóval
Cél az lenne hogy egy egy programnál ne kelljen nekem egyenként gépenként frissítgetni, tartomány nincs így login scriptet nem tudok futtatni de feladatütemezővel oldanám meg bejelentkezéskor.Na a gond az hogy user bejelentkezik és a progi működik viszont jogosultságot kér. Ha beikszelem a feladatütemezőbe hogy futtatás a legmagasabb jogokkal akkor a program nem képes indítani semmit a hálózatról (gondolom mert a helyi rendszergazda fiók nem fér hozzá a hálózati dolgokoz)
Tehát hogyan tudom úgy futtatni a programot hogy user bejelentkezik és a windows NE kérjen tőle semmilyen interakciót hanem szépen fusson le minden amit a programom hív meg.
Ha user rendszergazda vagy rendszergazda nevében indítom akkor is bejön az UAC jóváhagyása az exékre egyenként.
Szóval nekem az kellene hogy a program egyszer sem vagy maximum egyszer kérjen jóváhagyást és ne egyenként.Részlet a kódból:
Dim szamlazohelye64 As String = "C:\Program Files (x86)\Kulcs-Soft\Kulcs-Számla\szamla.exe"
Dim szamlazohelye32 As String = "C:\Program Files\Kulcs-Soft\Kulcs-Számla\szamla.exe"
Dim szamlazoupdatehelye As String = "\\SZERVER\public\Kulcsszoft frissítések\Xszamlazoupdate.exe"
If My.Computer.FileSystem.FileExists(szamlazoupdatehelye) Then
log = log & vbCrLf & d & " Számlázó frissés file megvan"
If My.Computer.FileSystem.FileExists(szamlazohelye64) Then
log = log & vbCrLf & d & " Számlázó gépen megtalálva"
Process.Start(szamlazoupdatehelye, " /silent").WaitForExit()
log = log & vbCrLf & d & " Számlázó gépen frissítve"
Else
If My.Computer.FileSystem.FileExists(szamlazohelye32) Then
log = log & vbCrLf & d & " Számlázó gépen megtalálva, de nem az x86 mappában"
Process.Start(szamlazoupdatehelye, " /silent").WaitForExit()
log = log & vbCrLf & d & " Számlázó gépen frissítve"
Else
End If
End If -
Találtam egy exceldatareader nevű ingyenes valamit nuget csomagként. Aztán beolvasta de 2-3 perc alatt, de szerencsére datagridview paramétereiben állítgattam dolgokat most pár másodperc alatt beolvassa és megjeleníti.
Igaz ez még csak a kis táblázat (1700 oszlop, 45 sor) de a nagyobbal is max 5 másodperc lehet.
Lényeg hogy működik! -
válasz
sztanozs #18610 üzenetére
Ez jó lenne bár nem tudom hogy kezeli azt ha nem létezik annyi oszlop. Mivel változó oszlopszámom van. Kb átlag 1400-1500 oszlopom van. (15 oszlop per nap legalább 3 hónapnyi adat kell egyszerre de jó lenne egy évre is megcsinálnom az kb 5400 oszlop) magyarán előre ki kell számolnom 5400 oszlopra a beolvasast az meg kb 22 beolvasás. Habár ha az első errornál abbahagyhatja. Vagy valahogy lekérdeznem mennyi oszlop van és az szerint beovasnom.
Megpróbálom köszi! -
Van benne dátum és pénzösszeg is.
A másik gond hogy mi a legegyszerűbb kód beolvasásra?
Amit találtam az nem kezeli azt hogy ismétlődnek az oszlopok neve az első sorban. Az oledb megoldotta hogy megtoldotta az oszlopnevet számmal. Első sor oszlopneveket tartalmaz valahogy így néz ki:
Dátum, lerakó,dátum,felrakó,számlaszám,összeg,dátum...
És így tovább ismétlődik szabályosan persze ennél több adattal csak lényeget emeltem ki.
A sorok pedig rendszámokat jelölnek. -
Vb.net (visual studio 2022)
Van egy bazi nagy excel táblám amiből adatokat nyerek ki és egy program generálja, annak az oszlopszáma meghaladja a 255-öt. Hogyan tudom beolvasni sima datagridview-be?
most egy sima oledb-t használok beolvasásra ami nem olvas be 255-nél többet:
conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + bemenetexcel + ";Extended Properties=Excel 12.0;")
Kimenetnek nem gond mert az eredmény kevesebb mint 255 oszlop lesz és a sorok is ilyen max 100-as darabszámúak. Szóval visszaírnom nem kell sok oszopszámmal de beolvasni igen.
-
-
.NET visual basic 2017
datagridview-et feltöltöm adatokkal és szeretnék egy cellából adatot kimásolni vágólapra hogy beillesszem kézzel máshova (akár más programba)
Ha belekattintok és nyomok egy ctrl+c-t akkor az egész sort viszi, nem jó!
Ha belekattintok és kijelölöm a szöveget akkor is az egész sort viszi ctrl+c-vel! megint nem jó!
Ha belekattintok és kijelölöm a szöveget és egérrel jobb gomb másolás akkor viszi az adott cellában lévő adatot, így szeretném ha ez történne a fenti két esetben is!
Az igaz hogy a datagridview az egész sort jelöli ki egy kattintásra mert látnom kell melyik sorral dolgozok éppen.
Azt szeretném ha a cellán állok és úgy ctrl+c-zek akkor csak a cella tartalmát vigye vágólapra ne pedig az egész sort, de úgy is jó ha nekem kell belekattintani szerkesztő módba! -
válasz
Zalanius #11983 üzenetére
Köszi!
így csináltam meg:
Public strCon As String = "Data Source=" & sqlszerverneve & ";Initial Catalog=" & adatbazisnev & ";User ID=sa;Password=" & sqlsajelszo & ";Connection Timeout=50;"
Dim adapter As New SqlDataAdapter("select teljesnev from felhasznalok WHERE felhasznalonev = '" & felhasznalonev & "'", strCon)
Dim dataset As New DataSet
adapter.Fill(dataset)
teljesnev = (dataset.Tables(0).Rows(0).Item(0))szóval a dataset szimpatikus, ürítgetem és feltöltöm amire szükség van azzal.
-
Hali mindenkinek!
VB.NET-ben írogatok néha és szeretnék SQL-el dolgozni benne. Lenne egy megbízólevél amit megadott adatok alapján kellene kitöltenie a proginak. Tudom egyszerűbb lenne egy körlevélkészítő de szeretném én magam megcsináni.
Jelenleg egy neten talált kód alapján írtam egy nagyon egyszerű login ellenörzőt ami csak arra kell hogy a felhasználó név alapján töltsön ki egy űrlapot. Nem is igazi login de célnak megfelel.
Public con As New SqlClient.SqlConnection
Public strCon As String = "Data Source=" & sqlszerverneve & ";Initial Catalog=" & adatbazisnev & ";User ID=sa;Password=" & sqlsajelszo & ";Connection Timeout=50;"
Public Sub loginellenorzes()
sql = "select count(*) from felhasznalok where felhasznalonev=@felhasznalonev and jelszo=@jelszo"
Using Conn As New SqlConnection(strCon)
Using cmd As New SqlCommand(sql, Conn)
Conn.Open()
cmd.Parameters.AddWithValue("@felhasznalonev", felhasznalonev)
cmd.Parameters.AddWithValue("@jelszo", jelszo)
Dim value = cmd.ExecuteScalar()
If value > 0 Then
Foablak.Show()
Loginablak.Hide()
Else
MessageBox.Show("Hibás fehasználónév/jelszó")
End If
Conn.Close()
End Using
End Using
End SubEddig ez okés is, tökéletesen működik.
Viszont kellene egy sub visszatérő értékkel ami azt csinálja hogy megadott sql parancsokat végrehajt majd visszadja az eredményt string-be vagy tömbbe hogy azt használhassam a progiba.
Szóval mi a bevállt dolog sql lekérdezésekre? Gondolom nem kell minden egyes parancs előtt connectelni? -
VB.NET-ben szeretnék írni egy egy olyan progit ami bemásol egy adott file-t egy hasonló nevű mappába.
Tehát a fileok nevei ilyesmik:
C_20151007_0701_T_TESZT_HUG00001465560
A mappák nevei pedig pl:
TAMAS TESZTTehát mi az a kód amivel úgy tudok másolni hogy egyezést keres a filenévben és oda másolja. Az egyezéskor csak betüt kell figyelembe venni, abból is csak az összefügő nevet pl T_TESZT a név mögötti és elötti nem érdekes de azt le tudom vágni.
Addig megvan hogy beolvasom a mappák nevét és fileok nevét.Azonos vezetéknév miatt figyelnem kell az egész névre tehát a keresztnév első betűje is fontos.
-
Távoli asztali programot szeretnék írni visual studio-ban. Rengeteg leírás van hozzá és már példák alapján sikerült is összehozni.
Ami viszont nekem kellene az az hogy ne kelljen tűzfalat nyitni hozzá. Ez valami NAT-olás dolog lehet, de nem tudom hogyan kezdjek hozzá. Olyasmi megoldást szeretnék mint a teamviewer ami át megy mindenen.
Tehát lenne egy központi szerver rész amire feljeletkeznek a kliensek és én távolról látnám a képernyőjüket (mjpeg stream megoldást találtam) és egeret, billt tudnék vezérleni távolról.
Szóval mi is az a hálózati dolog amitől nem kell portot nyitni?
Hogyan működik ez többszörösen natolt hálózatokon? (pl mobilnet ahol nincs saját külső ip és pluszba még egy routeren is át kell menni) -
Köszi!
Maradt a pingelés, találtam egész jó kódot rá. [link]
Leírom hátha másnak is kell. Lényege hogy aszinkron csinál pinget, nem kell megvárni az eredményt hanem egyszerre többet csinált több szálon. Így az egész tartományt egyszerre pingelem. Feltétele minimum VS2010 SP1 és Async CTP sp1 , persze nekem valamelyik windows frissítés hiánya miatt nem ment fel az async ezért az egészet lecserélem VS2012-re.
Aztán rájöttem hogyha egy gépet kijelölök akkor is nézze meg az állapotát, így nem kell gyakran pingelni mindent.
Fileshare is jó ötlet, de van pár speckó eset (pl: win7 hálózatfelderítés off) amikor nem megy viszont mégis elérem a gépet más módon (TV/VNC). -
válasz
martonx #6195 üzenetére
Nem nyert! Ezeket már végigjártam. Igazán segítőkész vagy!
Az a gáz hogy az active szóra az active directory jön ki googléból . Eddig én is eljutottam, rengeteg példa van hogyan kell magát az egész active directory-t kilistáz.
Nekem a már kész listát kellene végignézetnem hogy melyik gép ad választ. Ehhez keresgélek megoldást, bár eddig többszálú pingelést látom jónak. -
Hali mindenkinek!
Egy progit írok amihez kell hogy kilistázzam az összes tartományban lévő gépet. Ez idáig megvan, csak azt kellene megcsinálnom hogy meg tudjam állapítani azt hogy a gépekből melyik van bekapcsolva.
A jelenlegi kóddal olvastatom be a tartományt:
Public Function GetComputers() As String
folista_listbox.Items.Clear()
allapotjelzo.Text = "Domain Beolvasás"
Me.Cursor = Cursors.WaitCursor
Dim domainEntry As DirectoryEntry = New DirectoryEntry("WinNT://" + tartomany)
domainEntry.Children.SchemaFilter.Add("computer")
For Each computer As DirectoryEntry In domainEntry.Children
result = computer.Name & Environment.NewLine
allapotjelzo.Text = "Domain Beolvasás kész!"
allapotjelzo.Text = result & " Hozzáadva"
folista_listbox.Items.Add(result)
allapotjelzo.Text = folista_listbox.Items.Count & " gép a listában"
Next
Me.Cursor = Cursors.Default
Return result
End FunctionA kérdésem az lenne hogy milyen módon állapíthatom meg hogy melyik gép van bekapcsolva a tartományban? Pingre gondoltam de nem találtam elég gyors megoldást rá (10 percenként végigpingelni több mint 200 gépet sztem gáz lenne), esetleg tudná-e valaki hogy a DirectoryEntry-ben van-e valami aktív gép jelző az is jó lenne.
Korábban igen primitív módon oldottam meg és nem is működött jól. (meg kellet várni az eredményt, valamint az offline gépeket nem kaptam meg, és a beolvasás pillanatában sem volt teljesen friss a lista)
netexe = "C:\Windows\System32\net.exe"
Me.Text = "domain beolvasás"
Me.Cursor = Cursors.WaitCursor
Dim shellink As String
shellink = "cmd /c " & netexe & " view > " & geplistatxt(Ja és ez Visual studio 2010, VB.NET)
-
válasz
ArchElf #5916 üzenetére
VB.NET 2008
A kaja az a legfontosabb gomb a progiban
, kiírja hogy a környéken aznap milyen menü van a kajáldákban.
Így nem kell végignézegetnem a weboldalakat egyenként. Nehogy már rendszergaziként ne tudjam egyből hova megyek kajálni.
Volt benne WOL magicpacket is amivel fel lehetett ébreszteni a gépet kikapcsolt állapotban de kevés gépen ment biosbeállítás miatt és nem is használtam. Éppen ami kell az belekerül, inkább elcseszek pár napot egy kóddal minthogy 250 gépen kelljen végigmenni egyenként amire egyébként is időm. Elképesztően sok dolgot automatizáltam, ha nem tettem volna akkor már idegbeteg lennék vagy munkanélküli esetleg mindkettő. Van hogy le kell olvasni a nyomtatott lapok számát, na az a nyomtatók webes felületéről szedi össze a dolgokat, minek menjek végig kézzel nyomogatva. Másolgatás, frissítés, átírás, tömeges beállítások átírása ez mind automatizálható. De csak ebben a környezetben működik mivel sok mindent szed a hálózati meghajtókról és szerverekről.
Viszont az irodai vízforralót még nem tudtam automatizálni hogy pontosan 70 fokra melegítse a vizet a zöld teához. Soros porton csináltam már hőmérőt, de 230v-ba inkább nem nyúlok bele csak azért hogy kikapcsoljam időben.
Korlátlan lehetőség van, csak valamiért még mindig kőkorszakban élünk pedig filléres téma lenne összehozni olyan dolgokat mint ami a sci-fii filmekben van a jövő házairól.
-
válasz
ArchElf #5914 üzenetére
Ez visual basic.
A progim egy eléggé öszetett valami. Lekérdezi a tartomány összes aktív gépét majd azokkal lehet műveleteket végezni. Kiválasztani listából gépeket aztán VNC vagy Teamviewerrel rámegy atól függően mi van rajta. Kattintásra nyomtatót telepít, fileokat cserél, java-t flasht adobe cuccokat updatel. -
válasz
ArchElf #5912 üzenetére
Ha jól vettem ki a kódból akkor ez felveszi hálózati meghajtóként és úgy másolgat. Kifejezetten tetszik az ötlet, az a gáz hogy nekem ezt a másolgatást egy meglévő progiba kellene beleraknom. Habár bele tudom rakni ezt a batot is kívülről meghívogatva. Ez a kód jó lesz, csak pár másodpercet vár ha gáz van.
-
Vb.net 2008-al írogatok pár progit és rendszeresen belefutok egy dologba amit nem tudok normálisan megoldani. Arról lenne szó hogy van 250 gép amiknek a default share (c$)-jára szeretnék másolgatni majd elindítani, tehát egyszerű másolásról van szó az indítást meg wmimgt create process-el oldottam meg.
A probléma azzal van hogy másoláskor ha a program nem ér el c$-t akkor totálisan szétfagy kb 20-30 másodpercre. A kérdés az lenne hogy milyen megoldással tudok úgy gépekre másolni hogy ne fagyon szét csak dobjon ki azonnal egy hibaüzenetet és ne fél percel később.Jelenleg így néz ki a másolós rész:
strComputer = txtComputer.Text
filemasolando = "*******\Update\valami.exe"
ujfilehelye = "\\" & strComputer & "\C$\update\valami.exe"
System.IO.File.Delete(ujfilehelye)
Directory.CreateDirectory("\\" & strComputer & "\c$\update\")
If System.IO.File.Exists(filemasolando) = True Then
If System.IO.File.Exists(ujfilehelye) Then
System.IO.File.Replace(filemasolando, ujfilehelye, Nothing)
Else
System.IO.File.Copy(filemasolando, ujfilehelye)
End If
End IfTehát ez tökéletesen jól működik (azaz kicsit kibővítve hibakezeléssel), viszont ha nem elérhető a c$ akkor totálisan szétfagy az egész ami azért sok gépnél rengeteg idő. Kellene valami ami ellenőrzi hogy működik-e a gép és elérhető a c$ (esetleg visszakapcsolni valahogy kóddal a file és nyomtatómegosztást)
Fagyást backgroundworkerrel tudom enyhíteni de ez nem megoldás. Vagy csinálja vagy ne csinálja de ne csesszen el fél percet a próbálkozásra.(nemröhög!, kezdő vagyok és c64-en nőttem fel)
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Siguro AC-C140W Cool 9 Mobil klíma, mobilklíma + ajándék
- Lenovo Ideapad3 Ryzen3-3250 MAGYAR Billentyű IPS FHD 12gb ram 256 ssd windows11
- PIROS Lenovo Ideapad Ryzen3-3250 IPS FHD 8gb ram 512gb ssd windows11
- Lenovo YOGA L13 Gen2 / Intel i7-1165G7 / 16gb ddr5 / 500gb ssd / FHD TOUCH / Ceruza / windows11
- Lenovo ThinkPad L390 / Intel Core i3 / 8gb ram / 256gb SSD / FHD lcd /Windows 11
- Akció! Gigabyte Vision Z590 D Wi-Fi Alaplap! LGA 1200!
- Bomba ár! Lenovo ThinkPad T450 - i5-5GEN I 16GB I 256SSD I 14" HD+ I Cam I W10 I Garancia!
- Bomba ár! Dell Latitude E7440 - i7-4GEN I 8GB I 256SSD I 14" FHD Touch I HDMI I Cam I W10 I Gari!
- Eladó szinte karcmentes Samsung S21FE 5G 6/128GB / 12 hó jótállás
- REFURBISHED és ÚJ - HP USB-C Dock G5 docking station (5TW10AA) - 3x4K felbontás, 120Hz képfrissítés
Állásajánlatok
Cég: FOTC
Város: Budapest