Entwickler-Ecke

Windows API - PChar zu String und Programm vor TaskMan verstecken


LH_Freak - So 12.06.05 01:40
Titel: PChar zu String und Programm vor TaskMan verstecken
Moderiert von user profile iconraziel: Abgetrennt von [url=http://www.delphi-forum.de/viewtopic.php?t=43494]hier[/url].

noch 2 fragen (bitte noch net schließen, das wars dann ;)):

- Wie kriegt man einen String zu einem PAnsiChar???
- Wie kann man sein Projekt (unter XP) vor dem Taskmanager verstecken???


retnyg - So 12.06.05 01:43

user profile iconLH_Freak hat folgendes geschrieben:
- Wie kriegt man einen String zu einem PAnsiChar???


Delphi-Quelltext
1:
pchar(myString)                    

user profile iconLH_Freak hat folgendes geschrieben:
- Wie kann man sein Projekt (unter XP) vor dem Taskmanager verstecken???

meinst du bei den prozessen oder bei den tasks ?
bei tasks müsste es mit showwindow(handle, SW_HIDE); zu bewerkstelligen sein
bei den prozessen nur, wenn du dein programm in ein anderes injizierst


LH_Freak - So 12.06.05 01:59

Ich seh es leider immer noch :(


LH_Freak - So 12.06.05 02:11

Also, so lade ich die Prozessliste:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
function GetText(Wnd: HWND): string;
var
  textlength: Integer;
  Text: PChar;
begin
  textlength := SendMessage(Wnd, WM_GETTEXTLENGTH, 00);
  if textlength = 0 then Result := ''
  else
  begin
    GetMem(Text, textlength + 1);
    SendMessage(Wnd, WM_GETTEXT, textlength + 1, Integer(Text));
    Result := Text;
    FreeMem(Text);
  end;
end;

function EnumWindowsProc(Wnd: HWND; lParam: lParam): BOOL; stdcall;
begin
  Result := True;
  if (IsWindowVisible(Wnd)) and
    ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0or
    (GetWindowLong(Wnd, GWL_HWNDPARENT) = GetDesktopWindow)) and
    (GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = 0then
    Form1.List.Add(GetText(Wnd));
end;


und maximieren so:


Delphi-Quelltext
1:
2:
3:
win:=FindWindow(nil,Pchar(List[i]));
SetForegroundWindow(win);
showwindow(win, sw_maximize);



Sieht dann so aus:


retnyg - So 12.06.05 02:24

user profile iconLH_Freak hat folgendes geschrieben:
Ich seh es leider immer noch :(


Delphi-Quelltext
1:
showwindow(application.handle,sW_HIDE);                    

dein prog sieht gut aus, wie erstellst du die schönen buttons ?

so sieht übrigens meine variante aus:


LH_Freak - So 12.06.05 02:40

die button sind mit Photoshop zusammengemalt, mein Problem ist im Moment nur, das der dann immer die Reihenfolge ändert, was nicht sein soll...


retnyg - So 12.06.05 02:42

wie, reihenfolge ändert ? du kannst z.b. nach prozessnamen sortieren lassen, dann sind z.b. alle firefüchse hintereinander


raziel - So 12.06.05 06:27

Hallo,

bitte erstell für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt.

Vor allem wenn du selbst schon weißt, dass es laut den Richtlinien untersagt ist, mehrere Fragen in ein Topic zu posten, wieso machst du das dann gleich doppelt [http://www.delphi-forum.de/viewtopic.php?t=43496] und dreifach [http://www.delphi-forum.de/viewtopic.php?t=43494] falsch? *kopfschüttel*

Daher: geschlossen.

Gruß,
raziel