Суббота, 23.11.2024, 10:55 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Anton93  
Основные функции в Delphi
dolphinДата: Суббота, 06.12.2008, 16:45 | Сообщение # 1
Администратор
Сообщений: 906
Статус: Offline
 
cool1Дата: Суббота, 06.11.2010, 07:41 | Сообщение # 2
Участник
Зарегистрирован: 14.07.2010
Группа: Пользователи
Сообщений: 238
Статус: Offline
спасибо!


За помощь ставьте +!
 
PEGAS42rusДата: Вторник, 01.01.2013, 19:31 | Сообщение # 3
Был не раз
Зарегистрирован: 01.01.2013
Группа: Пользователи
Сообщений: 5
Статус: Offline
SysUtils DeleteFile Удаляет файл, указанный в параметре

можно короткий пример и как процесс завершить если можно?
 
Don_DiegoДата: Вторник, 01.01.2013, 22:09 | Сообщение # 4
Продвинутый
Зарегистрирован: 16.04.2012
Группа: Пользователи
Сообщений: 253
Статус: Offline
PEGAS42rus, ну разве так трудно взять и написать???


Процесс очень хорошо прибивает такая функция


Пример использования
Код
KillTask('notepad.exe');
Прикрепления: 3956611.jpg (79.8 Kb)


Сообщение отредактировал Don_Diego - Вторник, 01.01.2013, 22:18
 
PEGAS42rusДата: Среда, 02.01.2013, 12:10 | Сообщение # 5
Был не раз
Зарегистрирован: 01.01.2013
Группа: Пользователи
Сообщений: 5
Статус: Offline
спс

а можно в авто запуск чтоб прога записывалась сама

Добавлено (02.01.2013, 12:10)
---------------------------------------------
однако на строку KillTask('notepad.exe'); ругается

 
NeoДата: Среда, 02.01.2013, 15:39 | Сообщение # 6
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
Цитата (PEGAS42rus)
однако на строку KillTask('notepad.exe'); ругается

Ты процедуру,которая в сплойлере у Don_Diego то переписал?Она должна быть описана выше,чем строчка
KillTask('notepad.exe')
 
PEGAS42rusДата: Среда, 02.01.2013, 16:00 | Сообщение # 7
Был не раз
Зарегистрирован: 01.01.2013
Группа: Пользователи
Сообщений: 5
Статус: Offline
чувак я написал всё но у меня ошибка всегда где-то выскакивает в общем сейчас скину код и вы сможете потыкать пальцем в мои ошибки и показать свои мега знания

Добавлено (02.01.2013, 16:00)
---------------------------------------------
Код
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI,TlHelp32;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
function KillTask(ExeFileName: string): integer;

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute (Form1.Handle, nil, PChar (ExtractFilePath(Application.ExeName)+'Project3.exe'), nil, nil, SW_RESTORE);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
DeleteFile( ExtractFilePath(Application.ExeName)+'1.txt')
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
KillTask('notepad.exe');
end;

function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE= $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result:= 0;
FSnapshotHandle:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize:= Sizeof(FProcessEntry32);
ContinueLoop:= Process32First(FSnapshotHandle, FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then
Result:= Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0));
ContinueLoop:= Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;

end.
 
xXxSh@dowxXxДата: Среда, 02.01.2013, 16:12 | Сообщение # 8
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Код

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI,TlHelp32;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
function KillTask(ExeFileName: string): integer;   //<--- НАХРЕН ТУТ НЕ НУЖНО!         

private
{ Private declarations }
public
{ Public declarations }
end;


строка:
function KillTask(ExeFileName: string): integer;
в type лишнее!!!

и ругается на:
Код

procedure TForm1.Button3Click(Sender: TObject);
begin
KillTask('notepad.exe');
end;       

потому что как тебе уже правильно сказал Neo
функция:
Код

function KillTask(ExeFileName: string): integer;       

должна быть описана выше чем процедура:
Код

KillTask('notepad.exe');

для того что бы ты долго не мучился и сразу все понял вот так должен выглядеть твой код:


PS: и для этого не нужно обладать какими то "МЕГА-знаниями" !
PEGAS42rus с тебя + для Neo ведь он уже ответил правильно на твой вопрос smile
Удачи wink


Сообщение отредактировал xXxSh@dowxXx - Среда, 02.01.2013, 16:31
 
PEGAS42rusДата: Среда, 02.01.2013, 18:15 | Сообщение # 9
Был не раз
Зарегистрирован: 01.01.2013
Группа: Пользователи
Сообщений: 5
Статус: Offline
а можно в авто запуск чтоб прога записывалась сама
 
Don_DiegoДата: Среда, 02.01.2013, 19:14 | Сообщение # 10
Продвинутый
Зарегистрирован: 16.04.2012
Группа: Пользователи
Сообщений: 253
Статус: Offline
Код
uses Registry;

type
  procedure AutoStart;

procedure TForm1.AutoStart;
var
   Registry: TRegistry;
begin
   Registry:= TRegistry.Create();
   Registry.RootKey:= HKEY_CURRENT_USER;
   Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true);
   Registry.WriteString(ExtractFileName(Application.ExeName), Application.ExeName);
   Registry.Free;
end;


вызов
Код
AutoStart;
 
PEGAS42rusДата: Четверг, 03.01.2013, 16:26 | Сообщение # 11
Был не раз
Зарегистрирован: 01.01.2013
Группа: Пользователи
Сообщений: 5
Статус: Offline
спс позже попробую добавить в свою прогу потом выложу её)
однако весёлая вещь получилась=)
 
C@TДата: Пятница, 04.01.2013, 17:55 | Сообщение # 12
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
а почему бы в типах не оставить

Код
uses    
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    
Dialogs, StdCtrls,ShellAPI,TlHelp32;    
    
type    
TForm1 = class(TForm)    
Button1: TButton;    
Button2: TButton;    
Button3: TButton;    
procedure Button1Click(Sender: TObject);    
procedure Button2Click(Sender: TObject);    
procedure Button3Click(Sender: TObject);    
function KillTask(ExeFileName: string): integer;   //<--- НАХРЕН НУЖНО!            
    
private    
{ Private declarations }    
public    
{ Public declarations }    
end;   


и не написать

Код
function TForm1.KillTask(ExeFileName: string): integer;  
const  
PROCESS_TERMINATE= $0001;  
var  
ContinueLoop: BOOL;  
FSnapshotHandle: THandle;  
FProcessEntry32: TProcessEntry32;  
begin  
...
end;  


и не прийдется объявлять функцию перед остальным кодом(ведь вдруг человеку этого не нужно, и он хочет что бы эта функция(а точнее метод) была в коде ниже чем остальные функции(а точнее методы))


 
xXxSh@dowxXxДата: Пятница, 04.01.2013, 21:13 | Сообщение # 13
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата (C@T)
и не прийдется объявлять функцию перед остальным кодом(ведь вдруг человеку этого не нужно, и он хочет что бы эта функция(а точнее метод) была в коде ниже чем остальные функции(а точнее методы))

Согласен, можно и так наверное, просто я привык все необходимые функции заранее объявлять, а уже дальше спокойно писать все остальное.
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz