Schrift
[thread]10106[/thread]

eine datei mit einer (perl) .exe anwendung öffnen

Leser: 1


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
#Kein Kommentar
 2007-08-16 20:41
#98282 #98282
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
hi,

ich habe ein programm in perl unter WinXP geschrieben, welches dateien bearbeitet. jetzt habe ich dieses Programm mit perl2exe zu einer .exe transformiert.

doch wenn ich jetzt eine datei mit meinen programm öffnen will, in dem ich doppelklicke auf die datei, wie bekommt das mein programm denn mit, welche
datei geöffnet werden soll?

versteht mich einer? :-D
Weiß jemand rat?
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
MisterL
 2007-08-16 20:52
#98284 #98284
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Wurde das mit der zu öffnenden Datei nicht fest verdrahtet ?
Aber so ein wenig Code kann mal wieder von Vorteil sein ;-)
“Perl is the only language that looks the same before and after RSA encryption.”
heihon
 2007-08-16 21:05
#98286 #98286
User since
2006-09-15
15 Artikel
BenutzerIn
[default_avatar]
Wenn im perl-Programm die Datei per Argument aus @ARGV geöffnet wurde:

In der Kommandozeile (Start/Ausführen/cmd):

Code: (dl )
perlprog.exe Dateiname

oder möglicherweise per Drag & Drop aus dem Explorer: Zu öffnende Datei markieren und auf perlprog.exe ziehen.
#Kein Kommentar
 2007-08-16 21:09
#98287 #98287
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
ich glaube, ich das ein bisschen ungenau erklärt.

also, wenn man unter WinXP eine *.txt-Datei hat wird sie durch (meistens)
Notepad geöffnet, wenn man sie öffnet. d.h. es erscheint das
notepad-bearbeitungs-fenster in der die datei bereits geöffnet ist, ohne
nochmal geladen zu werden.

Wie kann ich das mit meinem programm machen?
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
#Kein Kommentar
 2007-08-16 21:12
#98288 #98288
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
@heihon:
danke, aber weißt du auch wie der name übergeben wird, wenn ich nur zweimal
auf sie drauf klicke? Oder wird sie dann auch über @ARGV "geschickt"?
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
MisterL
 2007-08-19 22:53
#98387 #98387
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Ein weiteres Angebot aus CPAN: Options
Vielleicht lässt es sich ja nutzen
“Perl is the only language that looks the same before and after RSA encryption.”
topeg
 2007-08-20 09:02
#98398 #98398
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
#Kein Kommentar+2007-08-16 19:09:24--
also, wenn man unter WinXP eine *.txt-Datei hat wird sie durch (meistens)
Notepad geöffnet, wenn man sie öffnet. d.h. es erscheint das
notepad-bearbeitungs-fenster in der die datei bereits geöffnet ist, ohne
nochmal geladen zu werden.


Das ist etwas komplizierter, denn es wird immer das Programm neu gestartet. Aber nach dem Start testet es ob schon eine Instanz von sich selber läuft und setzt sich mit dieser in Verbindung. Dann wird der Dateiname an die ältere Laufende Instanz übergeben und die jüngere beendet sich. Da wirst du dich mit mit dem Thema Inperprozesskomunikation (IPC) beschäftigen müssen. Wie man das am besten unter Windows handhabt kann ich dir nicht sagen...
renee
 2007-08-20 10:58
#98403 #98403
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du eine GUI hast, dann setz' den Dateinamen in den Titel. Dann kannst Du mit CPAN:Win32::GuiTest überprüfen, ob es schon ein Fenster mit dem Dateinamen als Titel gibt...


Code (perl): (dl )
1
2
3
4
5
6
use Win32::GuiTest qw(:ALL);

my @windows = FindWindowLike(undef,'Perl-Community');
if( @windows ){
    print "Ein Fenster mit 'Perl-Community' im Titel ist schon vorhanden\";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Struppi
 2007-08-20 13:32
#98407 #98407
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Datei Explorer > Extras > Ordneroptionen
Reiter: Dateitypen
Dort kannst du über <Neu> neue Verknüpfungen deiner Dateien mit einem Programm hinzufügen.

Oder: auf die Datei Kontextmenü öffnen, dort kannst du auswählen mit welchen Programm diese geöffnet werden soll, entweder ist doprt schon was eingetragen oder es steht dort "öffnen mit..." dort kannst du ebenfalls ein Programm auswählen.
murphy
 2007-08-20 17:35
#98430 #98430
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
renee+2007-08-20 08:58:21--
Wenn Du eine GUI hast, dann setz' den Dateinamen in den Titel. Dann kannst Du mit CPAN:Win32::GuiTest überprüfen, ob es schon ein Fenster mit dem Dateinamen als Titel gibt...
[...]


Diese Vorgehensweise halte ich für unsicher, weil jeder ein Programm schreiben kann, dass Fenster mit beliebigen Titeln erstellt, was dann einige Verwirrung hervorrufen kann.

Nach Blick in ein paar Win32 C Quellcodes, würde ich sagen, das normale Vorgehen wäre eher, zu überprüfen, ob die Fensterklasse, die man verwenden möchte, schon existiert. Allerdings ist das überhaupt nicht portabel und bei verwendung eines GUI-Toolkits eventuell auch eher schwierig zu bewerkstelligen.

Portabel und für den gewünschten Zweck auch sinnvoll wäre es aber, zu überprüfen, ob eine bestimmte benannte Pipe oder ein bestimmter lokaler Socket existieren, und dorthin gegebenenfalls auch die zu öffnenden Dateien zu übermitteln.
When C++ is your hammer, every problem looks like your thumb.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2007-08-16 20:41.