Comate und winscp, brauche mal hilfe...

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
appndown
Beiträge: 9
Registriert: 07.05.2015 21:54

Comate und winscp, brauche mal hilfe...

Beitrag von appndown »

Hi,

bitte bitte kann mir mal jemand helfen wie ich den Code von unten mit Comate umsetzte ?
Ich verstehe das nicht wirklich...
Es gibt ja von WINSCP die DLL´s.... Und das Tutorial von Comate hab ich mir auch mal angeschaut, aber ich brauche mal ein
Beispiel...
Wäre super wenn mir jemand helfen kann...

Ich kann WINSCP.com auch über die Console aufrufen mit RunProgramm...
Allerdings wir nur der Uploadstatus übergeben wenn er 100% erreicht hat und das reicht leider nicht...

Gruß
Sascha



Code: Alles auswählen

vusing System;
using WinSCP;
 
class Example
{
    public static int Main()
    {
        try
        {
            // Setup session options
            SessionOptions sessionOptions = new SessionOptions {
                Protocol = Protocol.Sftp,
                HostName = "example.com",
                UserName = "user",
                Password = "mypassword",
                SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
            };
 
            using (Session session = new Session())
            {
                // Connect
                session.Open(sessionOptions);
 
                // Upload files
                TransferOptions transferOptions = new TransferOptions();
                transferOptions.TransferMode = TransferMode.Binary;
 
                TransferOperationResult transferResult;
                transferResult = session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions);
 
                // Throw on any error
                transferResult.Check();
 
                // Print results
                foreach (TransferEventArgs transfer in transferResult.Transfers)
                {
                    Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
                }
            }
 
            return 0;
        }
        catch (Exception e)
        {
            Console.WriteLine("Error: {0}", e);
            return 1;
        }
    }
}

Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Comate und winscp, brauche mal hilfe...

Beitrag von Kiffi »

appndown hat geschrieben:Es gibt ja von WINSCP die DLL´s
ein Link wäre nett. Ich habe nur die .NET-DLL gefunden und die würde ja auch zu Deinem C#-Code oben passen.

Grüße ... Peter
a²+b²=mc²
appndown
Beiträge: 9
Registriert: 07.05.2015 21:54

Re: Comate und winscp, brauche mal hilfe...

Beitrag von appndown »

Kiffi hat geschrieben:
appndown hat geschrieben:Es gibt ja von WINSCP die DLL´s
ein Link wäre nett. Ich habe nur die .NET-DLL gefunden und die würde ja auch zu Deinem C#-Code oben passen.

Grüße ... Peter
http://winscp.net/eng/docs/library
Da sollte doch mit Comate gehen ist doch eine COM...
http://winscp.net/eng/docs/library_install
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Comate und winscp, brauche mal hilfe...

Beitrag von Kiffi »

ein erster Schuss (kann ich hier nicht ausprobieren). Versuch mal, inwiefern Du damit weiterkommst.

Hinweis: 'Protocol_Sftp' im Code unten ist wohl eine Konstante, deren Wert ich auf die Schnelle nicht herausfinden konnte.

Code: Alles auswählen

IncludePath "DeinPfadZu\COMatePLUS\"
XIncludeFile "COMatePLUS.pbi"

Define session.COMateObject
Define sessionOptions.COMateObject

sessionOptions = Comate_CreateObject("WinSCP.SessionOptions")

If sessionOptions
	
	sessionOptions\SetProperty("Protocol = Protocol_Sftp")
	sessionOptions\SetProperty("HostName = 'example.com'")
	sessionOptions\SetProperty("UserName = 'user'")
	sessionOptions\SetProperty("Password = 'mypassword'")
	sessionOptions\SetProperty("SshHostKeyFingerprint = 'ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx'")
	
	session = Comate_CreateObject("WinSCP.Session")
	
	If session
		
		; Connect
		session\Invoke("Open(" + Str(sessionOptions) + " As COMateObject)")
		
		; ...
		; für den Code, der hier stand habe ich momentan keine Muße
		; ...
		
		; Disconnect, clean up
		session\Invoke("Dispose")
		
		session\Release()
		
	Else
		
		Debug "!session"
		
	EndIf
	
	sessionOptions\Release()
	
Else
	
	Debug "!sessionOptions"
	
EndIf
Grüße ... Peter
a²+b²=mc²
Antworten