Autor |
Beitrag |
Dunkel
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: Sa 08.12.07 16:00
Korrektur: das Programm heißt WinSpy
Edit: X-Spy gibt es aber auch, funktioniert sogar ähnlich, sehe ich gerade.
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
bensch 
      
Beiträge: 44
|
Verfasst: Sa 08.12.07 16:05
ja, danke. hab ich auch gerade bemerkt 
|
|
bensch 
      
Beiträge: 44
|
Verfasst: So 09.12.07 01:20
so, das mit winspy hat leider nicht funktioniert, da der programmierer der externen anwendung keine TWinControl - objekte (TButton, TListbox, TTreeview, etc.) benutzt hat, sondern Objekte vom Typ TControl. damit kann winspy leider nichts anfangen
damit liegt mein vorhaben erstmal auf eis und ich muss mir was komplett anderes überlegen. nochmals vielen dank für eure hilfe!!!
macht weiter so 
|
|
bensch 
      
Beiträge: 44
|
Verfasst: Fr 21.12.07 23:22
ich meld mich nochmal zurück!
hab jetzt ne neuere version der externen anwendung gefunden und mit der funktioniert mein vorhaben wunderbar.
greez bensch
|
|
Wotan89
      
Beiträge: 22
|
Verfasst: Di 25.12.07 12:51
Wieso habt ihr das Programm, welches versteckt werden soll nicht einfach mit ShowWindow "versteckt":
Delphi-Quelltext 1: 2: 3:
| HWND:=FindWindow(nil,'FensterTiel'); ShowWindow(HWND,sw_minimize); ShowWindow(HWND,sw_hide); |
Ich denke so ist es einfacher.
|
|
bensch 
      
Beiträge: 44
|
Verfasst: Sa 29.12.07 01:25
wunderbar! danke, hat gefunzt! 
Zuletzt bearbeitet von bensch am Mo 31.12.07 18:53, insgesamt 1-mal bearbeitet
|
|
DrRzf
      
Beiträge: 260
Win XP Prof
D7 Enterprise
|
Verfasst: Sa 29.12.07 06:59
Ich hatte vor Jahren mal an einem Programm mitgewirkt, das ein anderes Fernsteuern konnte.
Die Buttons haben wir auf diese Art gesucht
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| if not RivalRunning then Exit; sleep(500); LogOn := GetLastActivePopup(RivalHandle); LogOnBtn := FindWindowEx(LogOn,0,PCHAR('Button'),PCHAR('&Weiter')); SendMessage(LogOnBtn,BM_Click,0,0); sleep(500); LogOn := GetLastActivePopup(RivalHandle); LogOnBtn := FindWindowEx(LogOn,0,PCHAR('Button'),PCHAR('&Verbinden')); SendMessage(LogOnBtn,BM_Click,0,0); |
_________________ rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
|
|
bensch 
      
Beiträge: 44
|
Verfasst: Do 03.01.08 16:45
hab jetzt nochmal ne frage: wieviele startparameter kann ich einer delphi-anwendung übergeben?
ich übergebe meiner exe beim starten sehr viele parameter. bei 20 parameter funktioniert alles wunderbar, aber sobald ich mehr parameter beim starten übergebe, sagt mir das programm, dass es keine gültige datei sei. (ich übergebe meinem programm dateinamen. die dateien sind alle vom selben file-typ und befinden sich im selben ordner wie die anwendung...)
gibts da ne feste grenze, dass man bei anwendungen, die mit delphi 6 entwickelt wurden, nur max. 20 parameter übergeben kann?
|
|
Blawen
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Do 03.01.08 23:40
bensch hat folgendes geschrieben: | hab jetzt nochmal ne frage: wieviele startparameter kann ich einer delphi-anwendung übergeben?
ich übergebe meiner exe beim starten sehr viele parameter. bei 20 parameter funktioniert alles wunderbar, aber sobald ich mehr parameter beim starten übergebe, sagt mir das programm, dass es keine gültige datei sei. (ich übergebe meinem programm dateinamen. die dateien sind alle vom selben file-typ und befinden sich im selben ordner wie die anwendung...)
gibts da ne feste grenze, dass man bei anwendungen, die mit delphi 6 entwickelt wurden, nur max. 20 parameter übergeben kann? |
Da musst Du ev. mal das msn kontaktieren...
Allerdings: Ist Dein Vorgehen wirklich "sinnvoll" - solltest Du Dir nicht eine grundsätzlich andere Strategie überlegen?
_________________ Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro
|
|
Dunkel
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: Fr 04.01.08 00:43
BLOGS.MSDN.COM/OLDNE...003/12/10/56028.ASPX
Unter Win9X ist die maximale Länge AFAIR 128 Zeichen.
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
Fabian E.
      
