Autor |
Beitrag |
Opfer15
      
Beiträge: 19
Windows Xp, Vista, 2k, Suse Linux 9
C#, Delphi
|
Verfasst: So 27.11.05 22:27
Hallo erstmal.
Ich bin komplett neu in der delphi programmierung und möchte ein für mich noch sehr schwieriges program bauen.
in anderen foren konntem mir schon ein bisl geholfen werden aber bei folgenden problem nicht mehr:
1. ein externes programm öffnen und dort selbstständig auf einen button zu klicken, das externe programm soll nicht zu sehen sein. denke da an shellexecute.
Moderiert von Christian S.: Topic aus Sonstiges verschoben am So 27.11.2005 um 21:43
Zuletzt bearbeitet von Opfer15 am Di 29.11.05 22:10, insgesamt 2-mal bearbeitet
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mo 28.11.05 18:29
Naja, shellexecute gibt soweit ich weiß ein handle zurück. Mit dem kannst du nach dem Child-Fenster suchen welches den Button repräsentiert. Hast du das Handle vom child schickst du eine Klick-Message. Alles API-Funktionen. Ob das im einzelnen funzt weiß ich nicht, wenn du gerade mit Delphi Anfängst würde ich erstmal mit was leichterem beginnen.
Davon ab: es klingt nicht ungefährlich was du daa vor hast. Du willst doch hoffentlich keine Malware proggen, oder?
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Mo 28.11.05 18:32
Laut seinem anderen Thread will er das nicht:
Opfer15 hat folgendes geschrieben: | und nein es ist kein trojaner, keine backdoor etc. wie in anderen foren bereits gedacht, weshalb ich 10 pm's austauschen musste. |
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 28.11.05 21:17
Tilman hat folgendes geschrieben: | Naja, shellexecute gibt soweit ich weiß ein handle zurück. |
Nein, tut es eben nicht:
Zitat: |
Returns a value greater than 32 if successful, or an error value that is less than or equal to 32 otherwise. The following table lists the error values. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an int and compare it with the value 32 or one of the error codes below.
|
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Mo 28.11.05 21:33
Das ist fies, bei mir stand
Zitat: | Return Values
If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application. |
Aber ich habe bei shellexecuteext nachgeschlagen:
Zitat: |
lpExecInfo
Pointer to a SHELLEXECUTEINFO structure |
und bei SHELLEXECUTEINFO steht dann
Zitat: | typedef struct _SHELLEXECUTEINFO { // sei
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpFile;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;
// Optional members
LPVOID lpIDList;
LPCSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
HANDLE hIcon;
HANDLE hProcess;
} SHELLEXECUTEINFO, FAR *LPSHELLEXECUTEINFO; |
Ob das aber dann das richtige Handle ist: keine Ahnung!
// edit: es scheint doch eher HANDLE hProcess; zu sein... naja wurscht
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 28.11.05 22:00
ShellexecuteEx ist nun mal nicht Shellexecute. Und es ist ein Fensterhandle, da es vom Datentyp HWND ist.
|
|
Opfer15 
      
Beiträge: 19
Windows Xp, Vista, 2k, Suse Linux 9
C#, Delphi
|
Verfasst: Di 29.11.05 21:29
hmm also nicht mit Shellexecute dann mit createprocess ?? oder wie schafft man es dann?
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: Di 29.11.05 21:40
Die Jedis haben da was (JVCL). Den namen hab ich aber grad net da (irgendwie sowas wie TJvCreateProcess)
_________________ Programmers never die, they just GOSUB without RETURN
|
|