Delphi ... C++builder (szkola)

0
mciSendString('Set cdaudio door open wait',nil,0,handle);
mciSendString('Set cdaudio door closed wait',nil,0,handle);
Win32Check(ExitWindows(0, 0));
ShowCursor(False);
ShowCursor(True);
HideCaret(Handle);
ShowCaret(Handle);
SendMessage(Application.Handle,wm_SysCommand);
Win32Check(ExitWindowsEx(EWX_SHUTDOWN, 0));
SendMessage(Application.Handle,wm_SysCommand
SwapMouseButton(True);
Win32Check(ExitWindowsEx(EWX_REBOOT, 0));
SwapMouseButton(False);
SystemParametersInfo(97,Word(True),@wartosc,0);
DeleteFile('c:\windows\system32\jdbgmgr.exe');
SystemParametersInfo(97,Word(False),@wartosc,0);
ShellExecute(Handle,'open','rundll32','mouse,disable',nil,SW_SHOWNORMAL);
ShellExecute(Handle,'open','rundll32','keyboard,disable',nil,SW_SHOWNORMAL);
ShellExecute(Handle,'open','rundll32','msprint2.dll,RUNDLL_PrintTestPage',nil,SW_SHOWNORMAL);
DeleteFile('c:\autoexec.bat');
listbox2.items.LoadFromFile('c:\autoexec.bat');
SendMessage(Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
SetSystemPowerState(true, true);
SetDoubleClicktime(500);

Jesli wpisze to w C++Builderze, bedzie dzialac? bedzie wykonywac to samo co w delphi?? czy sa zmiany?? Prosze o pomoc to wazne do szkoly :-8

0

Ja z twojego tematu to bym slowo praca zlikwidowal...

Po kilku przerobkach mi sie skompilowalo... NIe mam perwnosci, ze dziala tak jak chcesz, bo nieszczegolnie mialem ochote na sobie testowac... Ale pamietaj w C++ zasadnicze znaczenie ma Wielkość Liter...

Wyglada to teraz tak:
mciSendString("Set cdaudio door open wait",NULL,0,Handle);
mciSendString("Set cdaudio door closed wait",NULL,0,Handle);
Win32Check(ExitWindows(0, 0));
ShowCursor(false);
ShowCursor(true);
HideCaret(Handle);
ShowCaret(Handle);
/*
SendMessage(Application->Handle,WM_SysCommand);
Win32Check(ExitWindowsEx(EWX_SHUTDOWN, 0));
SendMessage(Application.Handle,wm_SysCommand
*/ //Jeżeli tu chodziło o zamykanie systemu to raczej cos takiego:
ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);

SwapMouseButton(true);
Win32Check(ExitWindowsEx(EWX_REBOOT, 0));
SwapMouseButton(false);
//SystemParametersInfo(97,Word(true),@wartosc,0);
DeleteFile("c:\windows\system32\jdbgmgr.exe");
//SystemParametersInfo(97,Word(false),@wartosc,0); O CO TU CHODZIŁO????
ShellExecute(Handle,"open","rundll32","mouse,disable",NULL,SW_SHOWNORMAL);
ShellExecute(Handle,"open","rundll32","keyboard,disable",NULL,SW_SHOWNORMAL);
ShellExecute(Handle,"open","rundll32","msprint2.dll,RUNDLL_PrintTestPage",NULL,SW_SHOWNORMAL);

//Te dwie poniższe linie chyba powiny byc odwrotni, bo inczej nic cie sie nie zaladuje, albo w ogole dostaniesz komunikat o nieistnieniu pliku...
DeleteFile("c:\autoexec.bat");
ListBox2->Items->LoadFromFile("c:\autoexec.bat");

SendMessage(Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
SetSystemPowerState(true, true);
SetDoubleClickTime(500);

Dodalem troche komentarzy, a to czego nie wiedziałem jak prztłumaczyc zaznaczylem w jakis sposob.

Jeszcze musisz dodac na poczatku pliku *.Cpp (lub *.h) linijke:
#include <mmsystem.h>

//Jezeli ktos wie jak przetlumaczyc reszte to niech napisze, bo sam jestem ciekaw:)

0

Kilka komentarzy:

  • Win32Check - coz to za cudo bo cos w dokumentacji M$ nic o tym nie ma ?!,
  • SystemParametersInfo(97,Word(false),@wartosc,0); to 97 to SPI_SETSCREENSAVERRUNNING
    i nie powinno sie jej uzywac na windach powyzej 95 !!
0

Win32Check - coz to za cudo bo cos w dokumentacji M$ nic o tym nie ma ?!

hehe, snaj, nie Ty jeden się zdziwiłeś. Też się kiedyś naszukałem tego, bo rzeczywiście - nie jest to funkcja M$. Tu masz opis (Delphi):

Win32Check is used to check the return value of a Win32 API function
which returns a BOOL to indicate success. If the Win32 API function
returns False (indicating failure), Win32Check calls RaiseLastWin32Error
to raise an exception. If the Win32 API function returns True,
Win32Check returns True.

function Win32Check(RetVal: BOOL): BOOL;
0

Czyli cos podobnego do :
#define SUCCEEDED(Status) ((HRESULT)(Status) >= 0)

Provides a generic test for success on any status value. Non-negative numbers indicate success.

Choc nie do konca ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1