@TsSaltan

Как обращаться к системным классам из методов пользовательского класса?

Из обычной функции можно нормально обратиться например к System.Windows.Forms.Cursor
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

function getPos(){
    [System.Windows.Forms.Cursor]::Position
}

getPos

IsEmpty    X   Y
-------    -   -
  False 1001 460


Если же создать класс, то внутри метода уже нет доступа к System.Windows.Forms.Cursor

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

class A{
    static getPos(){
        [System.Windows.Forms.Cursor]::Position
    }
}

[A]::getPos

+         [System.Windows.Forms.Cursor]::Position
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Не удалось найти тип [System.Windows.Forms.Cursor].
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TypeNotFound


Подскажите, как быть?
PSVersion 5.1.17763.316
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
не слежу что в пятере намутили может просто
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

Add-Type -TypeDefinition @'

using System.Windows.Forms;
using  System.Drawing;
public class A{
    public static Point getPos(){
       return Cursor.Position;
    }
}
'@  -ReferencedAssemblies 'System.Windows.Forms.dll','System.Drawing.dll'
[A]::getPos()


IsEmpty    X   Y
-------    -   -
  False 1112 316
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы