[Megoldva] VPN csatlakozás programozottan

Sziasztok!

Van egy kicsi, C-ben megírt programom, ami bizonyos időközönként automatikusan elvégez egy feladatot. Ennek a feladatnak az elvégzéséhez viszont csatlakozva kell lennie a számítógépnek egy VPN-hez. Mivel a program indításakor nem biztos, hogy él a VPN kapcsolat, szeretnék programozottan csatlakozni egy előre elmentett kapcsolathoz.

A program releváns része:

#include <windows.h>
#include <stdio.h>

typedef struct connect_dll {
    HINSTANCE dll_handle;
    FARPROC connect;
} ConnectDLL;

HRESULT vpn_connect(ConnectDLL handle) {
    return (handle.connect)(
        NULL,
        0x00,
        0x00,
        NULL,
        NULL,
        NULL
    );
}

ConnectDLL init(void) {
    ConnectDLL result;
    result.dll_handle = LoadLibrary(TEXT("Connect.dll"));
    if (result.dll_handle == NULL) {
        printf("ERROR: Cannot load Connect.dll");
        exit(1);
    }

    result.connect = GetProcAddress(result.dll_handle, "GetVPNConnected");
    if (result.connect == NULL) {
        printf("ERROR: Cannot load GetVPNConnected");
        exit(2);
    }
    return result;
}

int main () {
    ConnectDLL handle = init();
    HRESULT result = vpn_connect(handle);
    
    // Itt csinal valamit a program, miutan csatlakozott

    FreeLibrary(handle.dll_handle);
    exit(0);
}

A problémám: ennél a megoldásnál feljön egy "Kívánja a meglévő kapcsolatok valamelyikét használni?" párbeszédablak, és manuálisan kell a "Tovább" gombra kattintani. Ezt szeretném elkerülni.

 

Szerk: Köszönöm Fejesjoconak a megoldást.

Hozzászólások

A vpn-t "on-demand" -ra állítani és ennyi?

Biztos én vagyok nagyon maradi de hogy hálózatot vagy vpn-t kapcsolgassak egy programmal aminek nem ez a feladata az sztem nem szép architektúra.

zászló, zászló, szív

Az a jó ezekben a lehetetlen feladatokban, hogy könnyen le lehet zárni:

1. Makrózod a dialógust egérmozgatással, de csak 1 milliárd forintért vállalsz rá supportot

2. Azt mondod, hogy maga az operációs rendszer nem támogatja, elvállalod a linuxra migrálást 1 milliárd forintért

Ez így szerintem reális, és abszolút megbecsülendő "can-do attitude" :)

Lekerdezed, hogy fut-e az Openvpn daemonkent.

Ha nem, akkor elinditod.

Nyit egy portot, ahol lehet vele kommunikalni. Ott lekerdezed, hogy van-e aktiv kiepitett kapcsolat.

Ha nincs, akkor megmondod neki, hogy melyik ovenvpn config file az aktualis, es connect.

En igy csinalnam. A Windowsos VPN nekem feher folt, lehet, hogy az jobb, nem tudom. :-)