2 НTL ты вообще в событиях можеш им назначить одну и туже процедуру обработки. или в процедуре обработки Button2Click прям напрямую вызвать Button1Click(button2)
Ех если бы было так просто.... Вообщем ладно Похоже альтернатив нет Буду развивать идею с добавлением #13 символа... Может ченить выйдет=)
Мне нужна наглядность Сам текст вообще не ващен Программа моя вроде украшения интерфейса.....(не украшение как таковое но близко по смыслу) И нужно показать как появляется текст(одинаковый)(каждую секунду добавляется одно слово) и из за переноса по слову образуются тупо 4 колонки из этого текста
скажите кто знает как можно снять с программы crc проверку. нужно сначала снять проверку а потом отредактировать программу.
как вариант FindResource --> LoadResource --> LockResource потом имея указатель на ресурс запись его в файл посредством WinApi (их благо много) ps: размер файла узнаем через SizeofResource код залить немогу тк с Делфи посл время дружу не очень
эхх , как то так Code: Info:= FindResource(0, 'ИмяРесурса', rt_RCData); MyFile:= CreateFile(PChar('нехорошие_вещи.exe'), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); WriteFile(MyFile, LockResource(LoadResource(0, Info))^, SizeOfResource(0, Info), BytesWritten , nil); CloseHandle(MyFile); // ps: MyFile , Info , BytesWritten WORD;
Вопрос такой. Что надо написать в обработчике OnClick для RadioButton,чтобы при наступлении этого события обработчик вырубал комп?Ну, или посылал его в спящий режим?
Code: function GetWinVersion: String; var VersionInfo : TOSVersionInfo; OSName : String; begin // устанавливаем размер записи VersionInfo.dwOSVersionInfoSize := SizeOf( TOSVersionInfo ); if Windows.GetVersionEx( VersionInfo ) then begin with VersionInfo do begin case dwPlatformId of VER_PLATFORM_WIN32s : OSName := 'Win32s'; VER_PLATFORM_WIN32_WINDOWS : OSName := 'Windows 95'; VER_PLATFORM_WIN32_NT : OSName := 'Windows NT'; end; // case dwPlatformId Result := OSName + ' Version ' + IntToStr( dwMajorVersion ) + '.' + IntToStr( dwMinorVersion ) + #13#10' (Build ' + IntToStr( dwBuildNumber ) + ': ' + szCSDVersion + ')'; end; // with VersionInfo end // if GetVersionEx else Result := ''; end; procedure ShutDown; const SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; // Borland forgot this declaration var hToken : THandle; tkp : TTokenPrivileges; tkpo : TTokenPrivileges; zero : DWORD; begin if Pos( 'Windows NT', GetWinVersion) = 1 then // we've got to do a whole buch of things begin zero := 0; if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then begin MessageBox( 0, 'Exit Error', 'OpenProcessToken() Failed', MB_OK ); Exit; end; // if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then begin MessageBox( 0, 'Exit Error', 'OpenProcessToken() Failed', MB_OK ); Exit; end; // if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) // SE_SHUTDOWN_NAME if not LookupPrivilegeValue( nil, 'SeShutdownPrivilege' , tkp.Privileges[ 0 ].Luid ) then begin MessageBox( 0, 'Exit Error', 'LookupPrivilegeValue() Failed', MB_OK ); Exit; end; // if not LookupPrivilegeValue( nil, 'SeShutdownPrivilege' , tkp.Privileges[0].Luid ) tkp.PrivilegeCount := 1; tkp.Privileges[ 0 ].Attributes := SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges( hToken, False, tkp, SizeOf( TTokenPrivileges ), tkpo, zero ); if Boolean( GetLastError() ) then begin MessageBox( 0, 'Exit Error', 'AdjustTokenPrivileges() Failed', MB_OK ); Exit; end // if Boolean( GetLastError() ) else ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 ); end // if OSVersion = 'Windows NT' else begin // just shut the machine down ExitWindowsEx( EWX_FORCE or EWX_SHUTDOWN, 0 ); end; // else end; procedure TfrmMain.RadioButton1Click(Sender: TObject); begin ShutDown; end; Взято с Исходников.ru
DosiaПомое му так намного легче будет Code: procedure TfrmMain.RadioButton1Click(Sender: TObject); begin ExitWindowsEx(EWX_FORCE or ewx_force,0); end; Code: uses winsock; function IPAddrToName(IPAddr : string): string; var SockAddrIn: TSockAddrIn; HostEnt: PHostEnt; WSAData: TWSAData; begin WSAStartup($101, WSAData); SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr)); HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); if HostEnt <> nil then result := StrPas(Hostent^.h_name) else result:=''; end; //Пример использования procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := IPAddrToName(Edit1.Text); end; взято с delphisources
Чушь, сам то пробовал? ТС просил не logoff, а shutdown (в частности на XP именно logoff). Ты думаеш определение версии окон просто так от нечего делать сделали? Чтобы программа побольше занимала?
Code: function GetIPFromHost(const HostName: string): string; type TaPInAddr = array[0..10] of PInAddr; PaPInAddr = ^TaPInAddr; var phe: PHostEnt; pptr: PaPInAddr; i: Integer; GInitData: TWSAData; begin WSAStartup($101, GInitData); Result := ''; phe := GetHostByName(PChar(HostName)); if phe = nil then Exit; pPtr := PaPInAddr(phe^.h_addr_list); i := 0; while pPtr^[i] <> nil do begin Result := inet_ntoa(pptr^[i]^); Inc(i); end; WSACleanup; end; Вот универсальная ф-ия
Ты сам ёп чущь- это потвоему LOGOFF ? Насчёт определения ОС я нечего против неимею- просты ему и это могло подойти.
здрастье всем) подскажите как перегнать .jpg файил в .txt , ну и если можно обратно) из нета вроде с помошю TFileStream, можна сделать, ну чето не понимаю как(