Beiträge: 554
Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
|
Verfasst: Fr 04.01.08 01:52
also einer anwendung 20 parameter zu übergeben halte ich auch für fragwürdig...
das kann man bestimmt besser und übersichtlicher lösen...
inwieweit hast du denn einfluss auf die entgegennahme der parameter?
gruß
|
|
bensch 
      
Beiträge: 44
|
Verfasst: Fr 04.01.08 11:29
Fabian E. hat folgendes geschrieben: | also einer anwendung 20 parameter zu übergeben halte ich auch für fragwürdig...
das kann man bestimmt besser und übersichtlicher lösen...
inwieweit hast du denn einfluss auf die entgegennahme der parameter?
gruß |
naja, also mein programm dient mehr oder weniger als editor für die dateien (die ich als parameter übergebe). d.h entweder ich starte mein programm und lade die dateien per opendialog in ein memo-feld, oder ich machs bequemer und übergebe die dateinamen als startparameter.
das erklärt natürlich einiges. aber komisch, dass immer bei mehr als 20 dateien ein fehler auftritt, obwohl die dateinamen (bzw. parameternamen) sehr unterschiedliche namen (und somit zeichenlängen) haben...
dann werd ich mein prog wohl so umbauen müssen, dass ich beim starten überprüfe, wieviele dateien sich im ordner befinden und dass der "öffnen-vorgang" dann halt für jede datei im ordner wiederholt wird...
|
|
Blawen
      
Beiträge: 616
Erhaltene Danke: 33
Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
|
Verfasst: Sa 05.01.08 12:06
bensch hat folgendes geschrieben: | ...oder ich machs bequemer und übergebe die dateinamen als startparameter. |
So ist es doch eindeutig "nicht brauchbar" - im Prinzip müsstest Du die Startparameter (im Bedarfsfall) ja jeweils manuell anpassen --> unübersichtlich und Fehlerträchtig.
Wieso lässt Du den Benutzer die Dateien nicht via "Open"-Dialog auswählen und merkst Dir die letzten 30 Dateien (z.B.) in einer ini-Datei und lädst diese beim nächsten Programmstart mit Hilfe der ini-Datei?
Nur so nebenbei: werden die (z.B.) 30 Dateien wirklich jedesmal benötigt?
_________________ Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro
|
|
DrRzf
      
Beiträge: 260
Win XP Prof
D7 Enterprise
|
Verfasst: Sa 05.01.08 20:51
Irgendwie hab ich noch was im Hinterkopf (noch aus DOS Zeiten) dass 20 Parameter das maximum darstellt.
Diese Parameterzahl wurde damals auch in die ersten Windows Versionen (1.x, 3.x) und danach in Win95 mit übernommen.
Ob sich da aber seiddem was getan hat kann ich nicht sagen.
_________________ rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
|
|
bensch 
      
Beiträge: 44
|
Verfasst: So 06.01.08 22:41
Blawen hat folgendes geschrieben: | So ist es doch eindeutig "nicht brauchbar" - im Prinzip müsstest Du die Startparameter (im Bedarfsfall) ja jeweils manuell anpassen --> unübersichtlich und Fehlerträchtig.
|
ne, eigentlich net. ich hab sonst immer die dateien, die geöffnet werden sollen, markiert, und per drag&drop auf die exe gezogen. somit wurde die anwendung gestartet und die markierten dateien als parameterübergabe in die öffnen-routine aufgenommen.
jetzt hab ich es so gemacht, dass ich eine invisible file-list-box auf dem formular platziert hab, und die öffnen-routine für jedes element in der list-box durchführe. somit hab ich alle dateien, die sich zum ausführungszeitpunkt im selben ordner wie die exe befinden, mit einem klick geöffnet und im programm verarbeitet. das hätte ich schon von anfang an so machen können, bin aber erst später drauf gekommen
somit brauche ich jetzt keine parameter mehr übergeben, da alle dateien im ordner automatisch eingelese werden, bzw. einzelne dateien auch per opendialog hinzugefügt werden können.
danke nochmal für eure hilfe 
|
|