Jump to content
GSForum - Segélyvonal

Windows leállítása


mata2
 Share

Recommended Posts

mata2

Sziasztok!

 

Én egy olyan programot szeretnék csinálni, ami le tudja állítani a windowst. Nos ezzel a probléma az, hogy nem tudom, hogy hogyan kellene ezt a leállítást megírni Delphi-ben.

 

Elõre is köszönöm a segítségeteket: Attila

Link to comment
Share on other sites

Tar

Miért az eredeti nem jó?!

Link to comment
Share on other sites

mata2

De jó, csak egy oolyan progi lesz ez a végén, hogy egy X idõ után autómatikusan állítsa le a windows-t. A többi része az egyszerû, de ezt a leállítósdit nem tudom.

Link to comment
Share on other sites

mata2

Már megoldottam. Ha érdekel valakit a megoldás, akkor közzéteszem.

Link to comment
Share on other sites

nascar

Ha már nyitottál neki egy topicot, akkor ez kötelezõ! :P

Link to comment
Share on other sites

mata2

OK.

Link to comment
Share on other sites

mata2

OK. akkor íme a megoldás foráskódja:

 

function TimedShutDown(Computer: string; Msg: string; Time: Word; Force: Boolean; Reboot: Boolean): Boolean;

var

  rl: Cardinal;

  hToken: Cardinal;

  tkp: TOKEN_PRIVILEGES;

begin

  if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then

    ShowMessage('Cannot open process token.')

  else

  begin

    if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then

    begin

      tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

      tkp.PrivilegeCount := 1;

      AdjustTokenPrivileges(hToken, False, tkp, 0, nil, rl);

      if GetLastError <> ERROR_SUCCESS then

       ShowMessage('Error adjusting process privileges.');

    end

  else

    ShowMessage('Cannot find privilege value.');

  end;

 

  Result := InitiateSystemShutdown(PChar(Computer), PChar(Msg), Time, Force, false)

end;

 

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  if not TimedShutDown('//Coputername', 'Leállíthatatlan procedura', 30, true, true) then

    ShowMessage('function failed...');

end;

 

Ennyi az egész. Ezt egy német fórumon találtam, és mûködik... Magamtól rá nem jöttem volna.

Link to comment
Share on other sites

  • 3 weeks later...
marcee5

:) Tudok egyszerübbet:

 

Számítógép leállítása(mintha a kikapcsolásra katintottál volna):

WinExec('shutdown.exe -s',SW_Hide)

 

Számítógép újraindítáa:

WinExec('shutdown.exe -r',SW_Hide)

 

De ez csak Windows 2000, XP-n mûködik!

 

Több fajta leállítási mód is van:

Futtatásba írd be hogy cmd, és a CMd-be meg hogy shutdown.

És kiírja, hogy még mint lehet.

 

marcee

Link to comment
Share on other sites

Attila1981

Van egy Fõablak nevû formom, a Fõablak egyik gomjára kattintva elõjön a Ablak nevû formom. Az Ablak nevû formomonn van egy Szövegszerkesztõgomb és egy Visszagomb. A Szövegszerkesztõgombnak a megnyomására egy szövegszerkesztõ jön elõ új ablakban. Ebben a szövegszerkesztõben mûködik a másolás, új, mentés, nyomtatás, nyomtatás beállításai, betutipus, keresés, csere. Ugy van megadva hogy csak TXT-ként tudjak menteni, nyitni. Ha elmentek, vagy megnyitok valamit, és kilépek a Szövegszerkesztõbõl, visszakerülök az Ablak formra. NA EDDIG EZ JÓL Mûködik. Most jön a hiba. Ha megnyomom a Vissza gombot, hogy visszakerüljek a Föablakra, akkor leáll olyan futási hibával hogy nemtudja megnyitni a Fõablakban lévõ háttérképet. Ugyanaz a háttérképet használom a Fõablakba és a Ablak formba. Csak mentésnél és nyitásnál jelenik meg ez a hiba!

Tud nekem valaki segíteni, nagyon sürgõs!!!

Link to comment
Share on other sites

arpsoft

Mivel nem nagyon tudom, mi lehet a hiba, ezért egy kerülõ megoldást javaslok.

Készíts a háttérképrõl egy másolatot más néven, aZ egyik formba az egyiket a másikba a másikat rakjad be.

Link to comment
Share on other sites

Attila1981

Már megoldottam, a hiba az volt hogy ha máshová mentettem a txt-t akkor nem talált vissza a projekt mappájába, azért keresett minden képet és adatot.

Már megadtam a képek, videok utvonalát ahol szükséges de a fájlokét nemtudom

 

Ezzel a paranccsal megnyitok egy fájlt.

 

ShellExecute(handle,nil, ‘mappa\fajl.kierjesztés’ ,nil,nil, SW_SHOWNORMAL);

 

 

Na most, nekem meg kell adni a könyvtár lekérdezést, hogy mi hol van

