Fenster unsichtbar laufen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Dienstag 28. August 2012, 09:57

Hi!

ich hab heute einen mini-Chat erstellt, (naja, eher kopiert da ich kA hatte am Anfang... hab halt probieren alles so gut wie möglich zu verstehen usw), und wenn ich nun mit jemandem chatte (zb), dann haben ja beide immer die serverconsole offen - und selbst wenn nicht, hinter der client gui läuft die konsole. wie kann man diese "unsichtbar" machen?

MfG
-
deets

Dienstag 28. August 2012, 10:25

Indem man der Python-Datei die Endung "pyw" verpasst. Dann startet pythonw.exe, ohne konsole.

Windows ist einfach wunderbar...
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Dienstag 28. August 2012, 10:26

Vielen Dank!

Ok, eine Frage hätt ich noch: wie kann ich per python dateien konsolen-befehle "simulieren" ?
-
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dienstag 28. August 2012, 12:06

Klar, du hast eine vollstaendige Programmiersprache an der Hand.

Aber ich glaube du willst eher Befehle ausfuehren, `subprocess` ist dein Freund.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Dienstag 28. August 2012, 12:13

Ok, thx :D ! Ich guck mir mal die Dokumentation dazu an :)


edit:

ich habe probiert mit

subprocess.Popen(['pfadzumeinerdatei', 'einargument das meine py datei braucht']) probiert die datei auszuführen - geht nicht...
-
deets

Dienstag 28. August 2012, 13:38

"Geht nicht" geht gar nicht. Als Fehlermeldung bzw. Problembeschreibung.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Dienstag 28. August 2012, 14:33

Code: Alles auswählen

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\lib\subprocess.py", line 593, in __init__
    errread, errwrite)
  File "C:\Python25\lib\subprocess.py", line 815, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
obwohl ich gaaaanz sicher den richtigen pfad angegeben hab...
-
deets

Dienstag 28. August 2012, 14:42

Gaaaaaaaanz sicher nicht. Wie ist denn der Pfad? Und bitte reinkopieren aus dem Skript das nicht laeuft, und nix aus dem Kopf oder sonstwie veraendertes.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Dienstag 28. August 2012, 14:56

C:\Users\deruser\Desktop\Chat\datei.py



deruser ist mein name, den wollte ich jetzt nich so richtig reinposten. (für die die wissen wollen was datei.py macht: ne mail mit anhang versenden. (ich will ein mail programm machen :D ) )
-
Benutzeravatar
sparrow
User
Beiträge: 825
Registriert: Freitag 17. April 2009, 10:28

Dienstag 28. August 2012, 15:01

Das Script bitte. Du musst uns schon zeigen wo wir helfen sollen.
Wenn du in die Werkstatt gehst nimmst du doch auch dein Auto mit und erzählst dem Mechaniker nicht nur von dem Geräusch.
deets

Dienstag 28. August 2012, 15:01

Es hat ja eigentlich einen Grund, Warum glaubst du habe ich geschrieben "genau so, wie er in dem Skript steht"? Weil ich deinen Usernamen rausfinden wollte, der mir schnurzpiepe ist, oder weil es wichtig ist, *WAS GENAU* du uebergibst?

Aber gottlob kann man auch so schon sehen, wo das Problem ist: ich vermute mal, dass dein Benutzername mit t oder n oder etwas anderem anfaengt - und deshalb dank der backslashes in Windows-Pfaden escaped wird.

Du musst also entweder einen raw-string verwenden (r"C:\foo\bar") oder deine backslashes doppelt escapen.

Und das alles haette schon vor 2 Stunden klar sein koennen, wenn du dich gleich mit dem richtigen Code + der dazugehoerigen Fehlermeldung hier kundgetan haettest....
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Dienstag 28. August 2012, 15:05

Code: Alles auswählen

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!SCRIPT IST NICHT VON MIR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!wollte nur ein bisschen mir rumtesten, habs auch schon etwas verändert, aber es ist nicht von mir !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
import sys, smtplib, os
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import formatdate
from email import Encoders

class SendMail(object):
  mailadress = '---------------'
  smtpserver = '--------------'
  username = '----------------'
  password = '---------------'

  def send(self, files):
    to = self.mailadress
    From = self.mailadress

    if len(files) <= 3: subjAdd = ','.join(files)
    if len(files) > 3: subjAdd = ','.join(files[:3]) + '...'
    subject = 'Dateiupload: ' + subjAdd
    msg = self.prepareMail(From, to, subject, files)

    server = smtplib.SMTP(self.smtpserver)
    server.ehlo() 
    server.starttls() 
    server.ehlo() 
    server.login(self.username, self.password)
    failed = server.sendmail(From, to, msg.as_string())
    server.quit()

  def prepareMail(self, From, to, subject, attachments):
    msg = MIMEMultipart()
    msg['From'] = From
    msg['To'] = to
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    # The Body message is empty # nichts als inhalt
    msg.attach( MIMEText("") )

    for file in attachments:
      #We could check for mimetypes here, but I'm too lazy
      part = MIMEBase('application', "octet-stream")
      part.set_payload( open(file,"rb").read() )
      Encoders.encode_base64(part)
      part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
      msg.attach(part)
      #Delete created Tar
    return msg

if __name__ == '__main__':
  mail = SendMail()
  mail.send(sys.argv[1:])
-
Benutzeravatar
sparrow
User
Beiträge: 825
Registriert: Freitag 17. April 2009, 10:28

Dienstag 28. August 2012, 15:10

Da wird nirgends subprocess aufgerufen...
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Dienstag 28. August 2012, 15:13

Hab ihc auch nicht. ich habe per subprocess in der pythonshell diese datei aufgerufen. Das ist nur die zieldatei, nichts anderes. Der subprocess war in der shell :)
-
lackschuh
User
Beiträge: 278
Registriert: Dienstag 8. Mai 2012, 13:40

Dienstag 28. August 2012, 15:19

Mal eine Frage:

Müsste die korrekte Pfadangabe nicht

Code: Alles auswählen

C:\\Users\\deruser\\Desktop\\Chat\\datei.py
lauten anstelle von

Code: Alles auswählen

C:\Users\deruser\Desktop\Chat\datei.py
?

Ich hatte nämlich bei bottle am Anfang auch das Problem, dass ich nur einen Backslash verwendet habe und darum nichts ging...
Antworten