Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Помоги с Handle   Найти похожие ветки 

 
kentavr ©   (2004-02-07 16:23) [0]

Проблема такая :
есть .ехе какогото запущенного процесса и место откуда он был запущен.
Вопрос :
как определить Handle и работать с ним(свернуть, развернуть).
заранее спасибо.


 
Digitman ©   (2004-02-07 16:27) [1]


> есть .ехе какогото запущенного процесса


строго наоборот : есть процесс (или более чем 1 процесс), стартованный из заданного EXE


> как определить Handle


см. OpenProcess()


> свернуть, развернуть


процесс не может быть ни свернут ни развернут
эти понятия относятся к окнам, которые может создавать процесс ... а может и не создавать...


 
kentavr ©   (2004-02-07 17:43) [2]

Нет нет я поставил определитель процессов и определённый процесс я хочу или свернуть или развернуть


 
kentavr ©   (2004-02-07 17:45) [3]

тьфу тьфу нето я хочу управлять окном этого приложения (если оно есть)


 
gavrila ©   (2004-02-07 19:51) [4]

Пробуй ето :


 
gavrila ©   (2004-02-07 19:52) [5]

sorry:
unit UWinList;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, Grids, Menus;

type
 TForm1 = class(TForm)
   Button1: TButton;
   StringGrid1: TStringGrid;
   PMDoingList: TPopupMenu;
   PMWin: TMenuItem;
   PMEnable: TMenuItem;
   PMDisable: TMenuItem;
   PMSubEnabled: TMenuItem;
   PMSubVisibling: TMenuItem;
   PMVisible: TMenuItem;
   PMUnVisible: TMenuItem;
   GetControl: TMenuItem;
   procedure Button1Click(Sender: TObject);
   procedure StringGrid1DblClick(Sender: TObject);
   procedure PMDoingListPopup(Sender: TObject);
   procedure PMEnableClick(Sender: TObject);
   procedure PMDisableClick(Sender: TObject);
   procedure PMVisibleClick(Sender: TObject);
   procedure PMUnVisibleClick(Sender: TObject);
   procedure GetControlClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 NWindow: HWND;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
 Var
  NWindow: HWND;
  WinText: array[0..256] of Char;
  I:Integer;
begin
 For I:= 1 To StringGrid1.RowCount Do
 begin
StringGrid1.Cells[0, I]:="";
StringGrid1.Cells[1, I]:="";
 end;
 StringGrid1.Cells[0, 0] := "Handle";
 StringGrid1.Cells[1, 0] := "Win text";
 I:=0;
 NWindow:= Handle;
 Repeat
NWindow:= GetNextWindow(NWindow, GW_HWNDNEXT);
GetWindowText(NWindow, WinText, 254);
   If WinText<>"" then
   begin
  Inc(I);
     StringGrid1.RowCount := I;
     StringGrid1.Cells[0, I]:= IntToStr(NWindow);
     StringGrid1.Cells[1, I]:= WinText;
   end;
 Until (NWindow = 0);
 StringGrid1.FixedRows:=1;
end;

procedure TForm1.StringGrid1DblClick(Sender: TObject);
begin
 NWindow:= 0;
 If StringGrid1.Row = 0 Then
   Exit;
 Try
   If Trim(StringGrid1.Cells[0, StringGrid1.Row]) <> "" Then
   Begin
     NWindow:= StrToInt(Trim(StringGrid1.Cells[0, StringGrid1.Row]));
     PMDoingList.Popup(Mouse.CursorPos.x,  Mouse.CursorPos.y);
   End;
 Except
 End;
end;

procedure TForm1.PMDoingListPopup(Sender: TObject);

begin
 If Trim(StringGrid1.Cells[0, StringGrid1.Row]) <> "" Then
   NWindow:= StrToInt(Trim(StringGrid1.Cells[0, StringGrid1.Row]));

//  NWindow:= GetDesktopWindow();
 If NWindow= 0 Then
 Begin
   PMWin.Enabled:= False
 End
 Else
 Begin
   PMWin.Enabled:= True;
 End;

 // получим параметры окна
 Try
// Окно / Доступно / Недоступно
   PMEnable.Checked := IsWindowEnabled(NWindow);
   PMDisable.Checked := Not PMEnable.Checked;
   PMVisible.Checked := IsWindowVisible(NWindow);
   PMUnVisible.Checked := Not PMVisible.Checked;
//
 Except
   on E: Exception do
   Begin
     ShowMessage(E.Message);
     ShowMessage(IntToStr(E.HelpContext));
     Exit;
   End;
 End;
end;

procedure TForm1.PMEnableClick(Sender: TObject);
begin
 Try
   EnableWindow(NWindow, True);
 Except
   Exit;
 End;
 PMEnable.Checked := True;
 PMDisable.Checked := False;
end;

procedure TForm1.PMDisableClick(Sender: TObject);
begin
 Try
   EnableWindow(NWindow, False);
 Except
   Exit;
 End;
 PMEnable.Checked := False;
 PMDisable.Checked := True;
end;

procedure TForm1.PMVisibleClick(Sender: TObject);
begin
 Try
   ShowWindow(NWindow, SW_SHOW);
 Except
   Exit;
 End;
 PMVisible.Checked  := True;
 PMUnVisible.Checked := False;
 ShowWindow(Handle, SW_SHOW);
end;

procedure TForm1.PMUnVisibleClick(Sender: TObject);
begin
 Try
   ShowWindow(NWindow, SW_HIDE);
 Except
   Exit;
 End;
 PMVisible.Checked  := False;
 PMUnVisible.Checked := True;
end;

procedure TForm1.GetControlClick(Sender: TObject);
{Var
 idWin: Variant;
 pdwProcessId: LPDWORD;
}begin
//  idWin:= GetWindowThreadProcessId(NWindow, pdwProcessId);
//  idWin:= GetWindowDC(NWindow);
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
9-1066025914
@ndrew
2003-10-13 10:18
2004.04.18
обработка клавишь в DelphiX


14-1079741558
Паниковский
2004-03-20 03:12
2004.04.18
Третья мировая война


11-1063004039
JT
2003-09-08 10:53
2004.04.18
StatusBar


1-1080546501
lehich
2004-03-29 11:48
2004.04.18
ListBox1.Items.Text и разделители


3-1080034236
GAndrei
2004-03-23 12:30
2004.04.18
Проблема с использованием BCD полей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский