Hirdetés

2024. május 27., hétfő

Gyorskeresés

Hozzászólások

(#8901) joysefke válasza sztanozs (#8900) üzenetére


joysefke
veterán
LOGOUT blog

Ez a hozzáállás egész jó addig, míg be nem kopogtat az audit (vagy amíg el nem megy a "jóképességű" fejlesztő és a kollégák support nélkül maradnak).

Ezt nekik kell tudni. Ha mindig minden csapat arra várna, hogy majd fölülről biztosítanak/megoldanak mindent, és olyanoktól várná a segítséget akiknek egyébként fogalma sincsen az egyén vagy a csoport munkájáról, szükségleteiről, akkor a béka segge alatt lenne a termelékenység.

Ha a fejlesztő a csapat büdzséjéből kap órakeretet, hogy fejlessze a csapat toolingját, akkor értelmes elvárás az, hogy módosíthatóra, bővíthetőre csinálja -hosszabb életűre tervezi-, és ha elmegy, akkor valakinek aktívan átadja a fejlesztést. Ez a valaki nyilván ugyanabból a csapatból -az eszközt használóékból- kerül ki.

Ha a fejlesztő önszorgalomból csinálja, saját produktivitását növelendő (meg nyilván tanulni) akkor nyilván lesz amilyen lesz, működik ahogy működik, sok elvárás nem lehet vele szemben. Ha nagyon hiányos a tooling akkor ebből úgyis tanulópénz lesz majd valaki következő próbálkozáshoz...

Nekem jó tapasztalataim vannak azokkal a cégekkel ahol az IT nem belső ellenségként tekint a felhasználókra és csoportokra akiknek a jogkörét a szükséges abszolút minimumra kell csökkenteni.

[ Szerkesztve ]

(#8902) sztanozs válasza joysefke (#8901) üzenetére


sztanozs
veterán

Nekem jó tapasztalataim vannak azokkal a cégekkel ahol az IT nem belső ellenségként tekint a felhasználókra és csoportokra akiknek a jogkörét a szükséges abszolút minimumra kell csökkenteni.
Nekem pedig rossz tapasztalatom van olyan helyzetekkel, ahol 1-1 kiváló képességű rejtett fejlesztő hegeszt össze olyan cuccokat, amelyek ideális esetben akár 100-1000%-al növelik a termelékenységet (manuális feladatok automatizálása), de kritikus esetekben (pl windows update, vagy forrásrendszerek módosulása után) az adott osztály napokig nem tud dolgozni, mert az egy darab kolléga épp szabin van.
Tök jók az ilyen helyzetek, csak amikor egy saját célra készített eszköz már üzleti folyamatokat támogat, akkor ennek supportját is rendesen meg kell oldani. Ilyenkor pedig előjönnek a sztenderd kérdések/problémák:
- felhasználókezelés (minek?)
- változásmenedzsment, verziókezelés? (mi az?)
- adatforrásokat elérése (az én jelszavam van belekódolva)
- hogy illeszkedik ez a sztenderd architektúrába (van ilyenünk?)
- ezt nem fejleszthetted volna free VS.NET-ben (most ez miért gond, szabadon letölthető volt)

Nem csoda, hogy az IT nem szereti látni (átvenni) ezeket a zsivány fejlesztéseket...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#8903) joysefke válasza sztanozs (#8902) üzenetére


joysefke
veterán
LOGOUT blog

Amiről beszélsz az egy extrém példa és azt feltételezi, hogy a munkafolyamatnak az adott "nem hivatalos" tool megkerülhetetlenül része lett, de szupport stb érdemben nem létezik rá. Tehát a valós munkafolyamat észrevétlenül(?) már annyira módosult, hogy a hivatalosan létező eszközökkel nem végezhető el (lol).

Nyilván elméletben idáig is el tudnak jutni a dolgok, de ehhez csoport szinten masszív vezetői hozzánemértés/elalvás kell. Ilyen szintű átalakulás nem egyik napról a másikra fog megtörténni. És ha megtörténik akkor ott már sokkal nagyobb bajok voltak, mint hogy egyszer Pisti aki összekendácsolta elment szabira. Pisti valószínűleg az évek alatt sokkal többet takarított meg a cégnek, mint amibe egy kis kiesés került. Csak ezt ugye hajlamosak vagyunk nem észrevenni.

Az extrém példával -ami valahol valamikor talán előfordul- szemben amit felhoztál viszont ott van a jelenlegi és egyébként mindennapos szituáció, hogy van valamilyen folyamat aminek lehetne érdemben növelni a hatékonyságát.

Ezt a lehetőséget pedig nyilván azok fogják először (és valószínűleg egyetlenként) észrevenni, akik benne dolgoznak, tehát nem a csapatvezető főnöke, nem is annak a főnöke, nem is a részleg vezetője, és nem a magyarországi helytartó, nem is a könyvelés, és nem is az IT, főleg nem ha ez Indiában van...

Tehát a kérdés az, hogy olyan vállalati struktúra és légkör van ami felkarolja az alulról jövő újításokat vagy legalábbis eszközöket és teret biztosít hozzá, hogy a csapatok megalkossák, módosításk a saját folyamataikat/eszközeiket. Vagy olyan a vállalati kultúra ami mindig csak fölfelé mutogat, panaszkodik de képtelen fejlődni és a kihívásokra megoldásokat szállítani.

Nekem meggyőződésem, hogy még ha van is fent akarat hatékonyabbá tenni a cég működését az alulról jövő kezdeményezések halmaza nélkül a fentieknek esélye sem lesz tudni, hogy lent igazából mire van szükség (vagy hogy egyáltalán mi történik a hierarchiában lejjebb)

[ Szerkesztve ]

(#8904) leslie23 válasza joysefke (#8903) üzenetére


leslie23
tag

"Amiről beszélsz az egy extrém példa és azt feltételezi, hogy a munkafolyamatnak az adott "nem hivatalos" tool megkerülhetetlenül része lett, de szupport stb érdemben nem létezik rá. Tehát a valós munkafolyamat észrevétlenül(?) már annyira módosult, hogy a hivatalosan létező eszközökkel nem végezhető el (lol)."

ez itt a kulcskérdés, szerintem. jelenleg a saját irodai munkafolyamatainkat három fronton támadom:
1.) VSTO Add-ins: Outlookban, illetve Excelben néhány lépésből álló műveletek vannak összefűzve 1-1 custom gomb mögött a toolbaron. O365-tel tökéletesen működnek, de tegyük fel, hogy 1-2 éven belül jön egy frissítés, ami hazavágja őket és én már nem leszek itt. Egyszerűen törölni kell a bővítményeket és lehet csinálni úgy, ahogy korábban is ment, nincs szignifikáns különbség még csak időben sem, maximum egy picit bosszantóbb a feladat.
Bár az valóban gáz, amit sztanozs említett az ingyenes VS-sel kapcsolatban... :B
2.) AHK scriptek grafikus felülettel, exe-be fordítva, célszoftverek GUI-automatizációjának céljából. Itt is potenciális veszély, hogy a szoftver következő verziójában már eltérő lesz az ablakok vagy a menük felépítése, ergo használhatatlanná válnak a scriptek.
Ha így lesz, akkor ejteni kell az AHK-t, és manuálisan dolgozni, de minden feladat tökéletesen elvégezhető így is. Napi 5-10 perc intenzív kattintgatásról van szó, de ugyebár időveszteség nincs, hiszen az AHK sem gyorsabb, csak így nem szárad le az ember ujja a már a 15. másodpercben... :W
3.) VBA makrók - jelentések generálása, továbbítása Outlookon keresztül, illetve adathalmazok gyors átvizsgálása, fals adatok keresése.
Ha gikszer van, továbbra is minden elvégezhető manuálisan, a számolások és formázások, chartok beszúrása Excelben, mentés, az Outlookos e-mail megírása, a mentett fájl csatolása, e-mail küldése, korábban is így ment ez. Itt mondjuk van időveszteség, kb. 15 perc/fő, napi szinten, plusz ugyebár a hibalehetőségek száma egyértelműen magasabb manuális munka esetén.

A mostani kis garázsprojekt (leltár adatbázis alapon) viszont valóban necces audit szempontból.
Mit gondoltok az Access használatáról? Azt meg tudnám oldani, hogy a mostani lapvédelmes meg hasonló borzalmakkal tuningolt ősrégi Excel doksit adattisztítás után átdobom Accessbe, ez lenne egy egytáblás adatbázis, ami csak jelszóval szerkeszthető (olvasási joga mindenkinek van jelenleg is). És akkor ezen felül építenék egy felületet, plusz egy másik adatbázist, ami tartalmazná az apphoz kapcsolódó további adatokat, amik pl. a jogosultságkezelés szempontjából fontosak. Nyilván nem szép megoldás az egy tábla redundancia szempontjából, viszont ez így egy független, bármikor elővehető nyilvántartás, aminek van egy kényelmesebb olvasási/szerkesztési módja is, a .NET alapú GUI... :F

[ Szerkesztve ]

(#8905) joysefke


joysefke
veterán
LOGOUT blog

https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/

We’re excited to announce the release of .NET Core 3.0. It includes many improvements, including adding Windows Forms and WPF, adding new JSON APIs, support for ARM64 and improving performance across the board. C# 8 is also part of this release, which includes nullable, async streams, and more patterns. F# 4.7 is included, and focused on relaxing syntax and targeting .NET Standard 2.0.
.....
ASP.NET Core 3.0 and EF Core 3.0 are also releasing today.
Visual Studio 2019 16.3 and Visual Studio for Mac 8.3 were also released today and are required update to use .NET Core 3.0 with Visual Studio..NET Core 3.0 is part of these new Visual Studio versions. You can just get .NET Core by simply upgrading Visual Studio.

Sűrűek lehettek az utóbbi hetek Redmondban :)

(#8908) boorit


boorit
csendes tag

Sziasztok!

ASP.NET Core-ban írtam egy web app-ot, ezt szeretném most hostolni, kérdés hogy hol. Elég sok ajánlatot átnéztem az elmúlt napokban, de nem nagyon tudok dönteni, azért kérdezem itt, mert biztos van köztetek akinek van már tapasztalata ilyesmivel.

Nem lesz nagy forgalma, pár ember fogja használni, jelenleg MS SQL db-t használok, de lehet, hogy váltok SQLite-ra, úgyhogy akár DB nélküli host is jöhet. Ami fontos lenne, szeretnék saját domaint, és SSL-t hozzá (ezért esik ki az Azure, ha jól rémlik ez ott csak a Basic csomagtól van, az meg ~€50/hó, és közel sem használnám ki).

(#8909) martonx válasza boorit (#8908) üzenetére


martonx
veterán

Azure-t rosszul tudod, Shared-től kezdve van saját domain lehetőség, bár az SSL-hez picit trükközni kell. [link]

Én kérek elnézést!

(#8910) mdk01


mdk01
addikt

Sziasztok,

SZeretném megkérdezni, hogy hogyan tudok ezres csoportosítást/tagolást csinálni?
Neten kb. semmit nem találtam, angolul sem találtam meg de lehet rossz szavakra kerestem.
3000000----->3 000 000

Köszönöm

(#8911) dqdb válasza mdk01 (#8910) üzenetére


dqdb
nagyúr

.ToString("N")
[link]

[ Szerkesztve ]

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8912) mdk01 válasza dqdb (#8911) üzenetére


mdk01
addikt

Köszönöm, sikerült. :R

Visual studio-ban a Consol ablak méretének megváltoztatására tényleg nincs ennél jobb/egyszerűbb megoldás?

(#8913) joysefke válasza mdk01 (#8912) üzenetére


joysefke
veterán
LOGOUT blog

A Console utility osztály szolgál erre. Ha maxra ki akarod húzni, akkor: Console.WindowWidth = Console.LargestWindowWidth;

Még a szöveg színét is lehet állítani...

[ Szerkesztve ]

(#8914) dqdb válasza mdk01 (#8912) üzenetére


dqdb
nagyúr

Rosszul közelíted meg a dolgokat.

Konzolos alkalmazás háromféle módon indulhat el Windows alatt:
1. egy másik konzolos alkalmazásból
2. egy másik konzolos alkalmazásból kimenetet és esetleg bemenetet átirányítva
3. nem konzolos alkalmazásból

Az első esetben az alkalmazásod a hívó alkalmazás ablakát örökli meg az ott beállított mérettel, historyval és színekkel, ezt általában nem illik* felülbírálni kódból, mert te ott vendég vagy.

A második esetben az előző annyival bővül, hogy a sima Console.WriteLine hívások a képernyőre ki sem kerülnek, szóval itt a hívó ablakának beállításait kódból nemcsak nem illik felülbírálni, de értelmetlen is. Ezt az esetet a Console.IsOutputRedirected propertyvel tudod érzékelni.

A harmadik esetben a Windows megnézi, hogy az adott elérési úttal rendelkező alkalmazáshoz van-e beállítva alapértelmezett ablakméret/betűtípus/szín/stb. Ha igen, akkor azokkal indítja el az alkalmazásodat, egyébként a cmd.exe-hez tartozó alapbeállításokkal. Ekkor a kapott méreteket és egyéb beállításokat felül lehet bírálni kódból, de általában felesleges és nem szerencsés*, mert ezzel elveszed a felhasználó elől a saját igényeinek megfelelő beállítás alkalmazását. A legjobb megoldás vagy egy megfelelően felparaméterezett shortcut készítése, vagy futó alkalmazás mellett az ablakához tartozó menüben (fejléc bal oldalán lévő ikonra kattintva Defaults) átállítani, és onnantól kezdve az ott megadott értékekkel fog indulni az alkalmazás (egy adott konfigurációhoz egyszer kell beállítani VS-ből indítva, és onnantól kezdve mindig úgy fog elindulni).

* ha az alkalmazásod sima szövegkiíratás helyett valami ncurses-szerű szöveges UI-jal rendelkezik, aminek például a historyban görgetés keresztbe tesz, akkor ott természetesen kódból mindig olyanra be kell állítani az ablakot, amilyenhez a UI tervezve van (de itt is érdemes úgy megoldani a dolgokat, ha lehetséges, hogy a felhasználó által beállított ablakmérethez igazodjon a felület, mint például a FAR Manager esetében)

[ Szerkesztve ]

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8915) mdk01 válasza joysefke (#8913) üzenetére


mdk01
addikt

Köszi, megvan. :R

(#8916) mdk01 válasza dqdb (#8914) üzenetére


mdk01
addikt

Köszönöm a korrekt leírást, de nem teljesen értem. :B
Majd még holnap átolvasom, kicsit le vagyok fáradva.

(#8917) RedHarlow


RedHarlow
aktív tag

Sziasztok,

Van egy kis programom ami a winscp kereteivel segít feltölteni egy fájlt egy távoli szerverre, a feltöltés után az oracle beadarálja és elkezd generálni több száz xml-t egy mappába. A betöltés akkor sikeres ha a PROCESSED mappába legenerálódik az összes xml (néhány esetben ez akár 1000 db xml is, és akár 3 perc-5 perc is lehet mire végez), az ERROR mappába pedig semmi.

Tudna segíteni valaki megírni egy olyan for ciklust ami 30 másodpercenként lekéri a mappában található xml-ek számát, összehasonlítja azt az eredeti xml-ből már előre kinyert számmal és amennyiben nem egyezik úgy 30 másodperc múlva újra megszámolja a mappában található xml-ek számát. Ha egyezik a száma akkor minden oké volt, viszont ha 3x egymás után nem növekszik az xml-ek száma és nem érte el az xml-ből kinyert értéket akkor az azt jelenti, hogy leállt a generálás és az egész folyamatot újra kell kezdeni.

//Megszámolja a countlist mappában lévő xml-eket
int filecount =
            session.EnumerateRemoteFiles(CountList[i], "*.xml", EnumerationOptions.None).Count();
            counts = Convert.ToString(filecount);

(#8918) dqdb válasza RedHarlow (#8917) üzenetére


dqdb
nagyúr

Valami ilyesmi kellene neked fapados megvalósítással:

var delayBetweenRetries = 30 * 1000;
var maxRetries = 3;
var retryCount = 0;
var expectedFileCount = GetExpectedRemoteFileCount();
var actualFileCount = 0;

for (;;)
{
var fileCount = GetRemoteFileCount();
if (fileCount > expectedFileCount)
{
throw new TooManyRemoteFilesException();
}
else if (fileCount == expectedFileCount)
{
break;
}
else if (fileCount == actualFileCount)
{
if (++retryCount > maxRetries)
throw new TooManyRetriesException();
}
else if (fileCount > actualFileCount)
{
retryCount = 0;
actualFileCount = fileCount;
}
else
{
throw new RemoteFileCountMismatchException();
}

Thread.Sleep(delayBetweenRetries);
}

Ha a távoli szerveren drága az exportálás és az SCP kapcsolat szeret megszakadni, akkor érdemes úgy megírni a GetRemoteFileCount() metódust, hogy az kezelje a kapcsolat újraépítését. És persze nem árt a fájlok számának figyelése mellett a tartalmukat is ellenőrizni később.

Ha sokkal bonyolultabb hibatűrést megvalósító esetek is előfordulhatnak, akkor a Polly library az egyik legjobb arra a célra, hogy ne kelljen minden távoli hívásnál/lekérdezésnél 30-50 soros logikát megírni.

[ Szerkesztve ]

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8919) kkdesign


kkdesign
senior tag

Sziasztok!

A Szakdolgozatommal kapcsolatosan szeretnék kérdezni tőletek.
C# WPFben gondolkodom, MS SQLes adatbázis motorral. Egy raktárkezelő programról lenne szó. Jelenleg ott tartok, hogy ötletelek az adatbázison, a funkionalitásokon, még a kinézeten is, amit arról tudok, hogy modern ui-ra akarom építeni. Egy kezdőlapban gondolkodom, s annak a bal oldalán szendvicsmenüben a menügombok, jobb oldalt pedig Chartok lennének.
Próbálok utána nézni, hogy egy szakdolgozathoz is felhasználható segédrendszert bevessek, például a devexpresst használnak környezetemben, de nemn tudom az personal use-ra mennyire ingyenes vagy van e olyan fajtája. a Nu-get-ben megtaláltam, de nem tudom mennyire merjem használni... Tudtok ebben segíteni, hogy egy olyan kiegészítő amiben vannak chartok is, és modern is, arra mit használjak? középszintű okj a feladat szintje tehát nem kell piacra szánt termék szintű programra gondolni :)

(#8920) martonx válasza kkdesign (#8919) üzenetére


martonx
veterán

Van még aki wpf-et használ? Asp. Net Core-t javaslom ha bármi naprakészet szeretnél.

Én kérek elnézést!

(#8921) Dinter


Dinter
addikt

Sziasztok.

Biztos valami apró hülyeség, amit nem veszek észre... de miért nem helyettesíti be így a paramétert? :W

SqlCommand command = new SqlCommand("SELECT t.ID, t.Nev, t.NettoAr, t.Raktarkeszlet, a.Kulcs, k.Nev as Kategoria FROM Termek t LEFT OUTER JOIN AFA a on t.AFAID = a.ID LEFT OUTER JOIN Kategoria k on t.ID = k.ID WHERE t.Nev = @Nev", conn);
                var parameter = new SqlParameter();
                parameter.ParameterName = "@Nev";
                parameter.SqlDbType = SqlDbType.NVarChar;
                parameter.Value = name;
               
                if (name == null) parameter.Value = "t.Nev";
                else parameter.Value = "'" + name + "'";
                command.Parameters.Add(parameter);

(#8922) sztanozs válasza Dinter (#8921) üzenetére


sztanozs
veterán

lehet, hogy aposztroffal együtt van letárolva a név a mezőben.
Amúgy szerintem így nem működik a null értékre. Az sql query nem az lesz, hogy
SELECT t.ID, t.Nev, t.NettoAr, t.Raktarkeszlet, a.Kulcs, k.Nev as Kategoria FROM Termek t LEFT OUTER JOIN AFA a on t.AFAID = a.ID LEFT OUTER JOIN Kategoria k on t.ID = k.ID WHERE t.Nev = t.Nev
hanem
SELECT t.ID, t.Nev, t.NettoAr, t.Raktarkeszlet, a.Kulcs, k.Nev as Kategoria FROM Termek t LEFT OUTER JOIN AFA a on t.AFAID = a.ID LEFT OUTER JOIN Kategoria k on t.ID = k.ID WHERE t.Nev = "t.Nev"

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#8923) Dinter válasza sztanozs (#8922) üzenetére


Dinter
addikt

A null-osat végül kicseréltem, lehagytam a Where-t. Egyébként nem is a paraméter kicserélésével volt probléma, hanem a command.CommandText nem a behelyettesített értéket adja vissza.

(#8924) fatal` válasza Dinter (#8921) üzenetére


fatal`
titán

Így azt küldöd be az SqlQuerynek hogy 't.Nev' mint érték (stringként), arra meg gondolom nem talál rekordot.

Ez paraméterrel nem működik (így nem lenne értelme a paraméternek), különben így lehetne SQL Injectiont csinálni.

NULL-ra meg egyébként sem működik, mert a WHERE x = NULL feltétel az mindig hamis lesz, ilyenkor az IS NULL-t kell használni SQL-ben.

[ Szerkesztve ]

(#8925) kingabo válasza Dinter (#8921) üzenetére


kingabo
őstag

Esetleg nézz rá a dapperre, sokkal egyszerűbb vele paraméteres queryket írni, meg igaziból bármilyet. ;)

(#8926) Dinter válasza fatal` (#8924) üzenetére


Dinter
addikt

Köszi, végül kiszenvedtem. A nullnál az lett volna a lényeg, hogy önmagával hasonlítom össze az oszlopot, ami mindig igaz, így megspórolok egy sor sql-t, de végül különszedtem és csak elhagyom a where-t.

Kingabo: a technológia adott volt a feladathoz, így muszáj volt ezt használnom.

[ Szerkesztve ]

(#8927) sztanozs válasza Dinter (#8926) üzenetére


sztanozs
veterán

null ellenőrzésre:
... WHERE (t.Nev = @Nev OR @Nev Is Null)

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#8928) sztanozs válasza sztanozs (#8927) üzenetére


sztanozs
veterán

pontosabban, ha null-null egyezőséget szeretnél:
... WHERE (t.Nev = @Nev OR (t.Nev Is Null AND @Nev Is Null))

Arra kell még figyelni, hogy Paraméter megadásnál a paraméter értéke nem lehet null, hanem DBNull.Value:
if (name == null) parameter.Value = DBNull.Value;

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#8929) dqdb válasza Dinter (#8923) üzenetére


dqdb
nagyúr

a command.CommandText nem a behelyettesített értéket adja vissza
Az a property a beállított parancsot adja vissza, amiben paraméterek szerepelnek konkrét értékek helyett. A paraméterek behelyettesítése a szerveren fog megtörténni a már parse-olt SQL parancs felhasználásával, így a komplett parancs olyan szöveges formában, ahogyan te szeretted volna, sosem létezik.

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8930) BTminishop válasza Dinter (#8921) üzenetére


BTminishop
aktív tag

azt ne felejtsd el, hogy a névben bárhol lehet keresni a feladat szerint. :)

(#8931) Dinter válasza BTminishop (#8930) üzenetére


Dinter
addikt

igen-igen, tesztelés során kibukott és átírtam.

(#8932) csorbinorbi


csorbinorbi
friss újonc

Sziasztok!

Előrevetítem, hogy én és a programozás eléggé távol állunk egymástól, de most megis kénytelen vagyok készíteni egy aprócska programot.
A lényeg, hogy egy háttérben futó windows programot kellene gombnyomásra ellenőriznem. Már találtam egy megoldást ami lentebb található, viszont nekem nem popup ablakban kellene, hogy mejelenjen, hanem egy Textbox-ban...

valaki tudna segíteni,, hogy hogyan is tudnám megoldani ezt a dolgot?

Köszönöm!!!!!!!

 private void button1_Click(object sender, EventArgs e)
 {
      IsProcessRunning("notepad");
  }
  private void  IsProcessRunning(string sProcessName)
  {
      System.Diagnostics.Process[] proc = System.Diagnostics.Process.GetProcessesByName(sProcessName);
      if (proc.Length > 0)
      {
          MessageBox.Show(String.Format("{0} is  running!", sProcessName), sProcessName);
      }
      else
      {
          MessageBox.Show(String.Format("{0} is not running!", sProcessName), sProcessName);
          // start your process
       }
 }

[ Szerkesztve ]

(#8933) fatal` válasza csorbinorbi (#8932) üzenetére


fatal`
titán

Tegyél fel egy TextBoxot a formra és

TextBox.Text = $"{sProcessName} is running!; vagy TextBox.Text = $"{sProcessName} is not running!;

(#8934) csorbinorbi válasza fatal` (#8933) üzenetére


csorbinorbi
friss újonc

Először is köszi a gyors választ!

A textboxot már előtte felraktam, az nem volt gond, csak a tartalommal megtöltés :)

viszont ezzel a megoldással a beszútr sorra hibát dob...
Unexpected character '$'
Newline in constant

Bocsi, ha ezek nagyon alap dolgok, de C# eddig nekem nagyon kiesett az életemből

(#8935) fatal` válasza csorbinorbi (#8934) üzenetére


fatal`
titán

Akkor lehet hogy régi C# verziót használsz. Használd akkor a string.formatot az eredeti példából. :)

(#8936) martonx válasza fatal` (#8933) üzenetére


martonx
veterán

Ránézésre lehagytad a záró idézőjelet :D, és ha emberünk volt olyan hülye, hogy csak simán lemásolta, akkor meg is van az oka a hibaüzenetnek.

Én kérek elnézést!

(#8937) fatal` válasza martonx (#8936) üzenetére


fatal`
titán

Hm, jogos, nem figyeltem. Csak gyorsan begépeltem. :D Sorry.

(#8938) csorbinorbi válasza fatal` (#8935) üzenetére


csorbinorbi
friss újonc

Köszi a választ, így már sikerült megoldani így a dolgot.

@martonx
raktam zárójelet (más nem próbálkozásból fenti példám alapján), de az sem segített.

a konkrét gépen elég régi visual studio van (asszem 2008) és másikat nem lehet rátenni, nem lehet USB-ről rátenni semmit, stbstb. amolyan célgép ami már kb 8-9 éve szinte egyhuzamban megy :)

(#8939) Ablakos


Ablakos
őstag

Van egy solution (VS), amiben az elso project namespace -t nem látja a solutionhoz adott második (test) project. Sem usinggal, sem közvetlen hivatkozással. Hogy lehet ezt megoldani?

[ Szerkesztve ]

(#8940) fatal` válasza Ablakos (#8939) üzenetére


fatal`
titán

Referáld az első proktet a test projektre (jobb klikk add reference talán, most nincs előttem studio).

(#8941) Ablakos válasza fatal` (#8940) üzenetére


Ablakos
őstag

A függő projecten kellett hivatkozni az elsőre és máris ment.

Köszi !

(#8942) FurrierX válasza Ablakos (#8941) üzenetére


FurrierX
csendes tag

Sziasztok!

Kaptam egy feladatot, amiben nagyon elakadtam, valaki tudna segíteni, hogy hogyan tudnék tovább menni? Köszi előre is.

Itt a feladat és az általam írt kód: [link]

[ Szerkesztve ]

(#8943) tboy93 válasza FurrierX (#8942) üzenetére


tboy93
nagyúr

Nem toltottem le, de ha konkretan megmondod mi a kerdesed, mi nem megy, akkor segitunk.

(#8944) FurrierX válasza tboy93 (#8943) üzenetére


FurrierX
csendes tag

Egy nagyvárosban 3 (földalatti) metróvonal található, s mindegyiken sok-sok állomás. A három vonalnak vagy egyetlen közös állomása, vagy pedig az 1.-2.-nak és a 2.-3.-nak külön átszállási helye van. Egy külföldi turista áll az egyik metróállomáson, s egy másik metróállomásra akar eljutni. Készítsen programot, amely beolvassa e két állomás nevét, majd megmondja, hogy a turistának az induló állomásról milyen irányba (melyik végállomás felé) hány megállót kell utaznia, s ha át kell szállnia, akkor ezt az átszállás előtti, illetve utáni metróvonalra is megadja. A létező metróállomások nevét megtalálhatod a METRO.DAT állományban. (Az állományban soronként 1 adat szerepel, először az 1. vonal állomásainak száma, majd egyesével az állomások neve, utána a 2. vonal állomásainak száma, stb. ...) Az átszállóhely(ek) a közös név alapján ismerhető(k) fel.

Ez a feladat szövege. Beolvastam a fájlból az adatokat 3 külön string tömbbe. Csináltam egy Metrovonal osztályt amit a három tömbbel példányosítottam, így van három objektumom. Végül pedig a felszálló és leszálló állomás miatt csináltam egy Utas osztályt. A problémám pedig ott van, hogy ezeket, hogy tudnám összehozni, hogy megadják a kért információkat. pl: a metróvonalak között, hogy tudnék kapcsolatot teremteni(főleg, ha mind a három tömböt használni kell)?

(#8945) tboy93 válasza FurrierX (#8944) üzenetére


tboy93
nagyúr

Gyorsan atfutottam, utas osztaly szerintem nem feltetlenul kell neked, inkabb olyasmiben gondolkodj, hogy lesz mondjuk egy BKK/MetroOwner osztalyod, aminek mondjuk van egy MetroLines kollekcioja, ebben a kollekcioban vannak mondjuk MetroLine objektumok, melyek allomasokbol epulnek fel. Igy a MetroOwner osztaly tudni fog az osszes MetroLine-rol es lehet rajta olyan metodus ami ki tudja szolgalni az "utasodat" :)

[ Szerkesztve ]

(#8946) joysefke válasza FurrierX (#8944) üzenetére


joysefke
veterán
LOGOUT blog

Ha ez a félévi házi, akkor megérdemelheti, hogy seggelj rajta 1-2 napot. :)

A három vonalnak vagy egyetlen közös állomása, vagy pedig az 1.-2.-nak és a 2.-3.-nak külön átszállási helye van

A feladatleírás segít: kétféle topológia lehetséges (nem mintha általánosan nem lehetne megoldani -Dijkstra-).

Az adatok alapján eldöntöd, hogy a kettő közül melyik a tényleges topológia. Innentől kezdve tied a döntés, hogy szép vagy favágó megoldást adsz a feladatra:

A szép megoldás az lenne, ha felépítenél egy gráfot amit a vonalakat modellezi majd ezen a cél és a kezdőállomás között megkeresnéd a legjobb (mivel a feladat szerint ez körmentes ezért egyetlen) utat, a szükséges plusz infókat (átszállás) pedig a gráfból útkeresés közben nyernéd ki...

A favágó megoldás pedig az, ha mindkét lehetséges topológiához (csillag és metsző) elkészíted a logikát (csomó if-else) ami a topológia, vonalak és állomásnevek ismeretében megmondja, hogy melyik vonalról melyik vonalra hol fogsz átszállni.

[ Szerkesztve ]

(#8947) FurrierX válasza joysefke (#8946) üzenetére


FurrierX
csendes tag

Köszi mindkettőtöknek a gyors válaszokat. Mivel Listet és egyéb társait nem használhatom, így a kollekció ugrott, de gondolom akkor a Dijkstra és az A* megoldás is...

(#8948) tboy93 válasza FurrierX (#8947) üzenetére


tboy93
nagyúr

Tök mindegy, használhatsz tömböt is lista helyett.

(#8949) RedHarlow


RedHarlow
aktív tag

Sziasztok,

A private void Button1_Click(object sender, EventArgs e) alatt létrehozott változóimat és listáimat, hogy tudom legszebben átvinni Button2_Click alá? Illetve tudtok esetleg egy linket adni ahol utánanézhetek, hogy milyen lehetőségek vannak.

Előre is köszönöm a segítséget.

[ Szerkesztve ]

(#8950) Alexios válasza RedHarlow (#8949) üzenetére


Alexios
veterán

Osztályváltozókat hozol létre, és azt tudod használni mindkét helyről pl.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.