Pl.

....LoadFromFile := xxxx.workingdirectory+’kep.bmp’; - így megy a kép

 

Hogyan tudom megadni ugyanezt a fájl betöltésénél??

Így nem ment:

 

ShellExecute(handle,nil, ‘xxx.workingdirectory+\mappa\fajl.kierjesztés’ ,nil,nil, SW_SHOWNORMAL);

Link to comment
Share on other sites

  • 1 year later...
Viol3tt4

Sziasztok !

 

Talán nem ebbe a topikba való, de a leállításhoz sok köze van a kérésnek.

 

Nagyon kezdő vagyok és tudatlan, régen csak DOS-os programokat írtam C/C++-ban.

Sok-sok olvasgatás után úgy döntöttem a Delphi program jó lesz a jövőbeni windows-os programozgatásokhoz.

 

Sürgősebb lenne a dolog, minhogy még előbb megtanuljak egy új programnyelvet, valaki küldhetne egy Delphi forrást a következő "problémához". Sajnos intenetes kutatásaim nem jártak eredménnyel:

 

Egy olyan (gyermek elleni :démonikacaj: ) korlátozást szeretnék bevezetni a számítógépen, hogy csak egy megadott időintervallumban fusson.

Konkrétabban : hétköznap 18-20 óráig, hétvégén 14-20 óráig. Amennyiben nem teljesül a feltétel, egyszerűen kapcsoljon ki a gép (esetleg kiírhatja egy ablakba, hogy csak "ettől -eddig" használható). Hogy csökkentett módban is induljon a program azt majd kitalálom hogyan! A BIOS-t lejelszavazom, ott nem lehet csalni. :Sír:

 

Igazából ezt a DOS-os korszak idején megoldottam C-ben, de az a program most XP alatt nem ér semmit :(

 

Tudom, hogy minden program feltörhető, minden korlátozás feloldható, de egy darabig talán jó lesz.

 

 

Köszönettel

 

Link to comment
Share on other sites

TheSaurus

Csökkentett módban talán indulnia se kéne, mert oda mezei felhasználó tudtommal be se léphet, csak rendszergazda.

Egy Delphi programot pedig még egy kezdõ felhasználó is ki tud lõni, sajnos.

Most tesztelem a PowerPro ezirányú képeségeit, eddig jónak tûnik.

Link to comment
Share on other sites

Calyd

Ha C++-ban otthon vagy, akkor szerintem most is, de a jövõben mindenképp a Visual Studio lenne számodra szerintem az ideálisabb, nem? Ott van C++ és C#.

Link to comment
Share on other sites

Viol3tt4

TheSaurus : Csökkentett módba mindenki beléphet, akinek van F8 gombja :), az említett programot megnézem, de leginkább egy Delphi-s forrásra vágyom ;)

 

Calyd: köszönöm ezirányú invitálásodat, de elõbb a Delphit próbálnám ki. Ezt legalább már letöltöttem a Borland oldaláról és ami a fõ : ingyenes.

 

 

Link to comment
Share on other sites

Calyd

Tudtommal csak egy Turbo Delphi ingyenes, ami azt hiszem korlátozott lehetőségekkel bír. De végülis lényegtelen. A Visual Studio is ingyenes, ha olyan felsoktatási intézmény tagja vagy, aki benne van az MSDNAA-ban. :D Nekem személy szerint egyébként semmi bajom a Delphi-vel, sőt. Csak gondoltam neked talán jobban fekszik a Studio. Az konkrétan Microsoft fejlesztés, direkt Windows-os programok készítésére, ezért is ajánlottam.

Link to comment
Share on other sites

Viol3tt4

Calyd : Kedves tõled, hogy próbálsz rábeszélni a Visual Studio-ra. De tudod mit, ha a küldesz egy Studioban készült forrásprogramot, ami a kérésemet tartalmazza, akkor rátérek erre a programnyelvre.

 

Sajnos a koromnál fogva már rég kinõttem az iskolapadokból :upsz: Hiszen ezt a programot éppen a fiaim ellen kívánom bevetni. :pislog:

 

(Mert nem tanulnak a 15 éves 'büdös kölkök', mindíg csak a számítógépen játszanának....) :S

Link to comment
Share on other sites

Halasi Miklós

Akkor milyen jól jön majd a Vista neked, amiben van szülõi felügyelet! ;) Annak a kikerülése már azért erõsebb tudást igényel, bár ez is megoldható. :hááát: Csak nem olyan könnyû kiiktatni. ;)

Link to comment
Share on other sites

Viol3tt4

A hétvégén volt lehetõségem töltögetni (Visual C#) és olvasni rengeteget.

Ebbõl kifolyólag igazat kell adnom Calyd-nak,... és áttérek a C# -re.

Bocs mindenkitõl, de a kért Delphis forrást most már C#-ben keresem tovább.

Sziasztok.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...