using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
[DllImport("user32.dll")]
static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
private const int MOUSEEVENTF_MOVE = 0x0001;
private const int MOUSEEVENTF_LEFTDOWN = 0x0002;
private const int MOUSEEVENTF_LEFTUP = 0x0004;
private const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
private const int MOUSEEVENTF_RIGHTUP = 0x0010;
private const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
private const int MOUSEEVENTF_MIDDLEUP = 0x0040;
private const int MOUSEEVENTF_ABSOLUTE = 0x8000;
// positive values indicate movement right, down
public static void Move(int xDelta, int yDelta) {
mouse_event(MOUSEEVENTF_MOVE, xDelta, yDelta, 0, 0);
public static void LeftClick() {
mouse_event(MOUSEEVENTF_LEFTDOWN, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, Control.MousePosition.X, Control.MousePosition.Y, 0, 0);
}
.
./AspNetCoreSerilogExample.sln
./AspNetCoreSerilogExample.Web
./AspNetCoreSerilogExample.Web/appsettings.Development.json
./AspNetCoreSerilogExample.Web/appsettings.json
./AspNetCoreSerilogExample.Web/AspNetCoreSerilogExample.Web.csproj
./AspNetCoreSerilogExample.Web/Controllers
./AspNetCoreSerilogExample.Web/Controllers/TestController.cs
./AspNetCoreSerilogExample.Web/Program.cs
./AspNetCoreSerilogExample.Web/Properties
./AspNetCoreSerilogExample.Web/Properties/launchSettings.json
./AspNetCoreSerilogExample.Web/Startup.cs
./Dockerfile.alpine
./README.md
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine AS build
WORKDIR /source
ARG RID=linux-musl-x64
# copy csproj and restore as distinct layers
COPY *.sln .
COPY AspNetCoreSerilogExample.Web/*.csproj ./AspNetCoreSerilogExample.Web/
RUN dotnet restore -r $RID
# copy everything else and build app
ADD AspNetCoreSerilogExample.Web/. ./AspNetCoreSerilogExample.Web/
WORKDIR /source/AspNetCoreSerilogExample.Web
RUN dotnet publish -c release -o /app -r $RID --self-contained false --no-restore
# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:6.0-alpine-amd64
WORKDIR /app
COPY --from=build /app ./
ENTRYPOINT ["./AspNetCoreSerilogExample.Web"]
за включение
c:\Windows\system32\user32.dll
и
DllImport
отвечаетusing System.Runtime.InteropServices;
Из
System.Runtime.InteropServices.dll
из
c:\Windows\Microsoft.NET\Framework\v4.0.30319
(и много еще где в c:\windos из зв фьюжн;
).
когда код написан загрузчик все это сделает (и есть разные трюки)
но если нужно написать скрипт за вас - то с этим на фриланс