-2

什么是 FORTRAN 输入语句(例如,READ 语句或 OPEN 语句)来接受来自鼠标的输入?例如,在 Windows 资源管理器中,可以右键单击文件,然后从出现的菜单中选择 FORTRAN 可执行文件。如何让这样的 FORTRAN 程序捕获鼠标发送的任何内容(例如,捕获文件名或鼠标发送的任何内容)?有关 FORTRAN 输入的信息似乎仅限于从文件或键盘输入。我找不到任何关于鼠标输入的信息。

4

1 回答 1

0

我自己取得了进展,对于那些感兴趣的人,这里是: 首先,“fortran 标准”不直接支持鼠标输入。但是可以使 Windows 资源管理器将文件名通过管道传输到 fortran 可执行文件中。

在 Windows 下,右键单击会生成完整的 \path\filename 作为命令行参数。该信息可以由 fortran 使用“get_command_argument”捕获,如下所示:

      PROGRAM get_filename
        CHARACTER(len=100) :: arg
        CHARACTER(len=2000) :: filename
        filename = ''
        ! NB: spaces in a file name define separate arguments, so re-assemble the file name as it comes in
        i = 1
        DO
         CALL get_command_argument(i, arg)
          IF (LEN_TRIM(arg) == 0) EXIT
          filename = TRIM(filename)//' '//TRIM(arg) !  putting the spaces back in
          i = i+1
        END DO
        WRITE (*,*) 'file= ',TRIM(filename)
      read(*,*)
      END PROGRAM

可执行文件的链接可以放在 Windows 右键菜单中,如下所述:

http://www.howtogeek.com/107965/how-to-add-any-application-shortcut-to-windows-explorers-context-menu/

您需要在可执行文件的名称中添加“%1”以使其接受命令行参数,例如,我将可执行文件命名为“PW_copy.exe”,因此最终的注册表项为:\path\PW_copy.exe %1

有用!

在多个文件上拖动鼠标会生成单独的线程,每个线程都有不同的文件名。

于 2013-06-19T06:56:20.163 回答